首页 > JavaScript 阅读:667

迈博体育-迈博体育开户、注册网址|迈博体育app、客户端下载|迈博体育平台|迈博体育官方网站:JS数组实现图片切换

迈博体育-迈博体育开户、注册网址|迈博体育app、客户端下载|迈博体育平台|迈博体育官方网站,新-冠-最-好-疫-苗退-市-或-终-止-上-市教-育-整-顿-召-开-动-员-部-署-会-议鸿-蒙-系-统-预-装-平-板

万-利-国-际-官-方,前-细-胞-疾-病国-际-空-间-站-卫-星-碎-片特-雷-杨-是-老-鹰-吗小-米-手-机-啥-时-候-更-新-鸿-蒙

利-来-w66.com-国-际-官-网,今-年-尼-克-斯-新-消-息雷-克-萨-斯-lexus内-饰车-高-限-量中-国-疫-苗-认-可-了-吗

在本节教程,我们将使用图片切换这个实用的案例来演示数组的应用。在该示例中,我们将图片切换需用到的各个图片的路径存在数组中,在切换图片时使用数组和下标来引用对应的图片。另外,我们还应用了数组的 length 属性来获取当前显示的图片在数组中的第几张。

【例 1】数组在图片切换中的应用。
<!doctype html>
<html>
<head>
<meta charset = "utf-8">
<title>数组在图片切换中的应用</title>
<style>
  #content{
     width:400px;
     height:400px;
     border:10px solid #ccc;
     margin:40px auto 0;
     position:relative;
     background:#f1f1f1;
  }
  #content a{
     width:40px;
     height:40px;
     border:5px solid #ccc;
     position:absolute;
     top:175px; /*链接与图片垂直居中*/
     text-align:center;
     text-decoration:none;
     line-height:40px;
     color:#fff;
     font-size:30px;
     font-weight:bold;
     background:#000;
     filter:alpha(opacity:50);/*设置向前向后链接的背景为半透明*/
     opacity:0.5;
  }
  #content a:hover{/*鼠标指针移到向前或向后链接上时背景透明度降低*/
     filter:alpha(opacity:90);
     opacity:0.9;
  }
  #prev{left:-80px;}
  #next{right:-80px;}
  #text,#span1{
     position:absolute;
     left:0;
     width:400px;
     height:30px;
     line-height:30px;
     text-align:center;
     color:#fff;
     background:#000;
     filter:alpha(opacity:60);/*设置透明的背景*/
     opacity:0.6;
  }
  #text{/*图片张数显示在左下方*/
     margin:0;
     bottom:0;
  }
  #span1{top:0;}/*图片张数显示在左下方*/
  #img1{
     width:400px;
     height:400px;
  }
</style>
<script>
  window.onload = function(){
     var oPrev = document.getElementById("prev");
     var oNext = document.getElementById("next");
     var oText = document.getElementById("text");
     var oSpan = document.getElementById("span1");
     var oImg = document.getElementById("img1");
     //使用数组存储切换的图片路径
     var imgUrl=['images/1.jpg','images/2.jpg','images/3.jpg','images/4.jpg'];
     //使用数组存储图片描述信息
     var imgText = ['可爱的小猫咪','调皮的皮卡丘','呆萌的皮卡丘','超酷的小熊'];
     var num = 0;
     //初始化图片信息
     oImg.src = imgUrl[num];
     oText.innerHTML = imgText[num];
     oSpan.innerHTML = num+1 + '/' + imgUrl.length;

     //单击向前链接事件
     oPrev.onclick = function(){
         num--;
         if(num == -1){//显示第一张图片后再单击向前按钮时将保持显示第一张图片
              num = 0;
              alert("这是第一张图片");
         }
         oImg.src = imgUrl[num];
         oText.innerHTML = imgText[num];
         oSpan.innerHTML = num+1 + '/' + imgUrl.length;
     }    
      //单击向后链接事件
     oNext.onclick = function(){
          num++
      //显示最后一张图片后再单击向后链接时将保持显示最后一张图片
         if(num == imgUrl.length){
              num = imgUrl.length-1;
              alert("这是最后一张图片");
         }
         oImg.src = imgUrl[num];
         oText.innerHTML = imgText[num];
         oSpan.innerHTML = num+1 + '/' + imgUrl.length;
     }
   }    
</script>
<body>
   <div id="content">
     <img id = "img1"/>
     <a id="prev" href="javascript:;">&lt;</a>
     <a id="next" href="javascript:;">&gt;</a>
     <p id="text"></p>
     <span id="span1"><span>
  </div>
</body>
</html>
上述代码运行后首先显示数组中的第一个元素指定的图片,当连续单击向后链接时,图片会按图片数组中指定的顺序依次切换图片,切换到最后一张图片后再单击向后链接时图片停止切换,并弹出提示对话框;当连续单击向前链接时,会在当前图片的基础上,按数组元素的逆序依次切换图片,切换到第一张图片后再单击向前链接时图片停止切换,并弹出提示对话框。

代码在 Chrome 浏览器中的运行结果如图 1~图 4 所示。
运行的初始状态
图 1:运行的初始状态

单击向后链接切换到最后一张图片
图 2:单击向后链接切换到最后一张图片

图 3:切换到最后一张图片时再单击向后链接
图 3:换到最后一张图片时再单击向后链接

切换到第一张图片时再单击向前链接
图 4:切换到第一张图片时再单击向前链接

从示例 1 可以看到,使用数组来存储图片切换中所涉及的各个图片的路径,可以很容易地实现任意多个图片之间切换。

虽然例 1 中的代码实现了图片切换功能,但当我们阅读代码时,我们会发现 oImg.src=imgUrl[num]、oSpan.innerHTML=num+1+'/'+imgUrl.length 以及 oText.innerHTML=imgText[num] 这 3 行代码重复出现了 3 次。

同样的代码重复出现,不仅会给今后的维护带来麻烦,还会增大文件,增加文件加载时间从而影响性能,所以对于例 1,我们有必要改进它。对示例 1 代码的改进主要是通过使用之后介绍的函数,我们可以把相同的代码抽取出来封装到一个函数中,然后在需要使用的地方调用这个函数就可以了。

关注微信公众号「站长严长生」,在手机上阅读所有教程,随时随地都能学习。本公众号由C语言中文网站长运营,每日更新,坚持原创,敢说真话,凡事有态度。

魏雪原二维码
微信扫描二维码关注公众号

皇-城-国-际-下-载 富-豪-国-际-网-址 至-尊-国-际-彩-票-平-台 博-信-国-际-娱-乐-注-册
盈-禾-国-际-充-值 宝-岛-国-际-彩-票-登-录 浩-博-体-育-国-际-下-载 明-珠-国-际-平-台-首-页
大-发-国-际-真-正-网-址 领-盟-国-际-娱-乐-官-网 葡-京-国-际-网-站-app 777-国-际-盛-|-首-页
至-尊-国-际-注-册-主-管 名-城-国-际-娱-乐-场 pc-国-际-app-客-户-端-下-载 178-国-际-娱-乐-赚-钱
AG-亚-游-国-际-注-册-登-录 至-尊-国-际-zz7com-官-网 www.-优-发-国-际-2000 皇-城-国-际-在-线-登-录
sitemap 永-亨-国-际-娱-乐-网-址 银-河-国-际-城-平-台 鼎-龙-国-际-娱-乐-开-户-网-址