搜索
首页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中替换字符串字符Mar 11, 2025 am 12:07 AM

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

自定义Google搜索API设置教程自定义Google搜索API设置教程Mar 04, 2025 am 01:06 AM

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

8令人惊叹的jQuery页面布局插件8令人惊叹的jQuery页面布局插件Mar 06, 2025 am 12:48 AM

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

构建您自己的Ajax Web应用程序构建您自己的Ajax Web应用程序Mar 09, 2025 am 12:11 AM

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

什么是这个&#x27;在JavaScript?什么是这个&#x27;在JavaScript?Mar 04, 2025 am 01:15 AM

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

10张移动秘籍用于移动开发10张移动秘籍用于移动开发Mar 05, 2025 am 12:43 AM

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

通过来源查看器提高您的jQuery知识通过来源查看器提高您的jQuery知识Mar 05, 2025 am 12:54 AM

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

如何创建和发布自己的JavaScript库?如何创建和发布自己的JavaScript库?Mar 18, 2025 pm 03:12 PM

文章讨论了创建,发布和维护JavaScript库,专注于计划,开发,测试,文档和促销策略。

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脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

仓库:如何复兴队友
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

mPDF

mPDF

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

SecLists

SecLists

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