wow.js讓css3動畫變動更有趣(滾動頁面動畫模擬懶載入特效)

来源:https://www.cnblogs.com/webdom/archive/2019/04/11/10690364.html
-Advertisement-
Play Games

CSS3的出現給網站頁面增加了活力,網站增色不少,有這麼小小的一款插件就能做出很多動畫效果。 最重要的是它:簡單易用、輕量級、無需 jQuery......他就是wow.js 地址:https://daneden.github.io/animate.css/ 也可以在這個地方看各種演示 下麵就讓我們 ...


CSS3的出現給網站頁面增加了活力,網站增色不少,有這麼小小的一款插件就能做出很多動畫效果。

最重要的是它:簡單易用、輕量級、無需 jQuery......他就是wow.js

地址:https://daneden.github.io/animate.css/   也可以在這個地方看各種演示

下麵就讓我們來學習如何使用這款插件。

使用教程

1、wow.js依賴於animate.css,首先需要在 head內引入animate.css或者animate.min.css。   

<link href="https://cdn.bootcss.com/animate.css/3.5.2/animate.min.css" rel="stylesheet">

2、引入wow.js或者wow.min.js,然後js文件里再寫一行代碼。

 <script src="https://cdn.bootcss.com/wow/1.1.2/wow.min.js"></script>

 3、然後在塊狀元素內添加相應的class類名就能實現相應的動畫啦

<div class="wow slideInLeft" data-wow-duration="2s" data-wow-delay="5s" data-wow-offset="10"  data-wow-iteration="10"></div>
4、需要註意的是別忘了初始化設置參數
<script>
    wow = new WOW(
        {
            boxClass: 'wow',      // 預設屬性名
            animateClass: 'animated', // 預設觸發的動畫類(包含在animate css中)
            offset: 0,          // 為所有添加wow的元素設置 data-wow-delay屬性 的預設值
            mobile: true,       // 是否在移動設備中開啟動畫
            live: true        // 持續監測頁面中是否插入新的wow元素
        }
    );
    wow.init();
</script>
wow 是必須要添加的
slideInLeft 說明瞭動畫的樣式,是從左邊滑動出來的
data-wow-duration(動畫持續時間)、data-wow-delay(動畫延遲時間)、data-wow-offset(元素的位置露出後距離底部多少像素執行)和data-wow-iteration(動畫執行次數)這四個屬性可選可不選。   下表依次是各種class類名的動畫效果
wow rollIn 從左到右、順時針滾動、透明度從100%變化至設定值
   
wow bounceIn 從原位置出現,由小變大超出設定值,再變小小於設定值,再回歸設定值、透明度從100%變化至設定值
wow bounceInUp 從下往上、竄上來以後會向上超出一部分然後彈回去、透明度為設定值不變
wow bounceInDown 從上往下、掉下來以後會向下超出一部分然後彈跳一下、透明度為設定值不變
wow bounceInLeft 從左往右、移過來以後會向右超出一部分然後往左彈一下、透明度為設定值不變
wow bounceInRight 從右往左、移過來以後會向左超出一部分然後往右彈一下、透明度為設定值不變
   
wow slideInUp 從下往上、上來後固定到設定位置、透明度為設定值不變(up是從下往上)(如果元素在最下麵,會撐開盒子高度)
wow slideInDown 從上往下、上來後固定到設定位置、透明度為設定值不變
wow slideInLeft 從左往右、上來後固定到設定位置、透明度為設定值不變(left卻是從左往右)
wow slideInRight 從右往左、上來後固定到設定位置、透明度為設定值不變
   
