javascript-jQuery .scrollTop无法正确滚动
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-jQuery .scrollTop无法正确滚动,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1189字,纯文字阅读大概需要2分钟。
内容图文
所以我有以下代码:
$(document).ready(function(){
if(window.location.hash) {
$('body,html').animate({
scrollTop: $(window.location.hash).offset().top
}, 1000);
}
})
这是我从StackOverflow获取的代码的帮助下构建的.
我将页面称为url#destination,因此实际上它应该滚动到ID为页面哈希的元素.元素存在,页面向下滚动,但不滚动到确切的元素偏移量,但在页面上方偏移了一点.可能还不错,但我希望它能按预期工作.
现在,我向您显示控制台结果:
>>>$("body").scrollTop()
>1155
>>>$("#aboutus").offset().top
>1672.890625
有人可以向我解释吗?因为我在这里什么都不懂.
解决方法:
嗯…对我来说很好.也许问题是,正如用户在注释中指出的那样,元素尚未加载,因此您应该使用$(window).load().但是,如果您使用该代码,则代码将无法正常工作,因为浏览器具有内置方法,即当URL中存在哈希时,它将直接进入ID为哈希的元素的任何位置.发生这种情况的原因是,此操作是在JavaScript代码中检测到.load事件之前触发的.因此,如果您要确保代码能够正常工作,请使用其他属性替换元素的定位,例如:
$(window).on("load", function(){
if(window.location.hash) {
setTimeout(function(){
$('body,html').animate({
scrollTop: $('*[idt="'+(window.location.hash).replace("#", "")+'"]').offset().top
}, 1000);
}, 130)
}
})
这应该完全确保动画能够正常工作,因为没有元素具有这样的哈希值,并且js代码以相同的方式进行管理.
内容总结
以上是互联网集市为您收集整理的javascript-jQuery .scrollTop无法正确滚动全部内容,希望文章能够帮你解决javascript-jQuery .scrollTop无法正确滚动所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。