【问题标题】:Make the scroll go after popup windows height, not the main contents height使滚动跟随弹出窗口高度,而不是主要内容高度
【发布时间】:2012-04-01 15:17:26
【问题描述】:

长问题:我在 Facebook 上看到单个弹出窗口(例如,当您从某人的提要中打开问题时)会影响滚动行为,因此它不会滚动主要内容,而只会滚动弹出窗口中的内容当然,根据它的高度。我该怎么做?

小问题:如何让滚动“聚焦”welcome DIV 中的内容高度?

我已经做到了这一点:http://jsfiddle.net/y3qV5/506/。我希望你明白我的意思:)

提前致谢。

【问题讨论】:

标签: css popup scroll


【解决方案1】:

您可以在正文中添加overflow: hidden

http://jsfiddle.net/y3qV5/520/

body.freeze { overflow: hidden; }

$('#pop').click( function() {
    $('.welcome').fadeIn();
    $('body').addClass('freeze'); 
});

$('#close').click( function() {
    $('.welcome').fadeOut();
    $('body').removeClass('freeze');
});

旧答案: http://jsfiddle.net/y3qV5/519/

//bind on show
$('.welcome').fadeIn().bind('mousewheel DOMMouseScroll', function(e) {
    console.log('scroll');   
    var scrollTo = null;

    if (e.type == 'mousewheel') {
        scrollTo = (e.originalEvent.wheelDelta * -1);
    }
    else if (e.type == 'DOMMouseScroll') {
        scrollTo = 40 * e.originalEvent.detail;
    }

    if (scrollTo) {
        console.log('prevent');
        e.preventDefault();
        $(this).scrollTop(scrollTo + $(this).scrollTop());
    }
});   


//unbind on close
$('.welcome').fadeOut().unbind('mousewheel DOMMouseScroll');

【讨论】:

  • 我已经阅读了您在我的问题中的评论,并且滚动不会禁用内容滚动并且仅启用弹出窗口的滚动,正如我在链接到的图像中向您展示的那样。我想您的功能仅适用于 Internet Explorer。我正在使用谷歌浏览器。
  • 我明白了。只需在正文中添加overflow: hidden
  • 非常感谢!但是我怎样才能让弹出窗口滚动像整个页面的常规滚动一样,就像在 Facebook 上一样?我不想让弹出窗口感觉像 iframe。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-17
  • 1970-01-01
  • 1970-01-01
  • 2011-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多