JavaScript实现淘宝商品展示(鼠标放在小图片上,上面会出现相应的大图片)

最终效果:

代码部分:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<title>图片放大效果</title>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			.goodsShow ul{
				list-style: none;
				margin-top: 30px;
			}
			.goodsShow{
				width: 400px;
				height: 480px;/* 计算好的,大图是400px,小图是50px,大图和小图上下间隔30px; */
			}
			.goodsShow p{
				border: 1px solid #ccc;
			}
			.goodsShow ul li{
				float: left;
				margin-left: 64px;
			}
			.goodsShow ul li img{
				cursor: pointer;/* 鼠标放小图片上变成手的形状 */
			}
		</style>
		//-----------------------------------------------------------------------------------
		<script type="text/javascript">
			window.onload = function(){
				var ul = document.getElementById("smUl"); //先得到ul的引用对象
				var imgs = ul.getElementsByTagName("img"); //再通过ul的引用对象得到img的引用对象
				for (var i = 0; i < imgs.length; i++) {//遍历注册事件
					imgs[i].onmouseover = function(){
						var bigImg = document.getElementById("detail");
						bigImg.src = this.getAttribute("data");
					}
				}
			}
		</script>
		//------------------------------------------------------------------------------------------
	</head>
	<body>
		<div id="container" class="goodsShow">
			<p><img src="./images/1.jpg" id = "detail"></p>
			<ul id = "smUl">
				<li><img src="./images/01.webp" data="./images/1.jpg"> </li>
				<li><img src="./images/02.webp" data="./images/2.jpg"> </li>
				<li><img src="./images/03.webp" data="./images/3.jpg"> </li>
			</ul>
		</div>
	</body>
</html>

 
 
 
解释下其中DOM对象中的几个方法:

  • getElementsByTagName: 返回带有指定标签名的对象的集合(数组)。
  • getAttribute() : 返回指定属性名的属性值。
  • onload:

JS加载时和html是同步加载的,如果使用元素在定义元素之前易报错;使用onload后整个页面上所有元素加载完毕后再执行js的内容

  • 7
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以通过以下 HTMLJavaScript 代码实现HTML 代码: ```html <div id="images"> <img src="image1.jpg" data-src="large1.jpg"> <img src="image2.jpg" data-src="large2.jpg"> <img src="image3.jpg" data-src="large3.jpg"> <img src="image4.jpg" data-src="large4.jpg"> <img src="image5.jpg" data-src="large5.jpg"> </div> <div id="large-image"> <img src=""> </div> ``` JavaScript 代码: ```javascript // 获取小图片列表和大图片元素 const images = document.querySelectorAll('#images img'); const largeImage = document.querySelector('#large-image img'); // 遍历小图片列表,为每一个小图片添加鼠标移入和移出事件 images.forEach(img => { img.addEventListener('mouseover', () => { // 移入事件:添加红色边框和显示图片 img.style.border = '2px solid red'; const largeSrc = img.dataset.src; largeImage.src = largeSrc; }); img.addEventListener('mouseout', () => { // 移出事件:移除红色边框和隐藏大图片 img.style.border = ''; largeImage.src = ''; }); }); ``` 解释一下代码: 1. 首先获取小图片列表和大图片元素。 2. 遍历小图片列表,为每一个小图片添加鼠标移入和移出事件。 3. 在鼠标移入事件中,添加红色边框和显示图片。通过 `data-src` 属性获取大图片的地址,并将其赋值给大图片元素的 `src` 属性。 4. 在鼠标移出事件中,移除红色边框和隐藏大图片。将小图片元素的边框样式设为空字符串,将大图片元素的 `src` 属性设为空字符串。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值