jquery - 当元素位于视口(viewport)中时对其进行动画处理

标签 jquery css animation

正如目前在很多网站上看到的那样,我想在元素进入视口(viewport)或距视口(viewport) 100px 等时对其执行一些操作。

我已经寻找了很长时间,但到目前为止没有任何效果。

我有一个元素列表,高 500 像素,宽 100%。我对动画等以及我将如何处理它们感到满意,只需要在它们进入 View 时触发一些帮助。

我的目标是为元素提供一个动画元素类,然后能够使用该类来检查它是否在 View 中。

伪代码:

$(window).on('scroll', function() {
    if (element is in the viewport) {
        $(this).doSomething();
    }
});

我似乎很懒,但我已经寻找了太久但没有成功。

任何先前的尝试总是在不断滚动时触发,因此即使元素不在视口(viewport)中并且我正在设置控制台日志,当滚动一点点时我也会有 100 条日志。

最佳答案

我最近为另一个答案创建了类似的解决方案。

JS 跟踪窗口的滚动,并比较窗口滚动的距离,与 offset().top 相比(跟踪该元素距离页面顶部的距离) )。如果窗口滚动位于元素顶部的 -300px 范围内,它将从左侧淡入/动画动画。

JS:

var $win = $(window);
var $stat = $('.animation-element'); // Change this to affect your desired element.

$win.on('scroll', function () {
    var scrollTop = $win.scrollTop();

    $stat.each(function () {
        var $self = $(this);
        var prev=$self.offset();
        console.log(scrollTop);
        console.log(prev.top);
        if ( (scrollTop - prev.top) > -300) {
          $self.css('opacity', '1').addClass('animated fadeInLeft ');
        } else {
          console.log('n');
        }

    });

}).scroll();

这是正在运行的 JSfiddle — 向下滚动以查看元素滑入。 https://jsfiddle.net/wigster/5dbt7ft3/1/

关于jquery - 当元素位于视口(viewport)中时对其进行动画处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34270530/

相关文章:

python - 为什么这个 Python Flask 路由器在被跨域 AJAX 调用 ping 时返回 400 错误?

javascript - 检测 facebook 用户是否在没有弹出窗口的情况下登录

javascript - AngularJS - 将变量值添加回 Controller $scope

html - 将图像和导航栏定位在彼此之上

javascript - 用于光滑 slider 的自定义上一个和下一个按钮

html - Opera <table> 换行错误

html - 显示 : inline-flex; causes weird box model rendering

Mouseenter 上的 jQuery 动画问题

android - 什么是在 OpenGL ES Android 中为 Sprite 表中的对象设置动画的技术?

Swift ios 10 NavBar 项目不断增长