搜尋
首頁web前端前端問答css3動畫和js動畫的差別是什麼

區別:1、js動畫的控制能力比css3動畫強;2、js動畫的效果比css3動畫豐富;3、js動畫大多數情況下沒有兼容性問題,而css3動畫有兼容性問題;4、js動畫的複雜度高於css3動畫。

css3動畫和js動畫的差別是什麼

本教學操作環境:windows7系統、CSS3&&javascript1.8.5版、Dell G3電腦。

JS動畫

優點:

  • js動畫控制能力強,可以在動畫博凡過程中對動畫進行精細控制,開始、暫停、終止、取消都是可以做到的

  • 動畫效果比css3動畫豐富,例如曲線運動,衝擊閃爍,視差滾動效果,只有js動畫才能完成

  • js動畫大多數情況下沒有相容性問題,而css3動畫有相容性問題

#缺點

  • js動畫的複雜度高於css3

    js在動畫瀏覽器的主執行緒中執行,而主執行緒還有其他javaScript腳本,樣式計算、佈局、繪製任務等,對其乾擾可能出現阻塞從而出現丟幀的情況

  • js動畫往往需要頻繁操作DOM的css屬性來實現視覺上的動畫效果,這個時候瀏覽器要不停地執行重繪和重排,這對於效能的消耗是很大的,尤其是在分配給瀏覽器的記憶體沒那麼寬裕的行動端。

CSS3動畫

    優點:
  • 1、部分情況下瀏覽器可以對動畫進行最佳化,為什麼說部分情況呢,因為是有條件的:

  • 在Chromium基礎上的瀏覽器中

  • #同時CSS動畫不觸發layout或paint,在CSS動畫或JS動畫觸發了paint或layout時,需要main thread進行Layer樹的重新計算,這時CSS動畫或JS動畫都會阻塞後續操作。

在主線程中,維護了一棵Layer樹(LayerTreeHost),管理了TiledLayer,在compositor thread,維護了同樣一顆LayerTreeHostImpl,管理了LayerImpl,這兩棵樹的內容是拷貝關係。因此可以彼此不干擾,當Javascript在main thread操作LayerTreeHost的同時,compositor thread可以用LayerTreeHostImpl做渲染。當Javascript繁忙導致主執行緒卡住時,合成到螢幕的過程也是流暢的。
    為了實現防假死,滑鼠鍵盤訊息會被先分發到compositor thread,然後再到main thread。這樣,當main thread繁忙時,compositor thread還是能夠回應一部分訊息,例如,滑鼠滾動時,加入main thread繁忙,compositor thread也會處理滾動訊息,滾動已經被提交的頁面部分(未被提交的部分將被刷白)。
    • 2、部分效果可以強制使用硬體加速(透過GPU 來提高動畫效能)
    • 缺點
    • 運行進程控制較弱,css3動畫只能在某些場景下控制動畫的暫停與繼續,不能在特定的位置添加添加回調函數
    代碼冗長。想用 CSS 實作稍微複雜一點動畫,最後CSS程式碼都會變得非常笨重。
  • css動畫比js動畫流暢的前提

#js在執行一些複雜的任務css動畫比較少或不觸發pain和layout,即重繪和重排,例如透過改變如下屬性產生的css動畫

backface-visibility

opacityperspective (設定元素視圖) perspective-origin

###transfrom############部分屬性能夠啟動3D加速和GPU硬體加速,例如使用transform的translateZ進行3D變換時##### #在Chromium基礎上的瀏覽器中,這個似乎是核心做了最佳化,當css動畫知識改變transfrom和opacity時,整個CSS動畫得以在compositor thread完成(而JS動畫則會在main thread執行),這樣css動畫渲染不會影響主線程。 ############總結#########回歸到日常開發中,當有一個動畫的需求時,首要考慮的肯定是能不能盡可能實現的問題。如果在CSS動畫和JS動畫都能實現的基礎上才會要去根據上面總結的權衡哪個性能更好的問題。總之,不一定css動畫就比js動畫好,還要看具體的需求和業務場景。 ######學習影片分享:###css影片教學###、###javascript學習教學#######

以上是css3動畫和js動畫的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
CSS动画指南:手把手教你制作闪电特效CSS动画指南:手把手教你制作闪电特效Oct 20, 2023 pm 03:55 PM

CSS动画指南:手把手教你制作闪电特效引言:CSS动画是现代网页设计中不可或缺的一部分。它可以为网页带来生动的效果和交互性,并提升用户体验。在本指南中,我们将详细介绍如何使用CSS来制作闪电特效,以及提供具体的代码示例。一、创建HTML结构:首先,我们需要创建一个HTML结构来容纳我们的闪电特效。我们可以使用一个<div>元素来包裹闪电特效,并为

