问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

js?scrollTop如何到达指定位置

发布网友 发布时间:2小时前

我来回答

1个回答

热心网友 时间:2024-12-12 23:59

在JavaScript中,我们可以使用scrollTop属性来实现页面滚动至指定位置的功能。这种方法主要通过改变scrollTop值来实现平滑滚动效果,使页面能够平滑地到达用户指定的位置。例如,如果你想实现返回顶部的功能,可以将参数target设置为0。以下是一个简单的示例代码:

javascript
goTo = function(target) {
var scrollT = document.body.scrollTop || document.documentElement.scrollTop;
if (scrollT > target) {
var timer = setInterval(function() {
var scrollT = document.body.scrollTop || document.documentElement.scrollTop;
var step = Math.floor(-scrollT / 6);
document.documentElement.scrollTop = document.body.scrollTop = step + scrollT;
if (scrollT == target) {
document.body.scrollTop = document.documentElement.scrollTop = target;
clearTimeout(timer);
}
}, 20);
} else if (scrollT == 0) {
var timer = setInterval(function() {
var scrollT = document.body.scrollTop || document.documentElement.scrollTop;
var step = Math.floor(300 / 3 * 0.7);
document.documentElement.scrollTop = document.body.scrollTop = step + scrollT;
if (scrollT == target) {
document.body.scrollTop = document.documentElement.scrollTop = target;
clearTimeout(timer);
}
}, 20);
} else if (scrollT < target) {
var timer = setInterval(function() {
var scrollT = document.body.scrollTop || document.documentElement.scrollTop;
var step = Math.floor(scrollT / 6);
document.documentElement.scrollTop = document.body.scrollTop = step + scrollT;
if (scrollT == target) {
document.body.scrollTop = document.documentElement.scrollTop = target;
clearTimeout(timer);
}
}, 20);
} else if (target == scrollT) {
return false;
}
}

在使用时,可以给HTML元素绑定点击事件,从而触发滚动到指定位置的方法。例如:

javascript
function(target) / / 目前唯一target(目标距离number) ,
on(goPs,'click',function(){ goTo(2450) }); //运动到scrolltop值为2450地位置
on(goJob,'click',function(){ goTo(3373) })
on(goTel,'click',function(){ buffer.goTo(3373) })
on(goMe,'click',function(){ buffer.goTo(1539) })
on(goHome,'click',function(){ buffer.goTo(0) })
on(scrollgoOne,'click',function(){ buffer.goTo(2450) })
on(scrollgoPc,'click',function(){ buffer.goTo(2450) })
on(scrollJob,'click',function(){ buffer.goTo(3373) })
on(scrollMe,'click',function(){ buffer.goTo(1539) })
on(goTop,'click',function(){ buffer.goTo(0) })

接下来,我们来了解一下在不同浏览器中如何获取scrollTop值。在处理兼容性问题时,我们需要根据不同浏览器的特点来获取scrollTop值。具体如下:

1. IE6/7/8:对于没有doctype声明的页面里可以使用 document.body.scrollTop 来获取 scrollTop高度;对于有doctype声明的页面则可以使用 document.documentElement.scrollTop;

2. Safari:Safari 比较特别,有自己获取scrollTop的函数 : window.pageYOffset ;

3. Firefox:火狐等等相对标准些的浏览器就省心多了,直接用 document.documentElement.scrollTop ;

为了在任何浏览器下都能获取到正确的scrollTop值,可以使用以下代码:

javascript
var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;

这句代码通过或运算符来获取scrollTop值,确保在各种浏览器下都能正常工作。其中,`window.pageYOffset`被放置在或运算的中间位置,当页面滚动条在最顶端时,IE下的`window.pageYOffset`返回为`undefined`,此时将`window.pageYOffset`放在或运算最后面时,scrollTop会返回`undefined`,这会导致后续的运算出错。而其他浏览器无论scrollTop赋值或运算顺序如何都不会返回`undefined`,可以安全使用。

以上就是关于`scrollTop`到达指定位置的相关知识,希望对你有所帮助。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
福建南安都有哪些市场 端午节去南安旅行的线路有哪些值得分享? 南安有哪些特色商业街 把一个棱长是10厘米的正方体铁块熔铸成一个底面积是20厘米的圆锥形铁块... 把一块棱长10厘米的正方体铁块熔铸成一个底面直径是20厘米的圆柱形零件... 0x0438ef0指令引用的0x0438ef0内存.该内存不能为“read”的错误提示... SONY 索尼 DSC-RX100M5A 1英寸数码相机 黑色(8.8-25.7mm、F1.8) Vl... SONY 索尼 DSC-RX100M5A 1英寸数码相机 黑色(24-70mm、F1.8-F2.8)-购... 索尼RX100 M5A数码相机 索尼RX100 M5A数码相机:小巧便携,成像卓越 怎么打街头篮球名字特殊的汉字符号 魔兽世界名字的那些特殊符号 比如囧啊什么的怎么打出来的???_百度知... 蜡烛图精解:股票与期货交易的永恒技术作者简介 小米1青春版,在使用过程中 会自动静音是 上计的意思是什么 无理原因得到买家淘宝中评,怎么处理? 请推荐一些比较权威的医疗资讯网站?最好有涵盖国内以及国 突然晕倒,浑身无力,出虚汗,怎么办 头晕出虚汗是怎么了 眼前一黑晕倒出虚汗怎么回事 12123交管24小时能查到结果吗 交管12123违章多久能查出来 违章后交管12123多长时间能查出来 ...能掉了很多下来,在部队怎样练可以更快把单杠数量拉上去 在部队拉单杠怎么才能拉多点 手都拉破了也没拉几个 总是没节奏摆起来... 考教师资格证需要准备哪些教材 来月经时可以健身吗 来大姨妈可以运动吗 来例假时能做空蹬自行车吗 ...10分钟的空中蹬自行车,来例假时也可以做这些运动吗?会不会有什么... iTunes末知错误11556,确定网络是活动的稍后再试一次怎么解决 实现div内部滚动到盒子底部的效果 红旗是哪里生产的? 王者荣耀 王者荣耀龙王和暴君有什么用? 农村住宅能否抵押贷款 农村房屋能否抵押贷款 边境之旅安装失败怎么办 网络异常解决方法 边境之旅 边境之旅与服务器连接出现问题怎么办? 边境之旅怎么重新玩 边境之旅存档怎么上传 换手机存档如何继承 边境之旅怎么存档? 边境之旅存档攻略-新手攻略-安族网 去美国能随身携带化妆品吗?能带多少量? 整体门窗是什么意思 选择整屋门窗有什么好处 什么是整体门窗? 什么叫整体门窗 门窗制品包括哪些产品 圣堡罗整体门窗怎么样 圣堡罗整体门窗是一线品牌吗 门窗有哪些配件组成 门窗有哪些零件 系统门窗包含哪些 电信:这个月手机流量不够用,怎么办?