基於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實現圖片轉場效果的代碼,希望能夠協助大家實現圖片轉場效果。