首頁 >web前端 >js教程 >基於javascript實現圖片切換效果_javascript技巧

基於javascript實現圖片切換效果_javascript技巧

WBOY
WBOY原創
2016-05-16 15:05:081362瀏覽

本文實例為大家分享了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用到了背景顏色和透明度漸變的屬性,只添加了火狐瀏覽器和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實現圖片切換效果的程式碼,希望能夠幫助大家實現圖片切換效果。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn