[前端] JavaScript实现左右点击切换图片

2889 1
王子 2022-10-21 16:13:52 | 显示全部楼层 |阅读模式
本文实例为大家分享了JavaScript实现左右点击切换图片的具体代码,供大家参考,具体内容如下
效果:




HTML
  1. <!DOCTYPE html>
  2. <html>
  3.   <head>
  4.     <meta charset="utf-8">
  5.     <title>xxx——空间相册</title>
  6.     <link rel="stylesheet" type="text/css" href="./css/Photo_album.css"/>
  7.   </head>
  8.   <body>
  9.     <!-- 相册 -->
  10.     <div id="imgmax">
  11.       <ul>
  12.         <li></li>
  13.         <li><img src="./img/1.jpeg" ></li>
  14.         <li><img src="./img/2.jpeg" ></li>
  15.         <li><img src="./img/3.jpeg" ></li>
  16.         <li></li>
  17.         <li></li>
  18.       </ul>
  19.     </div>
  20.   </body>
  21.   <script src="js/Photo_album.js" type="text/javascript" charset="utf-8"></script>
  22. </html>
复制代码
CSS:
  1. /* 相册 */
  2. #imgmax{
  3.   width: 600px;
  4.   height: 600px;
  5.   position: relative;
  6.   margin: 20px auto;
  7. }
  8. img{
  9.   width: 100%;
  10.   height: 100%;
  11. }
  12. ui,li{
  13.   margin: 0;
  14.   padding: 0;
  15.   list-style: none;
  16.   float: left;
  17.   width: 150px;
  18.   height: 150px;
  19.   margin-left: 10px;
  20. }
  21. .newdiv{
  22.   width: 600px;
  23.   height: 600px;
  24.   background: #fff;
  25.   opacity: 0.5;
  26. }
  27. .newimg{
  28.   width: 300px;
  29.   height: 300px;
  30.   position: absolute;
  31.   left: 150px;
  32.   top: 50px;
  33. }
  34. .newspan{
  35.   position: absolute;
  36.   width: 20px;
  37.   height: 20px;
  38.   left: 450px;
  39.   top: 50px;
  40.   background: #fff;
  41.   text-align: center;
  42. }
  43. .newspanzuo{
  44.   position: absolute;
  45.   width: 20px;
  46.   height: 20px;
  47.   left: 100px;
  48.   top: 150px;
  49.   background: #fff;
  50.   text-align: center;
  51. }
  52. .newspanyou{
  53.   position: absolute;
  54.   width: 20px;
  55.   height: 20px;
  56.   left: 480px;
  57.   top: 150px;
  58.   background: #fff;
  59.   text-align: center;
  60. }
复制代码
JavaScript:
  1. /*
  2. 说明:根据<1i>标签、得到当前网页所有的<1i>元素返回值:返回的是数组,存储所有的<1i>元素
  3. 作用:
  4. 1.可用于监听点击事件
  5. 2.可根据当前<1i>元素得到内部存储的图片路径
  6. 3.可根据图片的路劲,做一个大图展示
  7. */
  8. var lis = document.getElementsByTagName("li"); //获取li标签
  9. /*
  10. 说明:根据id,得到imgmax元素
  11. 返回值:返回的是最大的盒子元素
  12. 作用:
  13. 可像此盒子内【追用】预览图片时所需的所有【元素】
  14. 1.追加盒子元素(用于遮盖当前所有图片)
  15. 2.追加图片元素(用于展示【预览图】)
  16. 3.追加span文字(用于展示“X”,退出预览)
  17. */
  18. var box = document.getElementById("imgmax"); //获取相册盒子
  19. var index = 0;
  20. //循环遍历li标签
  21. //迭代所有的【li】,用于监听【li】的点击事件
  22. for (let i = 0; i < lis.length; i++) {
  23. /*
  24. 当监听成功,绑定【匿名函数】,用于编写具体的逻辑
  25. 1.得到当前点击<li>元素的图片路径
  26. 2.创建:div元素,用于遮盖当前所有图片
  27. 3.创建:img元素,用于展示【预览图】
  28. 4.创建 span元素(用于展示“X”,退出预览)
  29. */
  30. lis[i].onclick = function() {
  31.   //弹出当前li标签中图片路径
  32.   //alert(this.getElementsByTagName("img")[0].src)
  33.   //2.创建:div元素,用于遮盖当前所有图片
  34.   // box.appendChild()
  35.   var j = i;
  36.   var newDiv = document.createElement('div');
  37.   newDiv.className = "newdiv";
  38.   box.appendChild(newDiv)
  39.   //3.创建:img元素,用于展示【预览图】
  40.   var newImg = document.createElement("img");
  41.   newImg.className = "newimg"
  42.   newImg.src=this.getElementsByTagName("img")[0].src
  43.   box.appendChild(newImg);
  44.   //创建 span元素(用于展示“X”,退出预览)
  45.   var newSpan = document.createElement("span");
  46.   newSpan.innerHTML = "X";
  47.   newSpan.className = "newspan";
  48.   box.appendChild(newSpan);
  49.   newSpan.onclick = function(){
  50.    box.removeChild(newDiv);
  51.    box.removeChild(newImg);
  52.    box.removeChild(Spanz);
  53.    box.removeChild(Spany);
  54.    box.removeChild(newSpan);
  55.   }
  56.   // 左边
  57.   var Spanz = document.createElement("span");
  58.   Spanz.innerHTML = "<";
  59.   Spanz.className = "newspanzuo";
  60.   box.appendChild(Spanz);
  61.   Spanz.onclick = function(){
  62.    if (j-->=0) {
  63.     newImg.src=document.getElementsByTagName("img")[j].src
  64.    } else{
  65.     alert("已经是第一张了!!")
  66.    }
  67.   }
  68.   // 右边
  69.   var Spany = document.createElement("span");
  70.   Spany.innerHTML = ">";
  71.   Spany.className = "newspanyou";
  72.   box.appendChild(Spany);
  73.   Spany.onclick = function(){
  74.   if (j++<lis.length-1) {
  75.    newImg.src=document.getElementsByTagName("img")[j].src
  76.   } else{
  77.    alert("已经是第最后一张了!!")
  78.   }
  79.   }
  80. }
  81. }
复制代码
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持中国红客联盟。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行