如何在向下和向上滚动时触发CSS动画

2023-11-24

我在一个项目中使用了多个 CSS 动画。我的问题是这些动画在向下滚动时仅触发一次。我需要每次用户滚动它们时触发它们,无论是向上还是向下页面。

CSS

.slideRight{

    animation-name: slideRight;
    -webkit-animation-name: slideRight; 

    animation-duration: 1.5s;   
    -webkit-animation-duration: 1.5s;

    animation-timing-function: ease-in-out; 
    -webkit-animation-timing-function: ease-in-out;     

    visibility: visible !important; 

}

@keyframes slideRight {

    0% {
        transform: translateX(-150%);
    }
    50%{
        transform: translateX(8%);
    }
    65%{
        transform: translateX(-4%);
    }
    80%{
        transform: translateX(4%);
    }
    95%{
        transform: translateX(-2%);
    }               
    100% {
        transform: translateX(0%);
    }   

}

@-webkit-keyframes slideRight {

    0% {
        -webkit-transform: translateX(-150%);
    }
    50%{
        -webkit-transform: translateX(8%);
    }
    65%{
        -webkit-transform: translateX(-4%);
    }
    80%{
        -webkit-transform: translateX(4%);
    }
    95%{
        -webkit-transform: translateX(-2%);
    }           
    100% {
        -webkit-transform: translateX(0%);
    }

}

HTML

<div class="animation-test element-to-hide" style="visibility:visible;">Something</div>

JavaScript

$(window).scroll(function() {

    $('.animation-test').each(function(){

        var imagePos = $(this).offset().top;

        var topOfWindow = $(window).scrollTop();

        if (imagePos < topOfWindow+400) {
            $(this).addClass("slideRight");
        }

    });

});

$('.element-to-hide').css('visibility', 'hidden');

JSFiddle


像这样的东西应该有效。

工作示例

$(window).scroll(function () {
    $('.animation-test').each(function () {
        var imagePos = $(this).offset().top;
        var imageHeight = $(this).height();
        var topOfWindow = $(window).scrollTop();

        if (imagePos < topOfWindow + imageHeight && imagePos + imageHeight > topOfWindow) {
            $(this).addClass("slideRight");
        } else {
            $(this).removeClass("slideRight");
        }
    });
});

基本上它只是使用 if 语句来查找元素是否在视口内并添加和删除类。您可以使用以下方法切换元素的可见性:

