如何用JS实现竖状的图片跑马灯效果
Admin 2022-06-23 群英技术资讯 396 次浏览
今天给大家分享一个用原生JS实现的图片跑马灯特效,效果如下:
实现的代码如下,欢迎大家复制粘贴。
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>原生JS实现图片跑马灯特效</title> <style type="text/css"> * { padding: 0; margin: 0; } li { list-style: none; } img { border: none; } body { background: #eee; } .slide-module { width: 120px; height: 400px; margin: 0 auto; background: #fff; border: 1px solid #ccc; position: relative; top: 50px; } .slide-module .up { width: 27px; height: 27px; /* 向上的箭头 */ background: url(images/0.gif) no-repeat; position: absolute; top: 4px; left: 50%; margin-left: -16px; cursor: pointer; filter: alpha(opacity=60); opacity: 0.6; } .slide-module .down { width: 27px; height: 27px; /* 向下的箭头 */ background: url(images/5.gif) no-repeat; position: absolute; bottom: 4px; left: 50%; margin-left: -16px; cursor: pointer; filter: alpha(opacity=60); opacity: 0.6; } .slide-module .wrap { width: 120px; height: 330px; position: absolute; top: 35px; left: 0; overflow: hidden; } .slide-module ul { width: 120px; position: absolute; top: 0; left: 0; } .slide-module li { width: 120px; height: 110px; float: left; } .slide-module a { display: block; width: 100px; height: 100px; border: 1px solid red; margin: 0 auto; position: relative; top: 4px; } .slide-module a:hover { border: 1px solid #333; } .slide-module .active { border: 10px solid #000; } </style> <script type="text/javascript"> window.onload = function () { miaovSlide('miaovSlide'); }; function miaovSlide(o) { //获取操作对象容器 var obj = document.getElementById(o); if (!obj) return; //获取对象下面所有的div var aDiv = obj.getElementsByTagName('div'); //获取向上箭头 var oUp = getClass('up'); //获取向下箭头 var oDown = getClass('down'); //获取图片容器 var oWrap = getClass('wrap'); //获取图片列表 var oUl = oWrap.getElementsByTagName('ul')[0]; //获取图片列表项 var oLi = oUl.getElementsByTagName('li'); var oTime = null; var iMs = 30; var i = 0; var iNum = 5; var toggle = -1; oUl.innerHTML += oUl.innerHTML; // 点击向上时,向上走 oUp.onclick = function () { toggle = -1; autoPlay(toggle); }; // 点击向下时,向走走 oDown.onclick = function () { toggle = 1; autoPlay(toggle); }; // 向上与向下箭头鼠标移入时,修改其透明度为1 oUp.onmouseover = oDown.onmouseover = function () { this.style.filter = 'alpha(opacity:100)'; this.style.opacity = 1; }; // 向上与向下箭头鼠标移入时,修改其透明度为0.6 oUp.onmouseout = oDown.onmouseout = function () { this.style.filter = 'alpha(opacity:60)'; this.style.opacity = 0.6; }; // 图片运动方法,toggle代表向下或是向上的值 function autoPlay(toggle) { // 清除原有定时器 if (oTime) { clearInterval(oTime); } // 重新开启定时器 oTime = setInterval(function () { // 第次增量 iNum += 2 * toggle; // UL向下走,当top值大于0时 if (iNum > 0) { // 设定top值为负的UL高度的一半(向上拉) iNum = -oLi.length * oLi[0].offsetHeight / 2; } // UL向上走,当top值的绝对值大于UL自身宽度的一半时 if (Math.abs(iNum) > oLi.length * oLi[0].offsetHeight / 2) { // 设定top的值为0(向下拉) iNum = 0; } // 赋值给top值 oUl.style.top = iNum + 'px'; }, iMs); }; autoPlay(toggle); // 获取拥有当前样式的元素 function getClass(sName) { for (i = 0; i < aDiv.length; i++) { if (aDiv[i].className == sName) { return aDiv[i]; } } } } </script> </head> <body> <div class="slide-module" id="miaovSlide"> <!-- 向上箭头 --> <div class="up"></div> <div class="wrap"> <ul> <li> <a> <img src="images/1.jpg" /> </a> </li> <li> <a> <img src="images/2.jpg" /> </a> </li> <li> <a> <img src="images/3.jpg" /> </a> </li> <li> <a> <img src="images/4.jpg" /> </a> </li> </ul> </div> <!-- 向下箭头 --> <div class="down"></div> </div> </body> </html>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了浅谈JavaScript this指向以及修改指向,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
JavaScript自定义日历实现签到功能 本文实例为大家分享了JavaScript自定义日历签到功能的具体代码,供大家参考,具体内容如下 先看下效果图 红色块为已签到的日期,样式可以随意更改,清晰明了,话不多说上代码: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String bas ...
本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于迭代器的相关问题,迭代就是指可以从一个数据集中按照一定的顺序,不断取出数据的过程,下面一起来看一下,希望对大家有帮助。
这篇文章给大家分享的是vue中数据响应式实现的内容,下文将给大家介绍为何要实现数据响应式及vue中的数据响应,文中示例代码介绍的非常详细,感兴趣的朋友接下来一起跟随小编看看吧。
v-for 指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组,而 item 则是被迭代的数组元素的别名。今天通过本文给大家介绍Vue中v-for更新检测的操作方法,感兴趣的朋友一起看看吧
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008