基於javascript實現圖片轉場效果,javascript實現切換

來源:互聯網
上載者:User

基於javascript實現圖片轉場效果,javascript實現切換

本文執行個體為大家分享了js實現圖片轉場效果,供大家參考,具體內容如下
用js實現點擊按鈕,圖片切換的效果:

<div class="box" id="box">    <div class="img_box" id="img_box">      <img src="../raw/b1.jpg" class="image" >      <img src="../raw/b2.jpg" class="image" >      <img src="../raw/b3.jpg" class="image" >      <img src="../raw/b4.jpg" class="image" >    </div>    <div id="left" class="switch"></div>    <div id="right" class="switch"></div>  </div>

結構:用一個固定寬高的div來做最外層的容器,設定overflow為hidden,

然後內層img_box設定寬度為四倍box的寬度,高度相同,也就是說img_box裡面盛放四張img,但是可見的只有一張,下面的兩個div,left和right是充當按鈕實現點擊切換圖片,切換圖片也就是改變img_box的left屬性,所以img_box應該設定position為absolute,為了方便起見,box的position設定為relation,這樣img_box就是相對box進行定位了。四張圖片設定float為left,寬度和高度與box相同.

CSS代碼:

*{  margin: 0;  padding: 0;}.box{  width: 800px;  height: 400px;  margin: 20px auto;  position: relative;  overflow: hidden;}.img_box{  height: 400px;  width: 3200px;  position: absolute;  -moz-transition: 0.5s;  -webkit-transition: 0.5s;}img{  width: 800px;  height: 400px;  float: left;}.switch{  width: 200px;  height: 100%;  position: absolute;}#left{  left: 0px;  top: 0px;  background: -moz-linear-gradient(left, rgba(84, 84, 84, 0.50), rgba(20%,20%,20%,0));  background: -webkit-linear-gradient(left, rgba(84, 84, 84, 0.50), rgba(20%,20%,20%,0));}#right{  right:0px;  top: 0px;  background: -moz-linear-gradient(left, rgba(20%,20%,20%,0), rgba(84, 84, 84,0.5));  background: -webkit-linear-gradient(left, rgba(20%,20%,20%,0), rgba(84, 84, 84,0.5));}#left:hover{  background: -moz-linear-gradient(left, rgba(0, 0, 0,0.5), rgba(20%,20%,20%,0));  background: -webkit-linear-gradient(left, rgba(0, 0, 0,0.5), rgba(20%,20%,20%,0));}#right:hover{  background: -moz-linear-gradient(left, rgba(20%,20%,20%,0), rgba(0, 0, 0,0.5));  background: -webkit-linear-gradient(left, rgba(20%,20%,20%,0), rgba(0, 0, 0,0.5));}

left和right用到了背景顏色和透明度漸層的屬性,只添加了Firefox瀏覽器和webkit瀏覽器,另外現在有的IE瀏覽器是IE和webkit雙核心如360安全瀏覽器

  background: -moz-linear-gradient(left, rgba(84, 84, 84, 0.50), rgba(20%,20%,20%,0));

  background: -webkit-linear-gradient(left, rgba(84, 84, 84, 0.50), rgba(20%,20%,20%,0));

為了實現切換的時候平滑過渡,所以添加了transition屬性:

  -moz-transition: 0.5s;

  -webkit-transition: 0.5s;

js代碼:

var box;var count=1;window.onload=function(){  box=document.getElementById("img_box");  var left=document.getElementById("left");  var right=document.getElementById("right");  left.addEventListener("click",_left);  right.addEventListener("click",_right);  document.body.addEventListener("mouseover",demo);}function _right(){  var dis=0;  if(count<4){    dis=count*800;  }else{    dis=0;    count=0;  }  box.style.left="-"+dis+"px";  count+=1;}function _left(event){  var dis=0;  if(count>1){    dis=(2-count)*800;  }else{    dis=-3*800;    count=5;  }  box.style.left=dis+"px";  count-=1;}

用全域變數count來記錄當前顯示的第幾張圖片,當點擊切換按鈕的時候根據count來計算應該顯示第幾張照片,然後計算並設定img_box的left屬性即可。

以上就是為大家介紹的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.