如何禁用除一个div之外的所有内容的滚动?

时间:2014-05-10 13:38:54

标签: jquery

所以我有一个页面运行以下滚动代码(复制用于其他教程):

$(document).ready(function () {
    var divs = $('.mydiv');
    var dir = 'up'; // wheel scroll direction
    var div = 0; // current div
    $(document.body).on('DOMMouseScroll mousewheel', function (e) {
        if (e.originalEvent.detail > 0 || e.originalEvent.wheelDelta < 0) {
            dir = 'down';
        } else {
            dir = 'up';
        }
        // find currently visible div :
        div = -1;
        divs.each(function(i){
            if (div<0 && ($(this).offset().top >= $(window).scrollTop())) {
                div = i;
            }
        });
        if (dir == 'up' && div > 0) {
            div--;
        }
        if (dir == 'down' && div < divs.length) {
            div++;
        }
        //console.log(div, dir, divs.length);
        $('html,body').stop().animate({
            scrollTop: divs.eq(div).offset().top
        }, 1500);
        return false;
    });
    $(window).resize(function () {
        $('html,body').scrollTop(divs.eq(div).offset().top);
    });
});

但是现在我还有一个隐藏的印记,如果按下某个按钮就会出现,这一切都很好但是印记itselfe相当长,因此有一个自己的滚动条,所以高度是500px但是里面的实际内容更长。如果您现在尝试使用鼠标滚轮滚动它首先滚动背景(我猜身体)然后滚动我的印记的div:如何禁用所有滚动背景并让我的所有鼠标滚轮命令进入印记div(如只要它是开放的)

overflow:hidden;

没有工作,因为jquery代码会覆盖它(并且正文已经覆盖了:隐藏;使它看起来很好)

以下是显示印记的代码:

  $('.imp').click(function(){
    $('.impressum').show('slow');
});
  $('.imp-close').click(function(){
    $('.impressum').hide('slow');
});

0 个答案:

没有答案