본문 바로가기

Web/javascript & jQuery

스크롤 따라 움직이는 레이어

반응형

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>SmoothMovingLayer Demo</title>

<script type="text/javascript">

//<![CDATA[

function initMoving(target, position, topLimit, btmLimit) {

if (!target)

return false;


var obj = target;

obj.initTop = position;

obj.topLimit = topLimit;

obj.bottomLimit = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight) - btmLimit - obj.offsetHeight;


obj.style.position = "absolute";

obj.top = obj.initTop;

// obj.left = obj.initLeft;


if (typeof(window.pageYOffset) == "number") { //WebKit

obj.getTop = function() {

return window.pageYOffset;

}

} else if (typeof(document.documentElement.scrollTop) == "number") {

obj.getTop = function() {

return Math.max(document.documentElement.scrollTop, document.body.scrollTop);

}

} else {

obj.getTop = function() {

return 0;

}

}


if (self.innerHeight) { //WebKit

obj.getHeight = function() {

return self.innerHeight;

}

} else if(document.documentElement.clientHeight) {

obj.getHeight = function() {

return document.documentElement.clientHeight;

}

} else {

obj.getHeight = function() {

return 500;

}

}


obj.move = setInterval(function() {

if (obj.initTop > 0) {

pos = obj.getTop() + obj.initTop;

} else {

pos = obj.getTop() + obj.getHeight() + obj.initTop;

//pos = obj.getTop() + obj.getHeight() / 2 - 15;

}


if (pos > obj.bottomLimit)

pos = obj.bottomLimit;

if (pos < obj.topLimit)

pos = obj.topLimit;


interval = obj.top - pos;

obj.top = obj.top - interval / 3;

obj.style.top = obj.top + "px";

}, 30)

}

//]]>

</script>

<style type="text/css">

body {

margin: 0;

}

#head {

width: 800px;

height: 3000px;

background: #eee;

}

#gotop {

position: absolute;

left: 810px;

top: 50px;

background: #ddd;

width: 100px;

height: 1000px;

}

</style>

</head>

<body>

<div id="head">

웹사이트 헤더

</div>

<div id="gotop">

<a href="#head" title="상단으로">위로</a>

</div>


<script type="text/javascript">initMoving(document.getElementById("gotop"), 50, 50, 50);</script> 

<!-- initMoving(움직일 대상, 스크롤위치, 상단 한계, 하단 한계); -->


</body> 

</html>



[출처] 스크롤 따라 움직이는 레이어|작성자 혜벙벙

반응형

'Web > javascript & jQuery' 카테고리의 다른 글

탭 내용과 같이 자동롤링  (0) 2013.03.26
레이어팝업  (0) 2013.03.20
스크롤 따라다니는 배너  (0) 2012.11.16
gnb, lnb, 타이틀 자동으로 제어하기  (0) 2012.11.16
a 링크 클릭시 점선 테두리 없애기  (0) 2012.11.16