javascript ¶¯Ì¬Êý¾ÝϵÄêµã´íλÎÊÌâ½â¾ö·½·¨

¸´ÖÆ´úÂë ´úÂëÈçÏÂ:

¡¡¡¡<html xmlns="http://www.w3.org/1999/xhtml" >

¡¡¡¡<head runat="server">

¡¡¡¡<title>Óà Javascript ʵÏÖêµã(Anchor)¼äƽ»¬Ìø×ª</title>

¡¡¡¡<script language="javascript">

¡¡¡¡// ˵Ã÷ £ºÓà Javascript ʵÏÖêµã(Anchor)¼äƽ»¬Ìø×ª

¡¡¡¡

¡¡¡¡// ת»»ÎªÊý×Ö

¡¡¡¡function intval(v)

¡¡¡¡{¡¡¡¡

¡¡¡¡v = parseInt(v);¡¡¡¡

¡¡¡¡return isNaN(v) ? 0 : v;

¡¡¡¡}¡¡

¡¡¡¡// »ñÈ¡ÔªËØÐÅÏ¢

¡¡¡¡function getPos(e)

¡¡¡¡{¡¡¡¡

¡¡¡¡var l = 0;¡¡¡¡

¡¡¡¡var t¡¡= 0;¡¡¡¡

¡¡¡¡var w = intval(e.style.width);¡¡¡¡

¡¡¡¡var h = intval(e.style.height);¡¡¡¡

¡¡¡¡var wb = e.offsetWidth;¡¡¡¡

¡¡¡¡var hb = e.offsetHeight;¡¡¡¡

¡¡¡¡while (e.offsetParent)

¡¡¡¡{¡¡¡¡¡¡¡¡

¡¡¡¡ l += e.offsetLeft + (e.currentStyle?intval(e.currentStyle.borderLeftWidth):0);¡¡¡¡¡¡¡¡

¡¡¡¡ t += e.offsetTop¡¡+ (e.currentStyle?intval(e.currentStyle.borderTopWidth):0);¡¡¡¡¡¡¡¡

¡¡¡¡ e = e.offsetParent;¡¡¡¡

¡¡¡¡ }¡¡¡¡

¡¡¡¡ l += e.offsetLeft + (e.currentStyle?intval(e.currentStyle.borderLeftWidth):0);¡¡¡¡

¡¡¡¡ t¡¡+= e.offsetTop¡¡+ (e.currentStyle?intval(e.currentStyle.borderTopWidth):0);¡¡¡¡

¡¡¡¡ return {x:l, y:t, w:w, h:h, wb:wb, hb:hb}; }¡¡

¡¡¡¡ // »ñÈ¡¹ö¶¯ÌõÐÅÏ¢

¡¡¡¡ function getScroll()¡¡

¡¡¡¡ {¡¡¡¡

¡¡¡¡ var t, l, w, h;¡¡¡¡¡¡¡¡¡¡

¡¡¡¡ if (document.documentElement && document.documentElement.scrollTop)

¡¡¡¡ {¡¡¡¡¡¡¡¡

¡¡¡¡ t = document.documentElement.scrollTop;¡¡¡¡¡¡¡¡

¡¡¡¡ l = document.documentElement.scrollLeft;¡¡¡¡¡¡¡¡

¡¡¡¡ w = document.documentElement.scrollWidth;¡¡¡¡¡¡¡¡

¡¡¡¡ h = document.documentElement.scrollHeight;¡¡¡¡

¡¡¡¡ }

¡¡¡¡ else if (document.body)

¡¡¡¡ {¡¡¡¡¡¡¡¡

¡¡¡¡ t = document.body.scrollTop;¡¡¡¡¡¡¡¡

¡¡¡¡ l = document.body.scrollLeft;¡¡¡¡¡¡¡¡

¡¡¡¡ w = document.body.scrollWidth;¡¡¡¡¡¡¡¡

¡¡¡¡ h = document.body.scrollHeight;¡¡¡¡

¡¡¡¡ }¡¡¡¡

¡¡¡¡ return { t: t, l: l, w: w, h: h };

¡¡¡¡ }¡¡

¡¡¡¡ // êµã(Anchor)¼äƽ»¬Ìø×ª

¡¡¡¡ function scroller(el, duration)

