爱易网
IT新闻
IT新闻
爱易资讯
网站搭建
云虚拟主机教程
云服务器教程
Apache教程
IIS教程
Nginx教程
网站策划
站长文章
推广教程
淘宝客教程
网页设计
HTML教程
XHTML教程
CSS教程
HTML5教程
CSS3教程
JavaSript基础
JQuery教程
Node.js教程
前端技术
Ajax教程
Js特效
Xml教程
平面设计
页面UI设计
photoshop教程
程序开发
AI人工智能
Asp教程
Php教程
Asp.Net教程
Net Core教程
C#教程
Java教程
Jsp教程
开发技术
微信小程序教程
Uniapp开发教程
微信公众号开发
Andriod教程
IOS教程
DOS教程
Python教程
Docker教程
Windows Container教程
数据库
MSSQL教程
MySQL教程
Redis教程
Access教程
Oracle教程
数据库教程
操作系统
Linux教程
Windows教程
MAC教程
Cisco教程
交换机教程
防火墙教程
搜索
爱易网页
JS特效
用 Javascript 实现锚点(Anchor)间平滑跳转
用 Javascript 实现锚点(Anchor)间平滑跳转
日期:2014-05-18 浏览次数:20253 次
以下是程序代码
<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)}; 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="he
上一篇:狡猾的按钮特效
下一篇:jquery实现链接文字飘浮渐变提示特效代码
免责声明:
本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
相关资料
更多>
HDS发布《2013中国CIO洞察白皮书》
金山毒霸安全中心: XP退役后首个高危漏洞来了
原万网CTO周雷加盟亿玛 出任CTO一职
第二梯队也PK:当1号店“遇上”京东手机节
阿朗力避步北电后尘 急切停止自我革新
打车软件竞争白热化:有冷兵器时代意味
HTC的三大迷惘:高管釜底抽薪 产品营销战略混乱
传苹果已告知鸿海:两款新iPhone下月发货
固话上网卡或将实名制 运营商泄露用户信息将被罚
推荐阅读
更多>
总部大楼已换微软Logo:回忆诺基亚的兴衰史
欧盟控诉苹果在爱尔兰非法进行税收交易
湘鄂情剥离餐饮业务进军大数据的底气在哪里?
传陌陌或12月赴美IPO 估值约30亿美元
中兴通讯不打机海战术 将向中高端手机转型
孙正义入股阿里往事还原:阿里巴巴并非软银首选
戴尔新CEO名单曝光:惠普甲骨文高管在列
银河证券王锦炎:金融业如何使用大数据
SAP高层调整:联席CEO孟鼎铭成唯一掌舵人
清点:罗永浩推锤子ROM 小米打法遭模拟
传运营商高层将变化 专家称需体制革新
阿里巴巴上市后雅虎将面临更大的业绩压力
华为任正非:家族成员不会成为接班人
英特尔涉嫌垄断 欧盟或开出史上最高罚单
HDS发布《2013中国CIO洞察白皮书》
诺基亚因充电器问题暂停销售Lumia 2520平板电脑
中国邮政与阿里合作:邮政网点可做网购自提点
支付宝钱包支持医保移动缴费 广州成首个试点
快播灭了,还有西瓜:视频网站的灰色江湖还在
阿朗力避步北电后尘 急切停止自我革新