Javascript 从主体分离时的jQuery对象scrollTop(值)?

Javascript 从主体分离时的jQuery对象scrollTop(值)?,javascript,jquery,html,css,dom,Javascript,Jquery,Html,Css,Dom,我在jQuery中执行DOM操作,将主体包装在一些div元素中,所以我尝试在转换之后匹配从窗口到div元素的滚动位置,但不知怎么的,它不起作用 以下是我正在做的: scrollPosition = $(window).scrollTop(); myBody = $("body").detach(); myBody.wrapInner("<div class='someclass'><div class='osm-website'></div></div&

我在jQuery中执行DOM操作,将主体包装在一些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);
它起作用了

在将其附加到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);

问题是,我正在用body做css转换。要做到这一点,我需要将整个身体包裹在一个div中,因为我附加了其他元素并使它们四处飞行。现在,当我将主体包裹在div中时,滚动位置会重置,这很好,我会将其带回来,但在Safari中的短暂瞬间,整个页面“闪烁”,所以我尝试在主体元素分离时进行滚动。谢谢你的回答,与此同时,我发现我真正的问题是显示元素:如果不在页面上显示它们,任何元素都无法滚动到位置。滚动它们的唯一方法是使用“可见性:隐藏”,然后在滚动后显示它们好的,我发现我真正的问题是jQuery scrollTop(position)函数对隐藏(或不在页面上)的元素不起作用
var $parent = $('....');
var $lastChild = $parent.children().last();
var offset = $lastChild.offset();

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

$(window).scrollTop(scrollPos);