单击时获取存储的滚动位置

时间:2015-09-25 16:03:25

标签: jquery scroll jquery-animate scrollbar scrolltop

一个按钮,它可以位于页面垂直中心的任何位置。点击此按钮,弹出窗口打开,正文滚动到顶部。 现在点击Popup关闭按钮弹出窗口渐渐消失但是Scroll应该从它开始的位置开始。

难以解释请找参考图片 jsfiddle link

scroll animate jquery

这里是js代码:

$('#popUp').click(function(e){
    $('body').animate({scrollTop:0}, 400);
    $('.overlay').slideDown(300, function(){
        $('.openPopup').fadeIn(300);
    });
    e.preventDefault();
});
$('.close').click(function(e){
    $('.openPopup').fadeOut(300, function(){
        $('.overlay').slideUp(300);
    });
    e.preventDefault();
});

2 个答案:

答案 0 :(得分:2)

Demo

.scrollTop()就是你想要的。将其存储在打开状态,然后在关闭时使用存储的数据。

var scrolltop;

$('#popUp').click(function(e){
    scrolltop = $(document).scrollTop(); // store it
    $('body').animate({scrollTop:0}, 400);
    $('.overlay').slideDown(300, function(){
        $('.openPopup').fadeIn(300);
    });
    e.preventDefault();
});
$('.close').click(function(e){
    $('.openPopup').fadeOut(300, function(){
        $('.overlay').slideUp(300);
    });
    //$(document).scrollTop(scrolltop); // use it
    $('body').animate({scrollTop: scrolltop}, 400); // animate to scrolltop
    e.preventDefault();
});

答案 1 :(得分:1)

您可以尝试这种方式。见http://jsfiddle.net/k9nL0s52/4/

$(document).ready(function(){

var track_position;  // this is for tracking your scrolled position

    $('#popUp').click(function(e){
    $('body').animate({scrollTop:0}, 400);
    $('.overlay').slideDown(300, function(){
        $('.openPopup').fadeIn(300);
    });
    e.preventDefault();
    track_position = $('body').scrollTop(); //get current postion
});
$('.close').click(function(e){
    $('.openPopup').fadeOut(300, function(){
        $('.overlay').slideUp(300);
    });
    e.preventDefault();
    $('body').scrollTop(track_position); // set previous position after close click
});

});