每次运行脚本时,scrollTop偏移重置为零

时间:2016-05-10 18:31:43

标签: javascript jquery scroll scrolltop

我的脚本只在每次运行时将文本滚动到模态中的正确位置。我包括一个屏幕,显示控制台每次运行该功能时如何记录'0'。

摘录:

var offset = $('span').parent().offset().top-230; 
console.log(offset);
$('.modal-body').animate({scrollTop: offset}, 'fast');

编辑:添加整个脚本

$('.opBlurb span a').on('click', function() {
        var givenString = $(this).text();
        $('#opModal').modal({
              show: true,
              open: setTimeout(function() {
                    var matches = $('.modal-body p').
                            addBack().
                            contents().
                            filter(function(){                     
                                return this.nodeType === 3;
                            }).
                            filter(function(){
                            // Only match when contains given string anywhere in the text               
                                 if(this.nodeValue.indexOf(givenString) != -1)
                                   return true;
                      }).first();

                if(matches.length > 0){
                    var offset = $(matches).wrap('<span>').parent().offset().top-230; 
                    console.log(offset);
                    $('.modal-body').animate({scrollTop: offset}, 'fast');
                }
            },500)}
        );
    });

Console:

1 个答案:

答案 0 :(得分:0)

需要增加偏移量。

$('.modal-body').animate({scrollTop: offset}, 'fast');

应该阅读

$('.modal-body').animate({scrollTop: '+='+offset}, 'fast');

现在每次都滚动到正确的位置。