wow lightSpeedIn 從右往左、頭部先向右傾斜,又向左傾斜,最後變為原來的形狀、透明度從100%變化至設定值
wow pulse 原位置放大一點點在縮小至原本大小、透明度為設定值不變(配合動畫執行次數屬性效果更佳)
wow flipInX 原位置後仰前栽、透明度從100%變化至設定值
wow flipInY 原位置左右旋動、透明度從100%變化至設定值
wow bounce 上下抖動、透明度為設定值不變(配合動畫執行次數和動畫持續時間屬性可以實現劇烈抖動亦或是慢慢抖)
wow shake 左右抖動、透明度為設定值不變(配合動畫執行次數和動畫持續時間屬性可以實現劇烈抖動亦或是慢慢抖)
wow swing 從右往左、頭部先向右傾斜,又向左傾斜,最後變為原來的形狀、透明度為設定值不變
wow bounceInU 原位置不變、直接從不顯示到顯示(無過過渡效果)
wow wobble 原位置不變、類似於一個人站在那左右晃頭、透明度為設定值不變


最後來看一個完整的測試案例吧
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>WOW.js演示</title>
<link rel="stylesheet" href="https://cdn.bootcss.com/animate.css/3.5.2/animate.min.css">
<style>
* { margin: 0; padding: 0;}
body { overflow-x: hidden; font-family: "Microsoft Yahei";}
body h1 { width: 100%; margin: 80px 0; font-size: 50px; font-weight: 500; text-align: center;}
body .txt { margin: 80px 0; font-size: 16px; text-align: center;}
.dowebok { margin: 0 auto;}
.dowebok ul { list-style-type: none;}
.dowebok .row { font-size: 0; text-align: center;}
.dowebok .wow { display: inline-block; width: 280px; height: 280px; margin: 30px 15px 0; border-radius: 50%; font: 30px/280px "Microsoft Yahei"; vertical-align: top; *display: inline; zoom: 1;}
.bg-green { background: #5bd5a0;}
.bg-blue { background: #1daee9;}
.bg-purple { background: #c843a5;}
.bg-red { background: #eb3980;}
.bg-yellow { background: #ffcc35;}

.vad { margin: 50px 0 5px; padding-bottom: 60px; font-family: Consolas,arial,宋體; text-align:center; display:none}
.vad a { display: inline-block; height: 36px; line-height: 36px; margin: 0 5px; padding: 0 50px; font-size: 14px; text-align:center; color:#eee; text-decoration: none; background-color: #222;}
.vad a:hover { color: #fff; background-color: #000;}
</style>
</head>

<body>
<h1>WOW.js - 讓頁面滾動更有趣</h1>

<p class="txt">WOW.js 能讓頁面滾動時顯示動畫,使頁面更有趣。</p>

<div class="dowebok">
    <div class="row">
        <div class="wow rollIn bg-blue"></div>
        <div class="wow bounceInDown bg-green">WOW.js</div>
        <div class="wow lightSpeedIn bg-purple"></div>
    </div>

    <div class="row">
        <div class="wow rollIn bg-yellow" data-wow-delay="0.5s">簡單易用</div>
        <div class="wow pulse bg-red" data-wow-iteration="5" data-wow-duration="0.15s"></div>
        <div class="wow bounceInRight bg-blue">輕量級</div>
    </div>

    <div class="row">
        <div class="wow bounceInLeft bg-green"></div>
        <div class="wow flipInX bg-purple">WOW.js</div>
        <div class="wow bounceInRight bg-yellow"></div>
    </div>

    <div class="row">
        <div class="wow rollIn bg-blue">無需 jQuery</div>
        <div class="wow shake bg-red" data-wow-iteration="5" data-wow-duration="0.15s"></div>
        <div class="wow swing bg-purple" data-wow-iteration="2">純 JS</div>
    </div>

    <div class="row">
        <div class="wow rollIn bg-red"></div>
        <div class="wow bounceInU bg-yellow" data-wow-delay="0.5s">WOW.js</div>
        <div class="wow lightSpeedIn bg-green" data-wow-delay="0.5s" data-wow-duration="0.15s"></div>
    </div>

    <div class="row">
        <div class="wow bounceInLeft bg-purple">依賴 animate.css</div>
        <div class="wow pulse bg-blue" data-wow-iteration="5" data-wow-duration="0.25s"></div>
        <div class="wow lightSpeedIn bg-yellow">多種動畫</div>
    </div>

    <div class="row">
        <div class="wow bounce bg-green" data-wow-iteration="5" data-wow-duration="0.15s"></div>
        <div class="wow bounceInUp bg-red">WOW.js</div>
        <div class="wow bounceInRight bg-purple"></div>
    </div>

    <div class="row">
        <div class="wow rollIn bg-red" data-wow-delay="0.5s">無需 jQuery!?</div>
        <div class="wow bounceInDown bg-green" data-wow-delay="1s"></div>
        <div class="wow bounceInRight bg-yellow" data-wow-delay="1.5s">謝謝</div>
    </div>
</div>

<script src="https://cdn.bootcss.com/wow/1.1.2/wow.js"></script>
<script>
<script>
    wow = new WOW(
        {
            boxClass: 'wow',      // 預設屬性名
            animateClass: 'animated', // 預設觸發的動畫類(包含在animate css中)
            offset: 0,          // 為所有添加wow的元素設置 data-wow-delay屬性 的預設值
            mobile: true,       // 是否在移動設備中開啟動畫
            live: true        // 持續監測頁面中是否插入新的wow元素
        }
    );
    wow.init();
</script>
</script>

</body>
</html>

是不是很簡單,頁面初始化後隨著滾動條載入模塊,看起來和懶載入效果一樣,高大上的感覺有木有?

溫馨提示:IE6、IE7 等老舊瀏覽器不支持 CSS3 動畫,所以沒有效果;而 wow.js 也使用了 querySelectorAll 方法,IE 低版本會報錯。為了達到更好的相容,最好加一個瀏覽器及版本判斷。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 使用插件 formidable > npm i formidable 後臺代碼 import formidable from 'formidable' 輸出結果: 圖片存儲地方: Node.js的Formidable模塊的使用 1) 創建Formidable.IncomingForm對象 var f ...
  • 這篇隨筆繼續來認識HTML標簽。這次隨筆主要是對<table>標簽的認識和最近我學習到的一些標簽來和大家分享。 一、<table>標簽 <table>標簽的作用主要是定義HTML表格,<table>內也分頭<thead>和主體<tbody>,而簡單的HTML表格由table元素以及一個或者多個tr, ...
  • import React, { Component } from 'react' import ReactDOM from 'react-dom' class App extends Component { constructor(props) { super(props); this.state ... ...
  • 示例代碼托管在: "http://www.github.com/dashnowords/blogs" 博客園地址: "《大史住在大前端》原創博文目錄" 華為雲社區地址: "【你要的前端打怪升級指南】" [TOC] 一. 任務說明 使用原生 繪製水球圖,這將是一個非常有意思的挑戰任務。水球圖是一種常見 ...
  • 本篇文檔主要是利用echarts實現可拖動節點的折現圖,在echarts中找到了一個demo,傳送門:https://echarts.baidu.com/examples/editor.html?c=line-draggable,但是不是用vue寫的,並且在改寫為vue組件的過程中遇到了很多問題,在 ...
  • 面試高頻之js的非同步載入 講這個問題之前, 我們從另一個面試高頻問題來切入, 我們的web頁面從開始解析到頁面渲染完成都經歷了什麼 ? 1 , 創建document對象, 開始解析頁面, 此時document.readyState = 'loading' 2 , 遇到link標簽引入的css文件, ...
  • 一. 框架 選用express框架 二. 簡單測試請求 在當前目錄新建index.js文件 複製代碼在終端輸入: node index.js 在瀏覽器中打開 127.0.0.1:3000 <! more 三.使用form上傳圖片 將index.js中的介面更新成 註意:index.js中的文件只要改 ...
  • 一、媒體(介)查詢 1.1 基本語法 媒體查詢由媒體類型和一個或多個檢測媒體特性的條件表達式組成。媒體查詢中可用於檢測的媒體特性有:width、height和color(等)。使用媒體查詢可以在不改變頁面內容的情況下,為特性的一些輸出設備定製顯示效果。 使用 @media 查詢,你可以針對不同的媒體 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...