搜索
首页web前端js教程使用jQuery和CSS3创建基于卷轴的动画3

使用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版本,则 jQuery的动画方法可在任何(SANE)浏览器中起作用。 jQuery 2.X删除了对IE8及以下的支持,因此仅在您不需要支持旧浏览器时才使用此功能(Lucky You!)。

速度

>我们想要快速,流畅的动画,尤其是在移动设备方面。因此,它总是最好在可能的情况下使用过渡和转换。

示例将对较旧的浏览器使用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和CSS3创建基于卷轴的动画3

计算高度和宽度

在我们的检测功能中,我们需要获取各种元素的高度和位置以正确计算事物,这是我们使用jQuery的高度功能的地方。 对这些高度功能的工作原理

的细分很重要

height()和width()

高度()和width()函数返回元素的高度或宽度。他们排除了所有填充,边界和边缘。

使用jQuery和CSS3创建基于卷轴的动画3为了进行完整故障,请访问高度或宽度文档。

inninheight()和innerwidth()函数返回元素的高度或宽度,包括其附加填充(但是它不包括边界和边缘)

>

要进行完整的故障,请访问Interheight或InterWidth文档。 使用jQuery和CSS3创建基于卷轴的动画3 >

此外,您还可以通过将真实值传递给函数来指定以包括其边缘。>

要进行完整的故障,请访问外部或外部宽水文档

使用jQuery和CSS3创建基于卷轴的动画3>滚动动画示例

下面列出的是一系列动画,使用我们讨论过的基础知识。这些示例将寻找动画元素,并在视图中应用活动元素。

> 您要移动的

元素都应具有标准类,例如动画元素,将其位置设置为相对或绝对。此外,如果要创建多个效果,则可以创建相应的类,例如滑左左,可以将其与视图类结合使用。然后,您应该将转换应用于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中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
幕后:什么语言能力JavaScript?幕后:什么语言能力JavaScript?Apr 28, 2025 am 12:01 AM

JavaScript在浏览器和Node.js环境中运行,依赖JavaScript引擎解析和执行代码。1)解析阶段生成抽象语法树(AST);2)编译阶段将AST转换为字节码或机器码;3)执行阶段执行编译后的代码。

Python和JavaScript的未来:趋势和预测Python和JavaScript的未来:趋势和预测Apr 27, 2025 am 12:21 AM

Python和JavaScript的未来趋势包括:1.Python将巩固在科学计算和AI领域的地位,2.JavaScript将推动Web技术发展,3.跨平台开发将成为热门,4.性能优化将是重点。两者都将继续在各自领域扩展应用场景,并在性能上有更多突破。

Python vs. JavaScript:开发环境和工具Python vs. JavaScript:开发环境和工具Apr 26, 2025 am 12:09 AM

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

JavaScript是用C编写的吗?检查证据JavaScript是用C编写的吗?检查证据Apr 25, 2025 am 12:15 AM

是的,JavaScript的引擎核心是用C语言编写的。1)C语言提供了高效性能和底层控制,适合JavaScript引擎的开发。2)以V8引擎为例,其核心用C 编写,结合了C的效率和面向对象特性。3)JavaScript引擎的工作原理包括解析、编译和执行,C语言在这些过程中发挥关键作用。

JavaScript的角色:使网络交互和动态JavaScript的角色:使网络交互和动态Apr 24, 2025 am 12:12 AM

JavaScript是现代网站的核心,因为它增强了网页的交互性和动态性。1)它允许在不刷新页面的情况下改变内容,2)通过DOMAPI操作网页,3)支持复杂的交互效果如动画和拖放,4)优化性能和最佳实践提高用户体验。

C和JavaScript:连接解释C和JavaScript:连接解释Apr 23, 2025 am 12:07 AM

C 和JavaScript通过WebAssembly实现互操作性。1)C 代码编译成WebAssembly模块,引入到JavaScript环境中,增强计算能力。2)在游戏开发中,C 处理物理引擎和图形渲染,JavaScript负责游戏逻辑和用户界面。

从网站到应用程序:JavaScript的不同应用从网站到应用程序:JavaScript的不同应用Apr 22, 2025 am 12:02 AM

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。

Python vs. JavaScript:比较用例和应用程序Python vs. JavaScript:比较用例和应用程序Apr 21, 2025 am 12:01 AM

Python更适合数据科学和自动化,JavaScript更适合前端和全栈开发。1.Python在数据科学和机器学习中表现出色,使用NumPy、Pandas等库进行数据处理和建模。2.Python在自动化和脚本编写方面简洁高效。3.JavaScript在前端开发中不可或缺,用于构建动态网页和单页面应用。4.JavaScript通过Node.js在后端开发中发挥作用,支持全栈开发。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SecLists

SecLists

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

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)