¡¡¡¡ {¡¡¡¡

¡¡¡¡ if(typeof el != 'object')

¡¡¡¡ {

¡¡¡¡ el = document.getElementById(el);

¡¡¡¡ }¡¡¡¡¡¡

¡¡¡¡ if(!el) return;¡¡¡¡¡¡

¡¡¡¡ var z = this;¡¡¡¡

¡¡¡¡ z.el = el;¡¡¡¡

¡¡¡¡ z.p = getPos(el);¡¡¡¡

¡¡¡¡ z.s = getScroll();¡¡¡¡

¡¡¡¡ z.clear = function()

¡¡¡¡ {

¡¡¡¡ window.clearInterval(z.timer);z.timer=null

¡¡¡¡ };¡¡¡¡

¡¡¡¡ z.t=(new Date).getTime();¡¡¡¡¡¡

¡¡¡¡ z.step = function()

¡¡¡¡ {¡¡¡¡¡¡¡¡

¡¡¡¡ var t = (new Date).getTime();¡¡¡¡¡¡¡¡

¡¡¡¡ var p = (t - z.t) / duration;¡¡¡¡¡¡¡¡

¡¡¡¡ if (t >= duration + z.t)

¡¡¡¡ {¡¡¡¡¡¡¡¡¡¡¡¡

¡¡¡¡ z.clear();¡¡¡¡¡¡¡¡¡¡¡¡

¡¡¡¡ window.setTimeout(function(){z.scroll(z.p.y, z.p.x)},13);¡¡¡¡¡¡¡¡ }

¡¡¡¡ else {¡¡¡¡¡¡¡¡¡¡¡¡

¡¡¡¡ st = ((-Math.cos(p*Math.PI)/2) + 0.5) * (z.p.y-z.s.t) + z.s.t;¡¡¡¡¡¡¡¡¡¡¡¡

¡¡¡¡ sl = ((-Math.cos(p*Math.PI)/2) + 0.5) * (z.p.x-z.s.l) + z.s.l;¡¡¡¡¡¡¡¡¡¡¡¡

¡¡¡¡ z.scroll(st, sl);¡¡¡¡¡¡¡¡

¡¡¡¡ }¡¡¡¡

¡¡¡¡ };¡¡¡¡

¡¡¡¡ z.scroll = function (t, l){window.scrollTo(l, t-20)};¡¡¡¡

¡¡¡¡ z.timer = window.setInterval(function(){z.step();},13);

¡¡¡¡ }

¡¡¡¡</script>

¡¡¡¡<style type="text/css">

¡¡¡¡div.test

¡¡¡¡{¡¡¡¡

¡¡¡¡width:400px;¡¡¡¡ margin:5px auto;¡¡¡¡ border:1px solid #ccc;

¡¡¡¡}

¡¡¡¡div.test strong

¡¡¡¡{¡¡¡¡ font-size:16px;¡¡¡¡ background:#fff;¡¡¡¡ border-bottom:1px solid #aaa;¡¡¡¡ margin:0;¡¡¡¡ display:block;¡¡¡¡ padding:5px 0;¡¡¡¡ text-decoration:underline;¡¡¡¡ color:#059B9A;¡¡¡¡ cursor:pointer; } div.test p {¡¡¡¡ height:400px;¡¡¡¡ background:#f1f1f1;¡¡¡¡ margin:0;

¡¡¡¡}

¡¡¡¡ </style>

¡¡¡¡</head>

¡¡¡¡<body>

¡¡¡¡<form id="form1" runat="server">

¡¡¡¡<div class="test">¡¡¡¡

¡¡¡¡<a name="header_1" id="header_1"></a>¡¡¡¡

¡¡¡¡<strong onclick="javascript:scroller('header_4', 800);">header_1 --> header_4</strong><p></p>

¡¡¡¡</div>¡¡

¡¡¡¡<div class="test">¡¡¡¡

¡¡¡¡<a name="header_2" id="header_2"></a>¡¡¡¡

¡¡¡¡<strong onclick="javascript:scroller('header_5', 800);">header_2 --> header_5</strong><p></p>

¡¡¡¡</div>¡¡

¡¡¡¡<div class="test">¡¡¡¡

¡¡¡¡<a name="header_3" id="header_3"></a>¡¡¡¡

¡¡¡¡<strong onclick="javascript:scroller('header_6', 800);">header_3 --> header_6</strong><p></p>

¡¡¡¡</div>¡¡

¡¡¡¡<div class="test">¡¡¡¡

¡¡¡¡<a name="header_4" id="header_4"></a>¡¡¡¡

¡¡¡¡<strong onclick="javascript:scroller('header_7', 800);">header_4 --> header_7</strong><p></p>

¡¡¡¡</div>¡¡

¡¡¡¡<div class="test">¡¡¡¡

¡¡¡¡<a name="header_5" id="header_5"></a>¡¡¡¡

¡¡¡¡<strong onclick="javascript:scroller('header_3', 800);">header_5 --> header_3</strong><p></p>

¡¡¡¡</div>¡¡

¡¡¡¡<div class="test">¡¡¡¡

¡¡¡¡<a name="header_6" id="header_6"></a>¡¡¡¡

¡¡¡¡<strong onclick="javascript:scroller('header_2', 800);">header_6 --> header_2</strong><p></p>

¡¡¡¡</div>¡¡

¡¡¡¡<div class="test">¡¡¡¡

¡¡¡¡<a name="header_7" id="header_7"></a>¡¡¡¡

¡¡¡¡<strong onclick="javascript:scroller('header_1', 800);">header_7 --> header_1</strong><p></p>

¡¡¡¡</div>

¡¡¡¡</form>

¡¡¡¡</body>

¡¡¡¡</html>