仿网易云官网轮播图 html+css+js

本文介绍了一个仿网易云音乐轮播图的实现方案,利用HTML、CSS和JS技术实现图片自动轮播、手动切换及鼠标悬停暂停等功能。

效果:

在这里插入图片描述
可自动轮播,左右箭头按钮和下方小圆点可切图,鼠标移入时停止自动轮播。
视频演示:

【html+css+js】仿网易云轮播图

实现(后面有完整源码):

1. 定义标签,看注释:

<!-- 底层盒子 -->
 <main id="main">
        <!-- 虚化的背景 -->
        <div class="bg"></div>
        <!-- 放图片底层盒子 -->
        <section>
            <!-- 放图片的盒子 -->
            <div class="tupian">
                <img src="img/images/1.jpg" class="image">
            </div>
            <!-- 放小圆点的盒子,里面的小圆点数量通过js动态添加 -->
            <div class="select">
                <!--  <div class="dian"></div>
                 <div class="dian check"></div>      -->          
            </div>
            <!-- 左右切换按钮 -->
            <div class="bt left"><span class="anniu"></span></div>
            <div class="bt right"><span class="anniu"></span></div>
        </section>
    </main>

2. 设置底层盒子和虚化背景的css样式:

   main{
   
   
        position: relative;
        top: 20vh;
        height: 300px;
        width: 100%;          
        overflow: hidden;
    }
    main .bg{
   
   
        position: absolute;
        top: -50%;
        left: -50%;
        width: 200%;
        height: 200%;
        background-image: url(img/images/1.jpg);
        background-size: 100% 100%;
        filter: blur(30px);
    }

position: relative; 相对定位
overflow: hidden; 溢出隐藏
position: absolute; 绝对定位
background-image: url(img/images/1.jpg); 背景图先设置轮播图的第一张
filter: blur(30px); 模糊效果,让背景虚化

3. 设置放图片的底层盒子的css:

 main section{
   
   
            position: relative;
            left: 50%;
            transform: translateX(-50%);
            height: 100%;
            width: 100%;
            max-width: 980px;       
        }

left: 50%;
transform: translateX(-50%); 居中。
max-width: 980px; 最大宽度只有980px;
4. 设置放图片的盒子与图片的css:

 main section .tupian{
   
   
            width: 100%;
            height: 100%;
        }
        main section .tupian .image{
   
   
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

object-fit: cover;保持图片原有尺寸比例。但部分内容可能被剪切。

5. 设置放小圆点的盒子与小圆点的css:

main .select{
   
   
            position: absolute;
            bottom: 10px;
            height: 30px;
            width: 100%;
            display: flex;
            justify-content: center;
            align-items: center;
        }
        main .select .dian{
   
   
            margin: 3px;
            width: 10px;
            height: 10px;
            border-radius: 50%;
            border: 2px solid rgb(255, 254, 254); 
           
        }
        main .select .dian:hover{
   
   
            background-color: rgb(255, 254, 254);
            cursor: pointer;
        }

display: flex;
justify-content: center;
align-items: center; flex布局,让子元素居中对齐。
margin: 3px; 外边距,让圆点间有间隔。
background-color: rgb(255, 254, 254); 白色;
cursor: pointer; 鼠标样式为小手。

6. 设置左右按钮的css:

main section .bt{
   
   
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            width: 50px;
            height: 50px;
            background-color: rgba(82, 81, 81, 0.2);
            border-radius: 20%;
            cursor: pointer;
            transition: all 0.3s;
        }
        main section .bt:hover{
   
   
            box-shadow: inset 0 0 1px rgba(255, 255, 255,.8),
            inset 0 0 5px rgba(255, 255, 255,.8),
            inset 0 0 15px rgba(255, 255, 255,.8);
        }
        main section .left{
   
   
            left: -60px;
        }
        main section .right{
   
   
            right: -60px;
        }

top: 50%;
transform: translateY(-50%); 垂直居中
transition: all 0.3s; 过渡效果
box-shadow: inset 0 0 1px rgba(255, 255, 255,.8) 阴影

7. 当设置屏幕过小时,左右按钮的位置要变化:

  /*当屏幕尺寸小于1100px时,应用下面的CSS样式*/
        @media screen and (max-width: 1100px)
        {
   
   
            main section .left{
   
   
            left: 20px;
        }
        main section .right{
   
   
            right: 20px;
        }
        }

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

北极光之夜。

谢谢~

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

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

打赏作者

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

抵扣说明:

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

余额充值