爱易网
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 浏览次数:20249 次
以下是程序代码
<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实现链接文字飘浮渐变提示特效代码
免责声明:
本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
相关资料
更多>
微软的云服务显示出他们将自我进化
戴尔新CEO名单曝光:惠普甲骨文高管在列
不提老罗,不说情怀,仅从十四个投诉问题入手谈锤子手机
曝阿里巴巴一怀孕员工过劳死 加班情况引争议
惠普中国转型只是缩影 未来开展不可预期
美国电影协会在华起诉迅雷侵权 要求赔偿并道歉
宽带中国战略明确 运营商建设成本超6000亿
中电信国际漫游费下调85% 世界杯上网28元/天
“世界杯+618”集体磨刀的本质是绑架全民
推荐阅读
更多>
三大运营商获通知大减营销费 传3年减400多亿
虚拟运营商们更像三大运营商的“二道贩子”
同样的背景,罗永浩和雷军到底有什么不同?
宽带中国战略明确 运营商建设成本超6000亿
惠普中国转型只是缩影 未来开展不可预期
公信力消失:马航事件社交媒体传播之痛
NEC拟出售移动效劳子公司NEC Mobile
“宽带中国”计划已正式上升为国家战略
微信收费形式三选一 腾讯或变身运营商
索尼移动中国区陷裁员风波:业务不佳 员工焦虑
京东联席董事长赵国庆上市前夕离职
淘宝公布新规:升级售假卖家惩罚力度
HTC的三大迷惘:高管釜底抽薪 产品营销战略混乱
电信业营改增今起实施 运营商短期利润骤降
广电地方营业厅的一句“罚停”,暴露出了他们的本质
中移动五大基地将整改成公司:被指易滋生腐败
世界杯让耐克阿迪大打出手 谁能劈开用户大脑?
搜狐前副总编何毅加盟乐视 任车联网公司CEO
小灵通两年都无信号 顾客起诉联通公司
诺基亚若没加入微软,只不过是另一个HTC而已