【问题标题】:How to fire javascript function after scrolling to certain div element [duplicate]滚动到某些div元素后如何触发javascript函数[重复]
【发布时间】:2015-01-28 04:16:28
【问题描述】:

如何仅在我向下滚动到“myTargetElement”并且它在屏幕上可见时才触发此功能,而不是在页面加载后立即触发?

<script src="countUp.min.js" type='text/javascript'></script>

<script>
$(document).ready(function() {
    var countOptions = {
        useEasing : true,
        useGrouping : true,
        separator : ',',
        decimal : '.'
    }
    var customerNumber = new countUp("myTargetElement", 0, 1635, 0, 7, countOptions);
    customerNumber.start();

});
</script>

【问题讨论】:

  • 没什么,刚开始学这门语言;)

标签: javascript jquery html


【解决方案1】:

在滚动事件中检查目标元素偏移顶部和文档滚动顶部是否相同,如果相同则触发函数

$(document).scroll(function(){
    if($('.myTargetElement').offset().top == $(document).scrollTop()){
        //Trigger function
    }
});

【讨论】:

    【解决方案2】:

    以下脚本会在它可见时立即触发 (http://jsfiddle.net/f1xbgy86/1/):

    $(window).scroll(function() {
                     if(isElementVisible($('#yourElementID'))) {
            $(window).off('scroll');
                         //Call From here
    
    }
    });
    
    
    function isElementVisible(elem)
    {
        var visibleTop = $(window).scrollTop();
        var visibleBottom = visibleTop + $(window).height();
    
        return ((elem.offset().top + elem.height()) <= visibleBottom);
    }
    

    【讨论】:

    • 谢谢,这几乎是我所需要的:) 我如何只触发一次?
    • 只需使用 $(window).off('scroll'); .查看更新后的答案。
    猜你喜欢
    • 2014-11-20
    • 2014-08-28
    • 1970-01-01
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 2014-11-12
    相关资源
    最近更新 更多