创建运动是为观众提供有趣且互动的体验的好方法。随着现代网站提供更多的交互性,人们越来越期望简单的网站将提供一定程度的动画 /运动来吸引访客。
>今天,我将概述您可以适应您的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函数(我们将在一分钟内获取)。每次滚动事件启动时,都将执行此功能。
><span>//Cache reference to window and animation items </span><span>var $animation_elements = $('.animation-element'); </span><span>var $window = $(window);</span>
>处理调整大小
由于我们正在计算高度和宽度,因此我们需要考虑方向变化以及一般调整大小。
>我们可以更新活动处理程序,以聆听滚动和调整大小的事件。这将使我们的检测功能在调整大小或更改方向时能够起作用。
$<span>window.on('scroll', check_if_in_view);</span>
>此外,我们还使用jQuery触发方法在DOM准备就绪后立即触发滚动事件。我们这样做是为了使视图中的任何要动画的元素都在视图中被检测到视图,并且应用动画就好像我们已经滚动一样。
$<span>window.on('scroll resize', check_if_in_view);</span>
滚动位置检测
>此示例的实际检测部分来自以下脚本。
$<span>window.trigger('scroll');</span>
让我们分解这里发生的事情。
> Check_IF_IF_IN_VIEW功能最初在DOM准备就绪时,然后每次调整或滚动时。
>我们获得了窗口的当前高度,以及其顶部和底部位置,因此我们知道我们正在寻找的区域。
>我们经历并查找所有将在其中进行动画的项目(保存在$ Animation_Elements变量中)。对于这些元素,我们收集其高度及其顶部和底部位置(因此我们知道它在页面上的位置)。
>我们比较每个项目,以查看其底部位置是否大于窗口的顶部位置,但该项目的顶部位置也小于窗口的底部位置。
这是一个视觉示例

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

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

JavaScript字符串替换方法详解及常见问题解答 本文将探讨两种在JavaScript中替换字符串字符的方法:在JavaScript代码内部替换和在网页HTML内部替换。 在JavaScript代码内部替换字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 该方法仅替换第一个匹配项。要替换所有匹配项,需使用正则表达式并添加全局标志g: str = str.replace(/fi

本教程向您展示了如何将自定义的Google搜索API集成到您的博客或网站中,提供了比标准WordPress主题搜索功能更精致的搜索体验。 令人惊讶的是简单!您将能够将搜索限制为Y

利用轻松的网页布局:8个基本插件 jQuery大大简化了网页布局。 本文重点介绍了简化该过程的八个功能强大的JQuery插件,对于手动网站创建特别有用

因此,在这里,您准备好了解所有称为Ajax的东西。但是,到底是什么? AJAX一词是指用于创建动态,交互式Web内容的一系列宽松的技术。 Ajax一词,最初由Jesse J创造

核心要点 JavaScript 中的 this 通常指代“拥有”该方法的对象,但具体取决于函数的调用方式。 没有当前对象时,this 指代全局对象。在 Web 浏览器中,它由 window 表示。 调用函数时,this 保持全局对象;但调用对象构造函数或其任何方法时,this 指代对象的实例。 可以使用 call()、apply() 和 bind() 等方法更改 this 的上下文。这些方法使用给定的 this 值和参数调用函数。 JavaScript 是一门优秀的编程语言。几年前,这句话可

该帖子编写了有用的作弊表,参考指南,快速食谱以及用于Android,BlackBerry和iPhone应用程序开发的代码片段。 没有开发人员应该没有他们! 触摸手势参考指南(PDF) Desig的宝贵资源

jQuery是一个很棒的JavaScript框架。但是,与任何图书馆一样,有时有必要在引擎盖下发现发生了什么。也许是因为您正在追踪一个错误,或者只是对jQuery如何实现特定UI感到好奇


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

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

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

Atom编辑器mac版下载
最流行的的开源编辑器

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。