javascript - isScrolledIntoView 对象列表

标签 javascript jquery html css

isScrolledIntoView 函数已被讨论过多次。我会在这里,但仍然有一个特别的东西可以淡入淡出。

问题:下面的代码应该让单个元素一个接一个地显示。以至于这些随着延迟逐渐出现。然而,在这里,它们同时被调用。否则,它会像我想象的那样工作。

提前感谢您的帮助。

        function isScrolledIntoView(elem) {
            var docViewTop = jQuery(window).scrollTop();
            var docViewBottom = docViewTop + jQuery(window).height();

            var elemTop = jQuery(elem).offset().top;
            var elemBottom = elemTop + jQuery(elem).height();

            return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
        }

        jQuery(window).scroll(function () {
            if (isScrolledIntoView('#fadein_product1')) {
                jQuery('#fadein_product1 img.fading').each(function() {
                inImgViewproduct1 = true;
                var delay = 500;
                    jQuery(this).delay(delay).fadeIn(2000);
                    delay += 300;                           
                });
            }
            else {
                inImgViewproduct1 = false;
                jQuery('#fadein_product1 img.fading').fadeOut();
            }

最佳答案

我设法使用 CSS 不透明度和不同的滚动功能让它更好地工作。我还在 each() 函数中添加了一个 setTimeout。

jQuery

function isScrolledIntoView(elem)
 {
    var docViewTop = jQuery(window).scrollTop();
    var docViewBottom = docViewTop + jQuery(window).height();
    var elemTop = jQuery(elem).offset().top;
    var elemBottom = elemTop + jQuery(elem).height();
    return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
 }



jQuery(window).on('scroll', function(e) {

    if (isScrolledIntoView('#fadein_product1')) {
       inImgViewproduct1 = true;
       jQuery('#fadein_product1 .fading').each(function(i) { 
           var el=jQuery(this);
           setTimeout(function() { 
               el.removeClass('fade');
           }, i * 300); 
       });
   } else {
       jQuery('#fadein_product1 .fading').addClass('fade');
   }
});

CSS

.fading {
    opacity: 1;
    transition: opacity .3s;
    -ms-transition: opacity .3s;
    -webkit-transition: opacity .3s;
    -moz-transition: opacity .3s;
}
.fading.fade {
    opacity: 0;
}

关于javascript - isScrolledIntoView 对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46769290/

相关文章:

javascript - 如何在 Node.js 中过滤 JSON 数据

javascript - 没有历史记录的链接按钮

javascript - 获取特定值之后的字符串的一部分

javascript - HTML 底部的空白

javascript - 在 Jquery 库中选择一个特定的标签

javascript - 广告拦截器检测 AKA Adblock Plus

javascript - Google Maps API 和显示位置

javascript - 模式匹配永远不会终止

javascript - jQuery 自动完成功能在选择后阻止焦点

jquery - 如何使用 jQuery 选择提交按钮