jQuery Waypoints - 具有相同 CLASS 的多个 div

jQuery Waypoints - multiple divs with same CLASS

我已遵循本教程:http://spin.atomicobject.com/2015/05/31/scroll-anmiation-css-waypoints/ 成功。我想在页面上的几乎每个元素上应用淡入淡出。这意味着使用这种 jQuery 方法,我需要为每个元素创建单独的 类 并复制代码,因为否则具有相同 class 的每个元素当前仅在第一个 Waypoint 淡入.

这是我的:

// hide our element on page load
$('.fade-in').css('opacity', 0);

$('.fade-in').waypoint(function() {
$('.fade-in').addClass('fadeInUp');
}, { offset: '95%' });

通过关注此页面,我尝试将其调整为:

但我无法让它工作...有什么想法吗? (我的 Jquery 可能有点偏差)

// hide our element on page load
$('.fade-in').css('opacity', 0);

var sticky = [];
$('.fade-in').each(function(idx){
sticky[idx] = new Waypoint.Sticky({ element: this });
$({element: this}).addClass('fadeInUp');
});

我也不知道如何在偏移部分添加。

非常感谢

我不确定我是否可以遵循上面的代码,但我想我理解你想要实现的目标并且我做了类似的事情。

使用 waypoints 向元素添加 class 并让 CSS 处理过渡或动画。

假设您使用的是 jquery 版本的 waypoints。

site.js

$(document).ready(function(){
    //set a waypoint for all the page parts on the page
    var ppWaypoint = $('.pp').waypoint(function(direction) {
        //check the direction
        if(direction == 'down') {
            //add the class to start the animation
            $(this.element).addClass('show');
            //then destroy this waypoint, we don't need it anymore
            this.destroy();
        }
    }, {
        //Set the offset
        offset: '80%'
    });
});

您的 CSS 可以随心所欲,假设您只想淡入淡出元素

style.css

.pp {
    transition-property: opacity;
    transition-duration: 0.8s;
    opacity: 0;
}
.pp.show {
    opacity: 1;
}

这里的CSS很简单;只需将元素的不透明度默认设置为 0,当添加 show 的 class 时,不透明度将更改为 1。过渡 属性 和持续时间将使这一切发生得非常顺利。

对于更酷一点的东西,您可以让它向上滑动和淡入,只需稍微改变一下 CSS;

.pp {
  transition-property: opacity, transform;
  transition-duration: 0.8s;
  opacity: 0;
  transform: translateY(5px);
}
.pp.show {
  transform: translateY(0px);
  opacity: 1;
}

我在这里所做的就是添加变换 translateY 属性 来处理向上移动。

我已经省略了所有额外的浏览器 CSS 定义,但您肯定希望包括它们。

希望对您有所帮助!