1

我是 jquery 的新手,所以请多多包涵!

当您单击其上方的图像时,我正在使用下面的代码滚动打开包含文本的 div。除了图像靠近屏幕底部时,这工作正常。然后包含文本的 div 打开,但它在折叠下方打开 - 即您必须向下滚动屏幕才能看到它。

是否有一种简单的方法可以添加到下面的代码中,当 div 向下滚动时将页面向上移动?这样用户就不必向下滚动页面来查看文本?

谢谢

$(document).ready(function() {
    //Set default open/close settings
$('.acc_container').hide(); //Hide/close all containers
$('.acc_trigger:first').next().hide(); //Add "active" class to first trigger, then show/open the immediate next container

//On Click
$('.acc_trigger').click(function(){
    if( $(this).next().is(':hidden') ) { //If immediate next container is closed...
        $('.acc_trigger').next().slideUp(); //Remove all "active" state and slide up the immediate next container
        $(this).toggleClass('active').next().slideDown(); //Add "active" state to clicked trigger and slide down the immediate next container

}
    return false; //Prevent the browser jump to the link anchor

});

});
4

1 回答 1

0

你可以使用这个:

演示:http: //jsfiddle.net/SO_AMK/uecpG/

jQuery:

$(document).ready(function() {
    $('.acc_container').hide();
    $('.acc_trigger:first').next().hide();
    $('.acc_trigger').click(function() {
        if ($(this).next().is(':hidden')) {
            $('.acc_trigger').next().slideUp();
            $(this).toggleClass('active').next().slideDown(400, function() {
                $(document).scrollTop($(this).prev().position().top);
            });
        }
        return false;
    });
});​

请注意,没有动画,实现一个将需要更多的代码,因为元素的高度不断变化,如果你有一个预先确定的高度,那么数学就很简单。

于 2012-11-29T14:37:31.807 回答