多图片展开、收缩

来看看效果图:


封装好的运动函数move.js就是“javascript运动基础——摩擦和缓冲”中封装的函数

这是源代码

<!DOCTYPE HTML>
<html>

	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>无标题文档</title>

		<script type="text/javascript" src="js/move.js"></script>

		<style>
			#ul {
				width: 300px;
				height: 300px;
				position: relative;
				display: block;
				margin: 0 auto;
			}
			
			li {
				list-style: none;
				width: 90px;
				height: 90px;
				margin: 10px 0 0 10px;
				background-color: yellow;
				float: left;
			}
		</style>

	</head>

	<body>
		<ul id="ul">
			<li></li>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
			<li></li>
		</ul>

		<script>
			window.onload = function() {
				var oUl = document.getElementById('ul');
				var oLi = document.getElementsByTagName('li');
				var arr = [];

				
				for(var i = 0; i < oLi.length; i++) {
					oLi[i].index = i;
					//提前保存好元素最开始的位置
					arr.push({
						left: oLi[i].offsetLeft,
						top: oLi[i].offsetTop
					})

				}

				for(var i = 0; i < oLi.length; i++) {
					//定位后浮动效果就是失效了
					oLi[i].style.position = 'absolute';
					//重新设置li的位置
					oLi[i].style.left = arr[i].left + 'px';
					oLi[i].style.top = arr[i].top + 'px';
					//因为元素保存后的位置就是偏移后的,所以要把外边距清除掉
					oLi[i].style.margin = 0;

					oLi[i].onmouseover = function() {
						startMove(this, {
							width: 150,
							height: 150,
							left: arr[this.index].left - 40,
							top: arr[this.index].top - 40
						});
					}

					oLi[i].onmouseout = function() {
						startMove(this, {
							width: 90,
							height: 90,
							left: arr[this.index].left,
							top: arr[this.index].top
						});
					}
				}

			}
		</script>
	</body>

</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值