javascript学习笔记--图片切换(一)

2018-11-07  本文已影响0人  持续5年输出bug

目标:实现点击上一张/下一张图片循环切换


20181107075238.png

第一步:
将图片存在项目中img文件夹中,初步实现按钮和第一张显示

  <div>
      <button id="prev">上一张</button>
        <img src="img/1.jpeg">
      <button  id="next">下一张</button>
  </div>

第二步:
通过获取标签元素和id元素节点,给按钮加鼠标单击响应事件;将图片存在数组中(后续将利用索引实现图片切换)

<head>
  <script>
      window.onload=function () {
          var img =document.getElementByTagName("img")[0];
          var imgList=["img/1.jpeg","img/2.jpeg","img/3.jpeg"];
          var index = 0; //给index 一个默认值

          var prev =document.getElementById("pre");
            prev.onclick=function(){

            }
          var next =document.getElementById("next");
           next.onclick=function(){

            }
      }


  </script>
 <head>

getElementByTagName获取到的是一个数组集合形式,(alert("img")弹出的是[Object HTML Collection])所以加个索引

  var img =document.getElementByTagName("img")[0];

第三步:

切换图片实际上是切换图片src=“”

 var prev =document.getElementById("pre");
  prev.onclick=function(){
       index--;
       img src= imgList[index];
    }
 var next =document.getElementById("next");
  next.onclick=function(){
      index++;
       img src= imgList[index]
     }
20181107073312.png

如图,当图片在最后一张或者第一张时,分别再点击上一张或者下一张时img=“undefined”,不能够实现循环显示图片的目的;

第四步:
即当 index=0,index=3时, index--, index=-1很显然就超出了imgList中元素最小和最大索引的范围,所以加if语句控制索引范围

 var prev =document.getElementById("pre");
  prev.onclick=function(){
       index--;
      if(  index<0){
          index =imgList.length -1;
      }
       img src= imgList[index];
    }
 var next =document.getElementById("next");
  next.onclick=function(){
      index++;
      if(index<imgList.length -1){
      index=0
    }
       img src= imgList[index]
     }

以上if语句的意思是,点击上一张直到index=0 也就是第一张图片, 也就是说 index--<0时 , 让index =imgList.length -1;当到图片第一张的时候再点击上一张,那么显示最后一张;同理

 if(index<imgList.length -1){
      index=0
    }

意思是 当点击下一张直到图片最后一张的时候, index=0重新回到图片的第一张。

完整代码

 <script>
   window.onload =function() {
    //获取图片元素
    var img =document.getElementsByTagName("img")[0];
    // alert("img")
    var imgList=["img/1.jpeg","img/2.jpeg","img/3.jpeg"];
    console.log(imgList)
    var index =0;

    //    获取按钮元素
    var pre =document.getElementById("pre");  
    var next =document.getElementById("next");
    pre.onclick =function (){
       index-- ;
       if(index<0){
         index =imgList.length -1;

       }
       img.src =imgList[index];
    }
    next.onclick =function (){
        
        index++;
        if(index>imgList.length -1){
            index=0
        }
        img.src =imgList[index];
    }

   }
 </script>
</head>
<body>
<div>
    <button id="pre">上一张</button>
    <img src="img/1.jpeg"/>
    <button id="next">下一张</button>
</div>
上一篇下一篇

猜你喜欢

热点阅读