使用jQuery和CSS3创建基于卷轴的动画3
创建运动是为观众提供有趣且互动的体验的好方法。随着现代网站提供更多的交互性,人们越来越期望简单的网站将提供一定程度的动画 /运动来吸引访客。
>今天,我将概述您可以适应您的Web项目的技术 - 滚动到预定义的区域时触发动画。这些动画将使用CSS变换和CSS过渡创建。我们还将使用jQuery检测何时可见元素并添加/删除适当的类。
对于那些想看到此类示例的人,您可以直接跳到演示。钥匙要点
可以使用JQuery和CSS3创建基于卷轴的动画,为观众提供交互式体验。当用户滚动进入预定义的区域时,这些动画会触发,从而使其更具吸引力和视觉吸引力。 该技术涉及使用CSS变换和CSS转换,用于检测何时可见元素并添加/删除适当的类。这种方法的考虑包括浏览器的兼容性和速度,现代浏览器支持2D和3D转换以进行平滑动画。
- 该过程涉及检测视图中的动画元素,挂接到滚动事件,处理调整大小以及计算元素的高度和宽度。当元素位于视口内时,可以触发动画,从而允许为交互式接口链接其他转换或效果。
- > 滚动动画的示例包括从左侧的元素滑动,从底部向上褪色的元素以及多步弹力动画。这些技术可以适用于各种网络项目,例如显示员工资料或课程信息。
- 为什么在滚动上触发动画?
- > >我们要在滚动上触发动画的主要原因是,当用户滚动元素视图时,它们就可以激活它们。
- >我们可能希望淡入元素,或提供有趣的转换,只有在用户可以实际查看它们时,这些元素才有意义。
使用CSS或用jQuery进行动画?
>每种方法都有利弊。 jQuery(读取JavaScript)允许您动画CSS不使用的内容(例如滚动位置或元素的属性),而CSS动画对于喜欢将所有动画和演示逻辑的开发人员非常有吸引力层。
>我将通过CSS使用转换,但是根据您的情况,总有变量需要考虑。我会考虑以下因素:
>浏览器兼容性
由于我们的解决方案将基于转换,因此我们的浏览器兼容性将仅限于支持2D变换或3D变换的浏览器。
>所有现代浏览器都将支持3D变换,几个旧的旧浏览器(例如Internet Explorer 9和Opera 11.5)将支持2D变换。桌面和移动浏览器的总体支持都是全面的。
如果您使用库的1.x版本,则速度
>我们想要快速,流畅的动画,尤其是在移动设备方面。因此,它总是最好在可能的情况下使用过渡和转换。
示例将对较旧的浏览器使用3D变换,并使用2D秋季。我们想强制硬件加速度以速度,因此必须进行3D转换(我们将使用Translate3D以及其他导致GPU加速渲染的功能)。
> jQuery的动画方法比GPU辅助转换要慢得多,因此我们将使用jQuery进行活动处理 /计算,而不是为了我们的动画本身(因为我们希望它们尽可能流畅)。
旁注我们都知道jQuery!== javascript,对吗?好吧,事实证明,将香草JS用于动画可能并不是一个不好的想法。尽管这超出了本教程的范围,但对于那些有兴趣了解更多信息的人来说,这是有关该主题的两篇出色文章:
>
css vs. JS动画:哪个更快?
>- 神话破坏:CSS动画与JavaScript
- >
- 现在回到节目…
>该技术的总体要点是浏览我们标记为动画的所有元素,然后确定它们当前是否在视口内。让我们介绍如何实现这一目标:
选择器缓存
滚动是一项昂贵的业务。如果您将事件侦听器附加到滚动事件,则每当用户滚动页面时,它都会发射很多次。由于每当用户滚动时,我们将调用我们的维度 /计算功能,因此最好将选择器返回的元素存储在变量中。这被称为选择器缓存,并避免我们一遍又一遍地查询DOM。
>在我们的脚本中,我们将引用窗口对象和要动画的元素的集合。
请注意变量前面的美元符号。这是指出他们容纳jQuery对象或对象的收集的惯例。
>
挂在滚动事件
接下来,我们创建了聆听滚动事件的事件处理程序。当我们滚动页面时,这将发射。我们将其引用到我们的check_if_in_view函数(我们将在一分钟内获取)。每次滚动事件启动时,都将执行此功能。
>1 2 3 |
|
>处理调整大小
由于我们正在计算高度和宽度,因此我们需要考虑方向变化以及一般调整大小。
>我们可以更新活动处理程序,以聆听滚动和调整大小的事件。这将使我们的检测功能在调整大小或更改方向时能够起作用。
1 |
|
>此外,我们还使用jQuery触发方法在DOM准备就绪后立即触发滚动事件。我们这样做是为了使视图中的任何要动画的元素都在视图中被检测到视图,并且应用动画就好像我们已经滚动一样。
1 |
|
滚动位置检测
>此示例的实际检测部分来自以下脚本。
1 |
|
让我们分解这里发生的事情。
> Check_IF_IF_IN_VIEW功能最初在DOM准备就绪时,然后每次调整或滚动时。
>我们获得了窗口的当前高度,以及其顶部和底部位置,因此我们知道我们正在寻找的区域。
>我们经历并查找所有将在其中进行动画的项目(保存在$ Animation_Elements变量中)。对于这些元素,我们收集其高度及其顶部和底部位置(因此我们知道它在页面上的位置)。
>我们比较每个项目,以查看其底部位置是否大于窗口的顶部位置,但该项目的顶部位置也小于窗口的底部位置。
这是一个视觉示例

