【JavaScript】用原生js实现幻灯片效果

news/2024/7/19 13:20:28 标签: js, javascript

github地址:https://github.com/MeichaoWen/JSInstance

javascript"><script>
	function getByClass(oParent, sClass) {
		aEle = document.getElementsByTagName('*');
		var arr = [];
		for (var i = 0; i < aEle.length; i++) {
			if (aEle[i].className == sClass) {
				arr.push(aEle[i])
			}
		}
		return arr;
	}
	window.onload = function () {
		var oDiv = document.getElementById('playimages');
		var oDivPrev = getByClass(oDiv, 'prev')[0]
		var oDivNext = getByClass(oDiv, 'next')[0]
		var oDivMrak_left = getByClass(oDiv, 'mark_left')[0]
		var oDivMark_right = getByClass(oDiv, 'mark_right')[0]
		var oSmall = getByClass(oDiv, 'small_pic')[0]
		var aLiSmall = oSmall.getElementsByTagName('li')
		var oBig = getByClass(oDiv, 'big_pic')[0]
		var aLiBig = oBig.getElementsByTagName('li')
		var oUlSmall = oSmall.getElementsByTagName('ul')[0]
		oUlSmall.style.width = aLiSmall[0].offsetWidth * aLiSmall.length + 'px'
		//左右按钮
		oDivPrev.onmouseover = oDivMrak_left.onmouseover = function () {
			startMove(oDivPrev, 'opacity', 100)
		}
		oDivPrev.onmouseout = oDivMrak_left.onmouseout = function () {
			startMove(oDivPrev, 'opacity', 0)
		}
		oDivNext.onmouseover = oDivMark_right.onmouseover = function () {
			startMove(oDivNext, 'opacity', 100)
		}
		oDivNext.onmouseout = oDivMark_right.onmouseout = function () {
			startMove(oDivNext, 'opacity', 0)
		}
		//小图点击
		var nowZIndex = 2
		var now = 0
		for (var i = 0; i < aLiSmall.length; i++) {
			aLiSmall[i].index = i

			aLiSmall[i].onclick = function () {
				if (this.index == now) return;
				now = this.index
				tab()
			}
			aLiSmall[i].onmouseover = function () {
				startMove(this, 'opacity', 100)
			}
			aLiSmall[i].onmouseout = function () {
				if (this.index != now) {
					startMove(this, 'opacity', 60)
				}
			}
		}
		function tab() {
			aLiBig[now].style.height = 0
			aLiBig[now].style.zIndex = nowZIndex++
			for (var i = 0; i < aLiSmall.length; i++) {
				startMove(aLiSmall[i], 'opacity', 60)
			}
			startMove(aLiSmall[now], 'opacity', 100)
			startMove(aLiBig[now], 'height', 320)
			if (now == 0) {
				startMove(oUlSmall, 'left', 0)
			} else if (now == aLiSmall.length - 1) {
				startMove(oUlSmall, 'left', -(now - 2) * aLiSmall[0].offsetWidth)
			} else {
				startMove(oUlSmall, 'left', -(now - 1) * aLiSmall[0].offsetWidth)
			}

		}
		oDivPrev.onclick = function () {
			now--
			if (now == -1) {
				now = aLiSmall.length - 1
			}
			tab()
		}
		oDivNext.onclick = function () {
			now++
			if (now == aLiSmall.length) {
				now = 0
			}
			tab()
		}
		var timer = setInterval(oDivNext.onclick, 2000)
		oDiv.onmouseover = function () {
			clearInterval(timer)

		}
		oDiv.onmouseout = function () {
			timer = setInterval(oDivNext.onclick, 2000)
		}

	}
</script>

 


http://www.niftyadmin.cn/n/497422.html

相关文章

heartbeat+haproxy

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理支持虚拟主机它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上完全可以支持数以万计的并发连接。并且它的运行模式使…

【JavaScript】用原生js来实现链式运动以及同时执行多种运动

链式运动框架 function getStyle(obj, name) {if (obj.currentStyle) {return obj.currentStyle[name]} else {return getComputedStyle(obj, false)[name]} }function startMove(obj, attr, iTarget, fnEnd) {clearInterval(obj.timer)obj.timer setInterval(function () {v…

设置CentOS开机启动程序及定时关机

&#xfeff;&#xfeff;目前用得最多的是在/etc/rc.local文本文件中添加开机启动需要运行的命令&#xff0c;rc.local即开机脚本文件。 定时关机可以使用crontab命令&#xff1a;比如可以在rc.local中加入crontab命令&#xff0c;使得每次开机启动以后都会定时关机&#xff0…

JS 随机排序算法

使用JS编写一个方法 让数组中的元素每次刷新随机排列 法一&#xff1a; var arr [1,2,3,4]; var t; for(var i 0;i < arr.length; i){var rand parseInt(Math.random()*arr.length);t arr[rand];arr[rand] arr[i];arr[i] t; }console.log(arr); 法二&#xff1a; var ar…

-bash: crontab: command not found

&#xfeff;&#xfeff;操作步骤1. 确认crontab是否安装&#xff1a;执行 crontab 命令如果报 command not found&#xff0c;就表明没有安装2. 安装 crontab执行 yum install -y vixie-cron3. 确认是否安装成功:执行 crontab -l4. 看是否设置了开机自动启动chkconfig --lis…

zookeeper集群的部署

因为这里zookeeper的集群部署都会2n1台 Dubbo建议使用Zookeeper作为服务的注册中心。 Zookeeper集群中只要有过半的节点是正常的情况下&#xff0c;那么整个集群对外就是可用的。正是基于这个特性&#xff0c;要将ZK集群的节点数量要为奇数&#xff08;2n1&#xff1a;如3、5、…

Linux/CentOS下的CST和UTC时间的区别以及不一致的解决方法

&#xfeff;&#xfeff;1.在linux中&#xff0c;用date查看时间的时候显示&#xff1a; 2013年 2月 17日 星期三 19:04:14 CST  世界协调时间(Universal Time Coordinated,UTC): GPS 系统中有两种时间区分&#xff0c;一为UTC&#xff0c;另一为LT&#xff08;地方时&#…

Java自带的性能监测工具之jmap

2019独角兽企业重金招聘Python工程师标准>>> 本文继续介绍Java自带的性能监测工具&#xff0c;本文使用jmap工具来玩~ jmap (Java Memory Map) 命令可以生成Java应用程序的堆快照和对象统计信息&#xff0c;对生成的堆快照进行分析&#xff0c;可以分析堆中对象所占…