javascript - Div 出现在页面加载时

标签 javascript jquery html css

我有以下代码应用显示/隐藏 div 的类。

$(document).ready(function($) { 
      function reusuableUpAnimFunc(elementName, offset, hideClass, showClass) {
        $(window).scroll(function() {
        $animation = $(elementName);                
          ($(this).scrollTop() > offset) ? $animation.removeClass(hideClass).addClass(showClass):
            $animation.addClass(hideClass).removeClass(showClass);
        });
      } 

reusuableUpAnimFunc('#top-btn', 400, 'element-hide', 'element-show');
});

CSS

.element-hide {
 opacity: 0;
 visibility: hidden;
}

.element-show {
 opacity: 1;
 visibility: visible;
}

问题是当页面第一次加载时 div 是可见的,然后一旦用户滚动它就会消失,然后按预期重新出现。我希望它的不透明度为 0,直到达到偏移距离

最佳答案

您可以使用 triggerHandler('scroll') 在页面加载时触发滚动回调函数.我会这样写:

$(document).ready(function($) {
    function swapClass(selector, class1, class2, setClass2) {
        $(selector).toggleClass(class1, !setClass2).toggleClass(class2, setClass2);
    }

    function reusuableUpAnimFunc(selector, offset, hideClass, showClass) {
        $(window).scroll(function () {
            swapClass(selector, hideClass, showClass, $(this).scrollTop() > offset);
        }).triggerHandler('scroll');
    }

    reusuableUpAnimFunc('#top-btn', 50, 'element-hide', 'element-show');
});
.element-hide {
    opacity: 0;
    visibility: hidden;
}

.element-show {
    opacity: 1;
    visibility: visible;
}
p { height: 50px };
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>scroll down...<p>
<div id="top-btn">This will appear on scrolling</div>
<p></p><p></p><p></p><p></p><p></p>

或者,您可以显式调用该函数:

    // ...
    $(window).scroll(function () {
        swapClass(selector, hideClass, showClass, $(this).scrollTop() > offset);
    });
    // Call it now:
    swapClass(selector, hideClass, showClass, $(this).scrollTop() > offset);
    // ...

关于javascript - Div 出现在页面加载时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47029843/

相关文章:

javascript - 滚动导航链接的样式

html - CSS3 "transform: rotate"和搜索引擎

javascript - 当我使用javascript单击它时如何获取相应的标签值

javascript - 在 jQuery 中的最后一个 tr 的正下方添加 tr

javascript - react Hook : using useState inside useEffect doesn't set the state immediately after first rendering

javascript - 我的 HTML 中包含的 JavaScript 库能否使用 cookie session 向我的网站发出请求?

javascript - element.queryselector 未在 Vim 中显示

javascript - FullCalendar 不适用于 Google Cloud 环境

jQuery 自定义 ajax 构建

jquery - CSS 和 jQuery 导航问题