计算高度和宽度
在我们的检测功能中,我们需要获取各种元素的高度和位置以正确计算事物,这是我们使用jQuery的高度功能的地方。 对这些高度功能的工作原理的细分很重要
height()和width()高度()和width()函数返回元素的高度或宽度。他们排除了所有填充,边界和边缘。

inninheight()和innerwidth()函数返回元素的高度或宽度,包括其附加填充(但是它不包括边界和边缘)
>要进行完整的故障,请访问Interheight或InterWidth文档。

此外,您还可以通过将真实值传递给函数来指定以包括其边缘。
要进行完整的故障,请访问外部或外部宽水文档

下面列出的是一系列动画,使用我们讨论过的基础知识。这些示例将寻找动画元素,并在视图中应用活动元素。
> 您要移动的元素都应具有标准类,例如动画元素,将其位置设置为相对或绝对。此外,如果要创建多个效果,则可以创建相应的类,例如滑左左,可以将其与视图类结合使用。然后,您应该将转换应用于Animation-Element.slide-Left.inview
等类>从左
滑入对于我们的第一个示例,我们将在进入视口时从左侧滑动。 我们通过在元素x轴上使用Translate3D来实现这一目标。
>请参阅滚动上的笔CSS动画 - 从sitepoint(@sitepoint)从codepen上滑入。
> 在此示例中,我们使用它来显示员工配置文件,但是您可以重新利用相同的功能以在所需的任何元素中滑动。>从底部淡入
这次,当用户滚动时,我们将从底部向上淡出元素。我们通过元素Y轴上的翻译3D实现了这一目标。
在此示例中,我列出了有关网格结构中有关主题的课程信息。当用户向下滚动时,每张卡中的每张卡都会淡入并向上移动,并显示有关该课程的信息。
>请参阅滚动上的笔CSS动画 - codepen上的sitepoint(@sitepoint)从底部淡出。
多步弹力动画
在最后的示例中,我们将使用多阶段动画。为此,我们将定义将旋转与翻译结合的自定义密钥帧动画。这种动画可以帮助展示您网站的区域(在此示例中,我们正在展示员工资料)。
>请参阅滚动上的Pen CSS动画 - codepen上的sitepoint(@sitepoint)的多步骤移动。
从这里到哪里?
>
>从这里您可以采用您学到的概念并将其应用于您的项目。>现在您可以检测到何时在视图中进行元素,您可以链接其他转换或效果来创建交互式接口。例如,当元素进入视口(以及其转换之后)时,您可以转换其他元素,例如标题中的褪色,图像中的缩放等。
>您已经在项目中使用了这些效果吗?还是您认为动画被过度使用并损害用户体验?无论哪种方式,我都希望在评论中收到您的来信。
>>将您的CSS技能带入我们的CSS Master,Tiffany B. Brown的第二版,涵盖CSS动画,过渡,转型等。 经常询问的问题(常见问题解答)关于使用jQuery和CSS3
的基于滚动的动画>使用jQuery和css3?
创建基于卷轴的动画的基本要求是什么,可以使用JQuery和CSS3创建基于卷轴的动画,您需要对HTML,CSS和JavaScript的基本了解。您还需要在项目中包含jQuery库。 JQuery是一个快速,小且功能丰富的JavaScript库,简化了HTML文档遍历,事件处理和动画。另一方面,CSS3是级联样式语言的最新演变,旨在扩展CSS2.1。它带来了许多期待已久的新颖性,例如圆角,阴影,渐变,过渡或动画。
>>我如何开始使用jQuery和css3?创建基于卷轴的动画,您首先需要在HTML文件中包含jQuery库。您可以从jQuery网站下载它,也可以直接从内容交付网络(CDN)中包含它。包含jQuery后,您可以在单独的.js文件或HTML文件中的脚本标签中开始编写JavaScript代码。然后,您可以使用jQuery的.aimate()方法来创建动画。对于CSS3动画,您可以使用KeyFrames和Animation属性。
我可以控制jQuery中基于滚动的动画的速度吗?在jQuery。 .aimate()方法接受持续时间参数,该参数确定动画将运行多长时间。持续时间以毫秒为单位;较高的值表示动画速度较慢,而不是更快的动画。
>如何使我的基于卷轴的动画更顺畅?
使您的基于卷轴的动画更加顺畅,您可以使用'siele' -out'CSS3过渡 - 定时功能属性的值。该值指定动画应缓慢启动,在中间加速,然后在末尾放慢速度。这可以给您的动画带来更自然和平滑的感觉。
当用户滚动到页面上的某个点时,我如何触发动画?您可以使用jquery's .scroll()方法触发事件,当用户在用户滚动到某个点上的某个点时页。在.scroll()方法中,您可以使用.scrolltop()方法来获取滚动条的当前垂直位置。然后,您可以使用if语句检查滚动位置是否超出了一定点,如果是的,则触发动画。我可以使用无jQuery的CSS3动画吗?可以在没有jQuery的情况下使用CSS3动画。 CSS3引入了@KeyFrames规则和动画属性,该属性允许您仅使用CSS创建动画。但是,jQuery可以对动画提供更多的控制和灵活性,例如基于用户互动的动态更改动画属性。
>
>如何停止或暂停JQuery中的基于滚动的动画?您可以使用.stop()方法在jQuery中停止基于卷轴的动画。此方法可以在所选元素上停止当前运行的动画。要暂停动画,这要复杂得多,因为jQuery并不是本地支持动画暂停。但是,您可以通过使用插件或手动跟踪动画状态和进度来实现这一目标。>
>如何使用jQuery和css3?我可以使用jQuery一次动画多个CSS属性吗? >是的,您可以使用jQuery的.aimate()方法一次对多个CSS属性进行动画动画。您只需要在.aimimate()方法的属性对象参数中包含要动画为键值对的属性。
如何确保我的基于滚动的动画在不同的浏览器上工作?>
以上是使用jQuery和CSS3创建基于卷轴的动画3的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

从C/C 转向JavaScript需要适应动态类型、垃圾回收和异步编程等特点。1)C/C 是静态类型语言,需手动管理内存,而JavaScript是动态类型,垃圾回收自动处理。2)C/C 需编译成机器码,JavaScript则为解释型语言。3)JavaScript引入闭包、原型链和Promise等概念,增强了灵活性和异步编程能力。

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。
