原生js实现淘宝衣服相册悬浮切换效果

目录结构:

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>图片相册切换</title>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
        }
        ul {
            list-style: none;
            /* 清除浮动 */
            overflow: hidden;
        }
        ul li {
            float: left;
            width: 100px;
            height: 50px;
            margin-top: 20px;
            margin-left: 15px;
            /* 描边 */
            border: 2px solid #fff;
        }
        ul li.active {
            border-color: red;
        }
    </style>
</head>
<body>
    <!-- 主图 -->
    <img id="bigImg" src="./images/img01.jpg" style="width: 500px; height: 300px;">
    <ul>
        <li class="active"><a href=""><img src="./images/img02.jpg" width="100" height="50px" class="smallImg"></a></li>
        <li><a href=""><img src="./images/img03.jpg" width="100"height="50px" class="smallImg"></a></li>
        <li><a href=""><img src="./images/img04.jpg" width="100"height="50px" class="smallImg"></a></li>
        <li><a href=""><img src="./images/img05.jpg" width="100"height="50px" class="smallImg"></a></li>
    </ul>
    <script>
        // 1.获取事件源
        var bigImg = document.getElementById("bigImg");
        var smallImgs = document.getElementsByTagName("img");
        // 鼠标悬浮效果
        for (var i = 0; i < smallImgs.length; i++) {
            // 2.为每个smallImg添加鼠标悬浮事件
            smallImgs[i].onmouseover = function() {
                // 2.1 清除所有li标签的类名
                for(var j = 0; j < smallImgs.length; j++) {
                    smallImgs[j].parentNode.parentNode.setAttribute('class','');
                }
                // 2.2 将大图修改为悬浮对应的图片,即修改大图的src为当前图片的src
                var smallImgSrc = this.getAttribute('src');
                // console.log(smallImgSrc);
                bigImg.setAttribute('src',smallImgSrc);
                // 为当前悬浮的li设置边框样式,即修改为active类,this为当前对象
                this.parentNode.parentNode.setAttribute('class','active');
            }
        }
    </script>
</body>
</html>

效果:

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想做一只快乐的修狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值