分別用css3、JS實現圖片簡單的無縫輪播功效

來源:互聯網
上載者:User

標籤:func   idt   height   ati   htm   thml   分享   move   還需   

本文主要介紹分別使用CSS3、JS實現圖片簡單無縫輪播功效;

一、使用CSS3實現:利用animation屬性

(實現一張一張的輪播,肉眼只看見一張圖片)

HTML部分比較簡單,兩個div下包著幾個img標籤;為了實現無縫輪播,注意第一張圖片要與最後一張圖片相同;

<div class="out">            <div class="imgs">                <img src="img/beatuy.jpg"/>                <img src="img/child.jpg"/>                <img src="img/girl.jpg"/>                <img src="img/milk.jpg"/>                <img src="img/cup.jpg"/>                <img src="img/dog.jpg"/>                <img src="img/beatuy.jpg"/>            </div>        </div>

最外層div設定ovflow:hidden;position: relative;既然最外層div設定了position: relative;所以內層div需要設定position: absolute;使得其運動相對父元素而言;

CSS代碼如下:

 1 .out{ 2             width: 200px; 3             height: 100px; 4             overflow: hidden; 5             position: relative; 6         } 7         .imgs{ 8             width: 1400px; 9             height: 100px;10             position: absolute;11             animation: ppt 10s linear infinite;12         }13         14         img{15             float: left;16             width: 200px;17             height: 100px;18         }19         @keyframes ppt{20             0%{left:0px}21             20%{left:-250px}22             40%{left:-500px}23             60%{left:-750px}24             80%{left:-1000px}25             100%{left:-1200px}26         }

這樣圖片就可以輪播了,但是滑鼠放上去的時候圖片還是一直在輪播的,如果我們想讓滑鼠放在圖片上時,輪播停止,或者出現一些資訊,我們需要加上:hover;設定動畫的狀態,代碼很簡潔:如下

 1 .out:hover .imgs{ 2 animation-play-state:paused 3 } 

這樣我們的輪播效果就出來啦;

什麼的也懶得貼了;

二、使用JS實現:利用定時器setInterval

(多張圖片輪播,肉眼可以看到多張圖片)

同樣HTML部分比較簡單,需要設定外層DIV ovflow:hidden;之所以每個div既有class,也有id,是因為樣式我是通過class控制的,DOM是通過ID擷取的

 1 <div class="out" id="out"> 2             <div class="main" id=‘main‘> 3                 <div class="pic" id="pic"> 4                     <img src="img/0.jpg"/> 5                     <img src="img/6.jpg"/> 6                     <img src="img/hehua2.2.png"/> 7                     <img src="img/tupian1.png"/> 8                 </div> 9                 <div class="copyPic" id="copyPic">10                     11                 </div>12             </div>

可以看到class="copyPic" 的DIV為空白的,沒有內容,不急,在JS部分會為他賦上內容,其內容與class="pic"的一樣;當然我們也可以直接在HTML中為其新增內容;現在為其加上一點CSS樣式吧

 1 .out{ 2                 width: 820px; 3                 overflow: hidden; 4             } 5             .main{ 6                 width: 1650px; 7                 height: 100px; 8             } 9             img{10                 width: 200px;11                 height: 100px;12                 border: 0;13             }14             .pic,.copyPic{15                 float: left;  16             }

這樣,我們的基本樣式就完成了,下面就開始實現輪播效果吧:

首先,為了代碼方便,先封裝一個簡單函數

 1 function $(str){ 2 return document.getElementById(str) 3 } 

然後為class="copyPic" 的DIV加上內容:

 1 (′copyPic′).innerHTML=(′copyPic′).innerHTML=(‘pic‘).innerHTML; 

好啦,開始寫輪播函數:

1 function move(){2                 if ($(‘out‘).scrollLeft-$(‘copyPic‘).offsetWidth>=0) {3                     $(‘out‘).scrollLeft-=$(‘out‘).offsetWidth;4                 } else{5                     $(‘out‘).scrollLeft++;6                 }7             }
    var t=setInterval(move,10);

這樣我們的圖片就可以輪播啦,同樣的如果希望滑鼠放上去後輪播停止,還需要加上幾句代碼,使用滑鼠事件,清除定時器

1 $(‘out‘).onmousemove=function(){2                 clearInterval(t);3             }4             $(‘out‘).onmouseout=function(){5                  t=setInterval(move,10);6             }

OK,這樣我們使用JS實現圖片輪播的效果也就完成了!

分別用css3、JS實現圖片簡單的無縫輪播功效

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.