jQuery .wrapAll()重置嵌套元素的滚动

时间:2014-02-19 08:01:59

标签: javascript jquery scroll wrapall

请看下面的小提琴:

http://jsfiddle.net/ardoramor/UzJqd/

当小提琴加载时,类.wrapper的DIV向下滚动200px。这包括所有嵌套的.wrapper. DIVs as well. After 5 seconds, trigger。wrapAll()will be executed on the children of。container . The content of the。container class will be wrapped by a new DIV with。wrapAll class. You will notice that the red and blue areas jump and you can now see the top and`元素。这是因为包装。

注意:这是一个非常简化的示例。实际上,我现在将知道.wrapper DIV的内容。此外,可能存在多个具有滚动的这样的元素。我的问题是容器的子项是否可以在不重置卷轴的情况下进行包装。

3 个答案:

答案 0 :(得分:2)

在换行前保存scrollTop,如果换行后保存还原。

var st = $( '.wrapper' ).scrollTop();
$( '.container' ).children().wrapAll( '<div class="wrapAll">' );
$('.wrapper').scrollTop(st);

更新了小提琴:http://jsfiddle.net/JR6y8/1/

答案 1 :(得分:0)

只需将滚动代码放在wrapAll函数

之后
$( '.wrapper' ).scrollTop( 200 );

答案 2 :(得分:0)

试试这个:

setTimeout( function () {
        $( '.container' ).children().wrapAll( '<div class="wrapAll">' ).scrollTop($('.container').height());
    }, 5000 );
});