如何利用JS怎样制作点击切换图片的效果
Admin 2022-08-10 群英技术资讯 642 次浏览
本文实例为大家分享了JavaScript实现左右点击切换图片的具体代码,供大家参考,具体内容如下
效果:
HTML
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>xxx——空间相册</title> <link rel="stylesheet" type="text/css" href="./css/Photo_album.css"/> </head> <body> <!-- 相册 --> <div id="imgmax"> <ul> <li><img src="./img/brtx.jpeg" ></li> <li><img src="./img/1.jpeg" ></li> <li><img src="./img/2.jpeg" ></li> <li><img src="./img/3.jpeg" ></li> <li><img src="./img/brtx.jpeg" ></li> <li><img src="./img/brtx.jpeg" ></li> </ul> </div> </body> <script src="js/Photo_album.js" type="text/javascript" charset="utf-8"></script> </html>
CSS:
/* 相册 */ #imgmax{ width: 600px; height: 600px; position: relative; margin: 20px auto; } img{ width: 100%; height: 100%; } ui,li{ margin: 0; padding: 0; list-style: none; float: left; width: 150px; height: 150px; margin-left: 10px; } .newdiv{ width: 600px; height: 600px; background: #fff; opacity: 0.5; } .newimg{ width: 300px; height: 300px; position: absolute; left: 150px; top: 50px; } .newspan{ position: absolute; width: 20px; height: 20px; left: 450px; top: 50px; background: #fff; text-align: center; } .newspanzuo{ position: absolute; width: 20px; height: 20px; left: 100px; top: 150px; background: #fff; text-align: center; } .newspanyou{ position: absolute; width: 20px; height: 20px; left: 480px; top: 150px; background: #fff; text-align: center; }
JavaScript:
/* 说明:根据<1i>标签、得到当前网页所有的<1i>元素返回值:返回的是数组,存储所有的<1i>元素 作用: 1.可用于监听点击事件 2.可根据当前<1i>元素得到内部存储的图片路径 3.可根据图片的路劲,做一个大图展示 */ var lis = document.getElementsByTagName("li"); //获取li标签 /* 说明:根据id,得到imgmax元素 返回值:返回的是最大的盒子元素 作用: 可像此盒子内【追用】预览图片时所需的所有【元素】 1.追加盒子元素(用于遮盖当前所有图片) 2.追加图片元素(用于展示【预览图】) 3.追加span文字(用于展示“X”,退出预览) */ var box = document.getElementById("imgmax"); //获取相册盒子 var index = 0; //循环遍历li标签 //迭代所有的【li】,用于监听【li】的点击事件 for (let i = 0; i < lis.length; i++) { /* 当监听成功,绑定【匿名函数】,用于编写具体的逻辑 1.得到当前点击<li>元素的图片路径 2.创建:div元素,用于遮盖当前所有图片 3.创建:img元素,用于展示【预览图】 4.创建 span元素(用于展示“X”,退出预览) */ lis[i].onclick = function() { //弹出当前li标签中图片路径 //alert(this.getElementsByTagName("img")[0].src) //2.创建:div元素,用于遮盖当前所有图片 // box.appendChild() var j = i; var newDiv = document.createElement('div'); newDiv.className = "newdiv"; box.appendChild(newDiv) //3.创建:img元素,用于展示【预览图】 var newImg = document.createElement("img"); newImg.className = "newimg" newImg.src=this.getElementsByTagName("img")[0].src box.appendChild(newImg); //创建 span元素(用于展示“X”,退出预览) var newSpan = document.createElement("span"); newSpan.innerHTML = "X"; newSpan.className = "newspan"; box.appendChild(newSpan); newSpan.onclick = function(){ box.removeChild(newDiv); box.removeChild(newImg); box.removeChild(Spanz); box.removeChild(Spany); box.removeChild(newSpan); } // 左边 var Spanz = document.createElement("span"); Spanz.innerHTML = "<"; Spanz.className = "newspanzuo"; box.appendChild(Spanz); Spanz.onclick = function(){ if (j-->=0) { newImg.src=document.getElementsByTagName("img")[j].src } else{ alert("已经是第一张了!!") } } // 右边 var Spany = document.createElement("span"); Spany.innerHTML = ">"; Spany.className = "newspanyou"; box.appendChild(Spany); Spany.onclick = function(){ if (j++<lis.length-1) { newImg.src=document.getElementsByTagName("img")[j].src } else{ alert("已经是第最后一张了!!") } } } }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
js实现金额千分位方法,一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解一下,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
本文通过代码给大家介绍了使用react-color实现前端取色器的方法,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
这篇文章主要介绍了Vue中的插槽,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
我们在学习JavaScript的时候,this关键字的知识是需要掌握的,很多新手在学习的时候,对于this关键字不是很理解,因此这篇文章就给大家深入介绍JavaScript的this关键字。
在面试的时候,很多面试官再问vue的时候可能就会提一嘴,你知道keep-alive有什么作用吗?keep-alive是vue内置的一个组件,而这个组件的作用就是能够缓存不活动的组件,我们能够知道,一般情况下,组件进行切换的时候,默认会进行销毁,如果有需求,某...
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008