CSS3滑鼠移入移出圖片生成隨機動畫

来源:http://www.cnblogs.com/tangyifeng/archive/2016/03/05/5246323.html
-Advertisement-
Play Games

今天分享使用html+css3+少量jquery實現滑鼠移入移出圖片生成隨機動畫,我們先看最終效果圖(截圖為靜態效果,做出來可是動態的喲) 左右旋轉 上下移動 縮放 由於時間關係我就不一步步解析各段代碼所代表含義,我這裡就給出一些思路及關鍵 代碼: 1、首先使用ul li展現4張圖片 本示例中不僅使...


今天分享使用html+css3+少量jquery實現滑鼠移入移出圖片生成隨機動畫,我們先看最終效果圖(截圖為靜態效果,做出來可是動態的喲)

 

左右旋轉

 

上下移動

縮放

由於時間關係我就不一步步解析各段代碼所代表含義,我這裡就給出一些思路及關鍵代碼:

1、首先使用ul li展現4張圖片

本示例中不僅使用了圖片,在圖片錶面還放置了一段“WEB”字樣文字,用於與圖片實現隱藏或顯示效果,故html中每張圖片上方加入:

<div class="mytext">WEB</div>

2、CSS控製圖片及文字透明度

本示例中一組圖片與文字同時放在一個li裡面,高度與寬度設置與li一樣大,並使用絕對定位固定它們的位置:

#myimg ul li a div {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
text-align: center;
font-size: 40px;
}

預設將隱藏圖片,只顯示文字,滑鼠放入li時顯示圖片,這裡使用opacity透明度屬性控制:

#myimg ul li a div.pic {
opacity: 0;
}
        
#myimg ul li:hover a div.pic {
opacity: 1;
}

3、CSS3自定義動畫

本示例中用css3定義了3種動畫:

 @keyframes rot
            /*自定義 旋轉動畫*/
            
            {
                0% 20% 40% 60% 80% 100% {
                    transform-origin: top center;
                }
                0% {
                    transform: rotate(0deg)
                }
                20% {
                    transform: rotate(-20deg)
                }
                40% {
                    transform: rotate(15deg)
                }
                60% {
                    transform: rotate(-10deg)
                }
                80% {
                    transform: rotate(5deg)
                }
                100% {
                    transform: rotate(0deg)
                }
            }
            
            @keyframes top
            /*自定義 上下動畫*/
            
            {
                0% {
                    top: 0
                }
                20% {
                    top: 20px
                }
                40% {
                    top: -15px
                }
                60% {
                    top: 10px
                }
                80% {
                    top: -5px
                }
                100% {
                    top: 0px
                }
            }
            
            @keyframes sca
            /*自定義 縮放動畫*/
            
            {
                0% {
                    transform: scale(1)
                }
                20% {
                    transform: scale(1.1)
                }
                40% {
                    transform: scale(0.9)
                }
                60% {
                    transform: scale(1.05)
                }
                80% {
                    transform: scale(0.95)
                }
                100% {
                    transform: scale(1)
                }
            }

 

使用css執行上述自定義動畫:

#myimg ul li.rot {
animation: rot 1s;
}
            
#myimg ul li.top {
animation: top 1s;
}
            
#myimg ul li.sca {
animation: sca 1s;
}

 

4、Jquery生成隨機動畫

當滑鼠移入ul li時,使用jquery隨機產生上述3種自定義動畫,這裡使用hover事件

 


 

 

HTML代碼如下:

<div id="myimg">
            <ul>
                <li>
                    <a href="#">
                        <div class="mytext">WEB</div>
                        <div class="pic"><img src="img/5.png"></div>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <div class="mytext">WEB</div>
                        <div class="pic"><img src="img/5.png"></div>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <div class="mytext">WEB</div>
                        <div class="pic"><img src="img/5.png"></div>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <div class="mytext">WEB</div>
                        <div class="pic"><img src="img/5.png"></div>
                    </a>
                </li>
            </ul>

        </div>

CSS代碼如下:

