gpt4 book ai didi

javascript - jQuery 对象 scrollTop(value) 从 body 分离时?

转载 作者:行者123 更新时间:2023-11-28 08:13:03 25 4
gpt4 key购买 nike

我在 jQuery 中进行 DOM 操作,将 body 包装在一些 div 元素中,因此我试图在这种转换后将滚动位置从窗口匹配到 div 元素,但不知何故它不起作用。

这是我正在做的:

scrollPosition = $(window).scrollTop();
myBody = $("body").detach();
myBody.wrapInner("<div class='someclass'><div class='osm-website'></div></div>");
myWebsite = myBody.find('.osm-website');
myWebsite.scrollTop(scrollPosition);

而我的网站scrollTop位置还是0

但如果我这样做:

myBody.appendTo('html');
$('.osm-website').scrollTop(scrollPosition);

它有效。

我必须找到一种方法在将其附加到 dom 之前滚动它,因为附加到页面后的滚动会导致 Mac 上的 Safari 中出现短暂的“闪烁”。我需要它是无缝的。

非常感谢任何帮助

最佳答案

如果您真的将内容直接附加到 html 中,您可以简单地使用:

// Source: How to get height of entire document with JavaScript?
// http://stackoverflow.com/a/1147768/887539
var body = document.body;
var html = document.documentElement;

var height = Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight );

$(window).scrollTop(height);

如果不是,你可以让你很快成为父元素并找到最后一个元素位置并添加元素高度:

var $parent = $('....');
var $lastChild = $parent.children().last();
var offset = $lastChild.offset();

var scrollPos = offset.top + lastChild.outerHeight(true);

$(window).scrollTop(scrollPos);

关于javascript - jQuery 对象 scrollTop(value) 从 body 分离时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29147899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com