javascript - 仅在页面中间时显示 div

标签 javascript jquery

我希望当页面滚动离开页面顶部时淡入 div,但是我希望在接近页面底部时再次隐藏该 div。

具体来说,我希望 div 在距顶部 200px 或距底部 200px 以内时隐藏。

我有两个独立工作的脚本,但是当两个脚本都处于事件状态时,两者之间的冲突会导致 div 闪烁进出 View 。

如何组合以下脚本来避免这种冲突?非常感激任何的帮助。谢谢!

$(function () {
    $(window).scroll(function () {
        if ($(this).scrollTop() > 200) {
            $('#myDiv').fadeIn(500);
        } else {
            $('#myDiv').fadeOut(500);
        }
    });
});

$(function () {
    $(window).scroll(function() {
       if($(window).scrollTop() + $(window).height() > $(document).height() - 200) {
           $('#myDiv').fadeIn(500);
        } else {
            $('#myDiv').fadeOut(500);
        }
    });
});

最佳答案

这个怎么样:

$(function () {
    var $window = $(window);

    $window.scroll(function () {
      var scrollTop = $(this).scrollTop();

        // only fadeIn between 200 from top and 200 from bottom
        if (scrollTop  > 200 && scrollTop <  $(document).height() - $window.height() - 200) {
            $('#myDiv').fadeIn(500);
        } else {
            $('#myDiv').fadeOut(500);
        }
    });
});

Example fiddle

关于javascript - 仅在页面中间时显示 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34945955/

相关文章:

Javascript onclick 函数被立即调用(不是点击时)?

javascript - backbone remove view 删除 el

javascript - 如何避免 div 元素在拖动过程中重叠?

javascript - 视频停止或完成播放时 Google SWFObject javascript 检测

javascript - 如何从 Controller 打开和设置 Controller Mobile-Angular 模式

javascript - 如何停止 if 语句的 for in 循环

javascript - 如何将页眉区域粘贴在页面顶部?

Jquery 切换有时不会出现 100%

javascript - 如何在 jQuery 日期和时间选择器中使用 javascript/jQuery 调整时区?

javascript - 将第一次出现的字符串替换为另一个字符串