<style type="text/css">
            * {
                padding: 0;
                margin: 0;
            }
            
            #myimg {
                width: 800px;
                margin: 20px auto;
            }
            
            #myimg ul li {
                list-style-type: none;
                position: relative;
                float: left;
                width: 350px;
                height: 200px;
                line-height: 200px;
                margin: 20px;
            }
            
            #myimg ul li.rot {
                animation: rot 1s;
            }
            
            #myimg ul li.top {
                animation: top 1s;
            }
            
            #myimg ul li.sca {
                animation: sca 1s;
            }
            
            #myimg ul li:hover a div.pic {
                opacity: 1;
            }
            
            #myimg ul li a {
                text-decoration: none;
                color: white;
            }
            
            #myimg ul li a div {
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
                text-align: center;
                font-size: 40px;
            }
            
            #myimg ul li a div.pic {
                opacity: 0;
            }
            
            #myimg ul li:nth-child(1) a div.mytext {
                background: black;
            }
            
            #myimg ul li:nth-child(2) a div.mytext {
                background: blue;
            }
            
            #myimg ul li:nth-child(3) a div.mytext {
                background: darkred;
            }
            
            #myimg ul li:nth-child(4) a div.mytext {
                background: orange;
            }
            
            @keyframes rot
            /*自定義 旋轉動畫*/
            
            {
                0% 20% 40% 60% 80% 100% {
                    transform-origin: top center;
                }
                0% {
                    transform: rotate(0deg)
                }
                20% {
                    transform: rotate(-20deg)
                }
                40% {
                    transform: rotate(15deg)
                }
                60% {
                    transform: rotate(-10deg)
                }
                80% {
                    transform: rotate(5deg)
                }
                100% {
                    transform: rotate(0deg)
                }
            }
            
            @keyframes top
            /*自定義 上下動畫*/
            
            {
                0% {
                    top: 0
                }
                20% {
                    top: 20px
                }
                40% {
                    top: -15px
                }
                60% {
                    top: 10px
                }
                80% {
                    top: -5px
                }
                100% {
                    top: 0px
                }
            }
            
            @keyframes sca
            /*自定義 縮放動畫*/
            
            {
                0% {
                    transform: scale(1)
                }
                20% {
                    transform: scale(1.1)
                }
                40% {
                    transform: scale(0.9)
                }
                60% {
                    transform: scale(1.05)
                }
                80% {
                    transform: scale(0.95)
                }
                100% {
                    transform: scale(1)
                }
            }
        </style>

Jquery代碼如下:

<script type="text/javascript">
            $(function() {
                var anim = ['rot', 'top', 'sca'];
                var a, b;
                $("#myimg ul li").hover(function() {
                    //向下取0-2整數
                    a = anim[Math.floor(Math.random() * 3)];
                    while (b == a) {
                        a = anim[Math.floor(Math.random() * 3)];
                    }
                    $(this).addClass(a);
                    b = a;
                }, function() {
                    $(this).removeClass(a);
                })
            });
        </script>

註意事項:需要引入jquery文件,可以自行選擇jquery版本

好了,今天分享就到這裡,以後還有更多喲,請大家一起來交流下

 

 

 


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

-Advertisement-
Play Games
更多相關文章
  • 一、video標簽 H5新增了video實現線上播放視頻的功能: 代碼示例: 1 <video controls="controls"> 2 <source src="http://www.w3school.com.cn/i/movie.ogg" type="video/ogg"> 3 <sourc
  • 1、在body中用onload: <body onload="conver()"> 2、在腳本中用window.onload: <script type="text/javascript"> window.onload=about;//不要括弧function about(){ var beatle
  • 虛擬鍵盤,移動web開發的痛。
  • 用CSS實現圖片垂直居中的方法有很多,針對移動端設備可以用CSS3伸縮盒來實現圖片垂直居中。 代碼如下: <div class="box"> <img src="1.png" alt=""> </div> 1 .box{ 4 display: flex; /*容器為伸縮盒*/ 5 align-ite
  • setTimeout(function() { window.location.href='你要跳轉到的頁面的地址';}, 時間以秒為單位); 例如: setTimeout(function() {window.location.href='http://www.bt720p.com';}, 100
  • 插入到functions.php目錄裡面 //保護後臺登錄add_action('login_enqueue_scripts','login_protection'); function login_protection(){ if($_GET['wangyu'] != '1414060215478
  • 只要使用過jQuery的,想必對ready都不陌生,$(function(){})和$(document).ready(function(){})的使用更是習以為常。那它內部是怎麼實現的呢,嘿嘿,我們不妨一同學習學習
  • fancybox可以彈出很多窗體,甚至一個swf格式的小視頻。但這樣的swf視頻播放的時候並沒有任何的控制項。只能重頭看到尾,或者關閉。我們可以利用fancybox彈出div盒子的方式配合html5很快的寫出彈出一個小視頻的代碼。首先,效果如下圖所示。點擊播放的圖片,彈出播放視頻。背景自動虛化。 首先
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...