CSS动画教程:手把手教你实现翻页特效CSS动画教程:手把手教你实现翻页特效Oct 24, 2023 am 09:30 AM

CSS动画教程:手把手教你实现翻页特效,需要具体代码示例CSS动画是现代网站设计中必不可少的一部分。它可以为网页增添生动感,吸引用户的注意力,并且提高用户体验。其中一种常见的CSS动画效果就是翻页特效。在这篇教程中,我将带领大家一步一步实现这个引人注目的效果,并提供具体的代码示例。首先,我们需要创建一个基本的HTML结构。代码如下:<!DOCTYPE

CSS动画指南:手把手教你制作眨眼特效CSS动画指南:手把手教你制作眨眼特效Oct 20, 2023 pm 03:24 PM

CSS动画指南:手把手教你制作眨眼特效眨眼特效是一种常见的CSS动画效果,通过简单的代码实现,可以带来生动独特的效果。本文将为你提供一份手把手的指南,教你如何使用CSS制作眨眼特效,并提供具体的代码示例。创建HTML结构首先,我们需要创建一个HTML结构,用于展示眨眼特效。代码如下:<!DOCTYPEhtml><html>&

利用CSS实现图片展示特效的技巧和方法利用CSS实现图片展示特效的技巧和方法Oct 24, 2023 pm 12:52 PM

利用CSS实现图片展示特效的技巧和方法无论是网页设计还是应用开发,图片展示都是非常常见的需求。为了提升用户体验,我们可以利用CSS来实现一些炫酷的图片展示特效。本文将介绍几种常用的技巧和方法,并提供相应的代码示例,帮助读者快速上手。一、图片缩放特效缩放鼠标悬浮效果当鼠标悬浮在图片上时,通过缩放效果可以增加交互性。代码示例如下:.image-zoom{

CSS动画教程:手把手教你实现脉冲特效CSS动画教程:手把手教你实现脉冲特效Oct 21, 2023 pm 12:09 PM

CSS动画教程:手把手教你实现脉冲特效,需要具体代码示例引言:CSS动画是网页设计中常用的一种效果,它可以为网页增添活力和视觉吸引力。本篇文章将带您深入了解如何利用CSS实现脉冲特效,并提供具体的代码示例教您一步步完成。一、了解脉冲特效脉冲特效是一种循环变化的动画效果,通常用在按钮、图标或其他元素上,使其呈现出一种跳动、闪烁的效果。通过CSS的动画属性和关键

CSS实现淡入淡出图片效果的技巧和方法CSS实现淡入淡出图片效果的技巧和方法Oct 20, 2023 pm 04:25 PM

CSS实现淡入淡出图片效果的技巧和方法在网页设计中,图片的展示是非常重要的一部分。为了提升用户体验,我们经常会使用一些动态效果来增加页面的吸引力。其中,淡入淡出效果是一种常见且优雅的动画效果,可以让页面显得流畅和有活力。本文将介绍使用CSS实现淡入淡出图片效果的技巧和方法,并提供具体的代码示例供参考。一、使用CSS的opacity属性实现淡入淡出效果CSS的

CSS动画教程:手把手教你实现淡入淡出效果CSS动画教程:手把手教你实现淡入淡出效果Oct 18, 2023 am 09:22 AM

CSS动画教程:手把手教你实现淡入淡出效果,包含具体代码示例在网页设计和开发中,动画效果可以让页面更加生动和吸引人。而CSS动画是一种简单而且强大的方式来实现这种效果。本篇文章将手把手教你如何使用CSS来实现淡入淡出效果,并提供具体的代码示例供参考。一、淡入效果淡入效果是指元素从透明度为0逐渐变为透明度为1的效果。以下是实现淡入效果的步骤和代码示例:步骤1:

利用CSS实现鼠标悬停时的抖动特效的技巧和方法利用CSS实现鼠标悬停时的抖动特效的技巧和方法Oct 21, 2023 am 08:37 AM

利用CSS实现鼠标悬停时的抖动特效的技巧和方法鼠标悬停时的抖动特效可以为网页添加一些动感和趣味性,吸引用户的注意力。在这篇文章中,我们将介绍一些利用CSS实现鼠标悬停抖动特效的技巧和方法,并提供具体的代码示例。抖动的原理在CSS中,我们可以使用关键帧动画(keyframes)和transform属性来实现抖动效果。关键帧动画允许我们定义一个动画序列,通过在不

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 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),