.element-to-hide{
    visibility:hidden; 
} 
.slideRight {
    visibility: visible;
    animation-name: slideRight;
    -webkit-animation-name: slideRight;
    animation-duration: 1.5s;
    -webkit-animation-duration: 1.5s;
    animation-timing-function: ease-in-out;
    -webkit-animation-timing-function: ease-in-out; 
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在向下和向上滚动时触发CSS动画 的相关文章

  • jQuery:将文本区域滚动到给定位置

    我有一个包含很多文本的文本区域
  • iphone jquery 移动闪烁问题

    我在 iPhone 上使用使用 jQuery mobile 开发的应用程序时遇到闪烁问题 我尝试了互联网上提供的几种解决方案 包括 CSS 更改 将过渡设置为 无 甚至在 jquerymobile js 中注释代码 但没有运气 我使用的 J
  • 播放没有音频标签的音频

    是否可以在没有音频标签的情况下仅使用 javascript 播放音频 我通过 tinyMce 编辑器注入脚本 因为我无权访问网站的后端 并且它不支持客户端的音频标签 她只想要当您将鼠标悬停在图像上时发出简单的声音 我已经完成了所有设置 但是
  • 从链接打开本地文件夹

    如何通过单击任何链接打开本地文件夹视图 我尝试了很多选择 例如 a href Open folder a or a Open folder a or a Open folder a 解决方案 启动可下载链接 以下内容适用于所有浏览器 但一如
  • 如何从 html 页面 [javascript] 调用 Web 服务方法而不刷新页面

    我有一个webservice这将返回一个值 我的要求是 我需要调用它webservice从一个index html页面 该页面有一个 html 提交按钮 在该按钮上单击我正在呼叫JavaScript 从那里我想调用网络方法 我怎样才能做到这
  • 如何在React中动态分配属性?

    这是一个有两个参数的函数 我要创建的标签的名称 具有以下属性的对象 Using React 我创建一个组件并将该元素渲染到 DOM 问题是我想向元素添加属性 但它不允许循环在元素内设置属性 var Element function elem
  • 从字节数组设置 img src

    我需要设置img src我在对象中拥有的字节数组的属性 img
  • Firebase + Node.js:错误:找不到 XMLHttpRequest 兼容性库

    Firebase Node js On iOS 安装的 Node js npm 安装 firebase save 节点测试 js 其中 test js 是一个非常简单的连接到 Firebase 的脚本 var firebase requir
  • 如何将MathJax公式转换为img

    Mathjax 现在在我的项目中运行良好 但有一个问题 有没有办法将MathJax的公式 纯html和css 转换成img文件 我可以保存 MathJax 可以配置为生成 SVG 看http docs mathjax org en late
  • Google 地图 API - 地图未显示 - 没有错误

    我正在尝试将地图从 Google API 加载到 div 中 但是 地图未加载 并且没有输出任何错误 这是代码 google maps var geocoder map function codeAddress address geocod
  • 使用flex-basis控制行上显示的项目数

    我想在使用 Flex 时将元素推出以隐藏它们 例如 如果flex basis为 50 仅显示两个项目弯曲到给定空间 而其他元素则在overflow hidden 领土 Or if flex basis为 25 则仅显示 4 个 Flex 元
  • React Redux - 在辅助函数中访问现有存储

    我试图在反应组件之外获取存储实例 存储状态 即在单独的辅助函数中 我有我的减速器 我的动作 我在最上面的组件中创建了一个商店 configStore js import createStore from redux import gener
  • vuejs中如何获取组件编译后的html内容

    我有一个这样的组件
  • 为什么我的 Web 组件 CSS 不显示?我没有使用shadowDOM

    我有一个没有使用 ShadowDOM 的 Native V1 组件 所以我将 CSS 放在 但是当其他人使用我的组件时 我的 CSS 就不再起作用了 仅当其组件确实使用 ShadowDOM 时才会发生这种情况 我的组件的示例代码 class
  • onPress 方法中箭头函数与普通函数的行为

    正在学习 Native React 并学习更多关于 javascript 的知识 所以我仍然不明白它的行为的很多事情 我使用 TouchableOpacity 及其 onPress 属性创建了一个按钮组件 为了让它工作 我必须发送我想要执行
  • Three.js点击单个粒子

    In this example http jsfiddle net agqq96bq 2 您可以看到 2 个可点击的粒子 但它们都受到点击的影响 另外 我只想检测粒子上的点击 而不将它们过滤出场景 像这儿 if intersects len
  • 触发 jQuery UI 滑块事件

    如何触发更改事件jQuery UI 滑块 http docs jquery com UI Slider 我以为会是 slider trigger slidechange 但这没有任何作用 完整的示例脚本如下
  • Vue - 调度完成后调用 store getter?

    我正在使用 Laravel 5 7 Vue2 Vuex 我在调度调用完成后让 Vue 返回存储值时遇到一些困难 我的申请流程如下 我单击一个提交按钮 该按钮调用组件上的 validate Validate 分派到我的 addLease 操作
  • 将网站加载到 DIV 中

    当我在文本框中写入 URL 然后单击提交按钮时 如何实际从网站检索数据 我希望将数据放入我拥有的 div 中 这可能吗 我已经尝试过这个 但它不起作用
  • Cycle2 初始化事件未触发

    我使用 Cycle2 作为基本的轮播 我的幻灯片项目有时在其数据中包含一个 url 因此我必须使用 Cycle2 api 事件来使用该 url 当它存在时 我的问题是 虽然 cycle after 事件触发正常 但初始化事件都不会触发 因此

随机推荐

  • ExtJs:在组合框中搜索/过滤

    我在 ExtJs 2 3 中遇到以下问题 我想在组合框中进行搜索 我给你举个例子 Ext comboData names Peter Paul Amanda var store new Ext data SimpleStore fields
  • surfaceView.getHolder 不返回 SurfaceHolder

    我正在尝试编写一个使用相机的应用程序 当尝试获取最终传递给启动相机的 surfaceCreated 的 surfaceHolder 时 我收到 NullPointerException getHolder 是否有返回NULL的情况 than
  • 如何连接 sparql 中的值列表?

    假设我有一个urihttp dbpedia org page Manmohan Singh现在他的标签 dbpprop years 中有一个年份列表 当我写一个查询时 PREFIX rdf
  • 在匿名方法中使用 MethodInfo.GetCurrentMethod()

    public static void Main string args Action a gt Console WriteLine MethodInfo GetCurrentMethod Name a 这段代码将返回一个模糊的字符串 如下所
  • CORS - 是客户端、服务器端还是传输层? [复制]

    这个问题在这里已经有答案了 我试图理解CORS 根据我的理解 它使您能够限制哪些域可以访问服务器上的资源 然而 这似乎并不是故事的全部 例如 我有一个未启用 CORS 的 Web 服务 我无法通过 jQuery 从我的 Web 应用程序访问
  • 具有自签名证书的 Python 3 urllib

    我正在尝试使用 Python 从内部服务器下载一些数据 由于它是内部的 因此它使用自签名证书 我们不想为永远不会出现在 野外 的服务器付费 Python 2 6 版本的代码运行良好 response urllib2 urlopen URL
  • ReactJS:警告:setState(...):无法在现有状态转换期间更新

    我正在尝试从渲染视图重构以下代码
  • Python内存映射

    我正在处理大数据 并且我的矩阵大小约为 2000x100000 因此为了更快地工作 我尝试使用 numpy memmap 来避免由于 RAM 限制而在内存中存储这么大的矩阵 问题是 当我将相同的矩阵存储在两个变量中时 即一个使用 numpy
  • 在 Rails 中存储应用程序特定配置的最佳方法是什么?

    我需要在 Rails 中存储应用程序特定的配置 但它必须是 可在任何文件 模型 视图 助手和控制器 中访问 指定 或未指定 环境 这意味着每个环境都可以覆盖environment rb中指定的配置 我尝试使用environment rb并放
  • 致命错误:未找到类“Illuminate\Foundation\Application”

    当我打开使用 laravel 5 制作的网站时出现以下错误 致命错误 在第 14 行的 C cms bootstrap app php 中未找到 Illuminate Foundation Application 类 我尝试删除供应商文件夹
  • 在运行时加载 Java 字节代码

    我得到了一些在我的程序中生成的java字节代码 因此编译了java源代码 现在我想将此字节码加载到当前运行的 Java VM 中并运行特定的函数 我不知道如何实现这一点 我深入研究了 Java 类加载器 但没有找到直接的方法 我找到了一个解
  • 在 Android 模拟器上通过 appium 或 adb 启用“show_touches”

    是否可以从 appium 启用 android 上的 show touches 选项 还是通过adb 我有一个 appium 测试脚本 它的行为不正常 我不知道为什么 我想看看它到底在哪里点击 adb shell settings put
  • Apollo 客户端:变量未定义。收到状态码 400

    我正在尝试使用 Apollo 客户端在 GraphQL 查询中使用动态变量 我已遵循文档 但 Apollo 不断给我错误 说我的变量未定义 并最终以状态代码 400 进行响应 Apollo 的文档是这样说的 mutate 选项 Mutati
  • Rails 应用程序中的 Cookie 溢出?

    UsersController create 中的 ActionDispatch Cookies CookieOverflow 当我尝试打开该页面时出现此错误 我不知道如何调试这个错误 您对这个问题有什么建议吗 def create use
  • 如何获取 VSS 快照的“NextUSN”日志条目?

    创建 VSS 快照后 我希望能够查询 USN 日志 这是否可能 或者 USN 日志是否无法从 VSS 快照访问 my goal 是能够在两个 VSS 快照之间的增量备份中使用 USN 日志 备份的过程是 拍摄 VSS 快照并备份卷 记下每个
  • 如何在 Excel VBA 中使用 .NET 对象?

    VBA 代码可以实例化和使用 NET 对象吗 我感兴趣的具体类是 System IO Compression GZipStream For InfoGAC 是 NET 全局程序集缓存 我认为 Andy 明确了这个答案 但我不确定有关 CLR
  • Java:使用整数常量声明枚举时遇到问题

    呃 我对 Java 中枚举的工作原理有点困惑 在 C 和 C 我通常使用的 中 这似乎没问题 但 Java 想要生我的气 gt gt enum Direction NORTH WEST 0x0C NORTH 0x10 NORTH EAST
  • 如何查询 pthread 以查看它是否仍在运行?

    在我的析构函数中 我想干净地销毁线程 我的目标是等待线程完成执行 然后销毁该线程 我发现查询 pthread 状态的唯一内容是pthread attr setdetachstate但这只能告诉您您的线程是否是 PTHREAD CREATE
  • 哪些浏览器在缓存 XMLHTTPRequest 响应时存在问题?

    当前流行的浏览器在缓存 XMLHttpRequest 响应时是否存在我需要注意的特殊问题 我希望能够在每个页面上包含 XMLHttpRequest 查询 作为动态加载与页面类型相关的内容 即 JSON 或行为 如 eval ed Javas
  • 如何在向下和向上滚动时触发CSS动画

    我在一个项目中使用了多个 CSS 动画 我的问题是这些动画在向下滚动时仅触发一次 我需要每次用户滚动它们时触发它们 无论是向上还是向下页面 CSS slideRight animation name slideRight webkit an