HTML+CSS实现轮播图效果

简介: HTML+CSS实现轮播图效果

HTML+CSS实现轮播图效果

效果图如下(想要源码或者感兴趣的小伙伴可以评论区留言哦!)

HTML部分源代码如下:

<!DOCTYPE html>
<html >
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>轮播图</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div class="channel">
       杨帆起航 成就梦想
    </div>
    <div class="container">
        <div class="box">
            <div class="item">
                <!-- 默认第一个选中 -->
                <input type="radio" name="btn" id="btn1" checked>
                <label for="btn1" style="--i:1"></label>
                <div class="img">
                    <img src="1.jpg" alt="">
                    <div class="right"> Title 1 </div>
                </div>
            </div>
            <div class="item">
                <input type="radio" name="btn" id="btn2">
                <label for="btn2" style="--i:2"></label>
                <div class="img">
                    <img src="2.jpg" alt="">
                    <div class="right"> Title 2 </div>
                </div>
            </div>
            <div class="item">
                <input type="radio" name="btn" id="btn3">
                <label for="btn3" style="--i:3"></label>
                <div class="img">
                    <img src="3.jpg" alt="">
                    <div class="right"> Title 3 </div>
                </div>
            </div>
            <div class="item">
                <input type="radio" name="btn" id="btn4">
                <label for="btn4" style="--i:4"></label>
                <div class="img">
                    <img src="4.jpg" alt="">
                    <div class="right"> Title 4 </div>
                </div>
            </div>
            <div class="item">
                <input type="radio" name="btn" id="btn5">
                <label for="btn5" style="--i:5"></label>
                <div class="img">
                    <img src="5.jpg" alt="">
                    <div class="right"> Title 5 </div>
                </div>
            </div>
            <div class="item">
                <input type="radio" name="btn" id="btn6">
                <label for="btn6" style="--i:6"></label>
                <div class="img">
                    <img src="6.jpg" alt="">
                    <div class="right"> Title 6 </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>

CSS部分源代码如下:

:root {
    --background-color: #2c3e50;
    --border-color    : #7591AD;
    --text-color      : #34495e;
    --color1          : #EC3E27;
    --color2          : #fd79a8;
    --color3          : #0984e3;
    --color4          : #00b894;
    --color5          : #fdcb6e;
    --color6          : #e056fd;
    --color7          : #F97F51;
    --color8          : #BDC581;
}
* {
    margin : 0;
    padding: 0;
}
html {
    font-size: 14px;
}
body {
    width           : 100vw;
    height          : 100vh;
    background-color: var(--background-color);
    display         : flex;
    justify-content : center;
    align-items     : center;
    font-family     : 'Montserrat', sans-serif, Arial, 'Microsoft Yahei';
}
.channel {
    position   : absolute;
    width      : 80%;
    text-align : center;
    top        : 50%;
    left       : 50%;
    transform  : translate(-50%, -250px);
    font-size  : 30px;
    font-weight: bold;
    color      : #fff;
}
.box {
    position              : relative;
    width                 : 600px;
    height                : 300px;
    /* box-shadow         : ; */
    overflow           : hidden;
    /* background-color   : #e056fd; */
    z-index               : 0;
    box-shadow            :
        0 0 0 10px #fff,
        5px 5px 0 10px rgba(0, 0, 0, 0.1);
}
.box::after {
    position        : absolute;
    content         : '';
    width           : 100%;
    height          : 1px;
    background-color: rgba(255, 255, 255, .35);
    bottom          : 25px;
    z-index         : 8888;
}
/* 元素box相同大小 */
.box .item {
    position: absolute;
    width   : 600px;
    height  : 300px;
    top     : 0;
    left    : 0;
}
/* 让单选框离开显示区域 */
input[type=radio] {
    transform : translateY(-100px);
    /* opacity: 0; */
}
label {
    position              : absolute;
    width                 : 20px;
    height                : 20px;
    background-color      : rgba(255, 255, 255, .35);
    /* background-color   : #EC3E27; */
    /* 鼠标 */
    cursor                : pointer;
    bottom                : 15px;
    border-radius         : 50%;
    left                  : calc((var(--i) - 1) * 108px + 20px);
    z-index               : 9999;
    transition            : all 0.5s;
}
label:hover {
    background-color: rgba(255, 255, 255, .6);
}
input[type=radio]:checked+label {
    background-color: #fff;
    box-shadow      : 0 0 0 6px rgba(255, 255, 255, .5);
}
.img {
    position           : absolute;
    width              : 600px;
    height             : 300px;
    top                : 0;
    left               : 0;
    /* background-color: #F97F51; */
    overflow: hidden;
}
.img img {
    position  : absolute;
    transform : translateX(600px);
    /* z-index在动画中变化挺特殊这里直接用0s */
    transition: all .15s, z-index 0s;
}
input[type=radio]:checked~.img img {
    transform: translateX(0px);
    z-index  : 777;
}
.img .right {
    position           : absolute;
    width              : 270px;
    height             : 300px;
    /* background-color: #e056fd; */
    z-index            : 778;
    right              : 0;
    background-image   : radial-gradient(rgba(255, 255, 255, .6), transparent);
    background-size    : 600px 600px;
    background-repeat  : no-repeat;
    background-position: -300px -150px;
    transform          : translateX(300px);
    /* 这里时间比img要长一些 */
    transition         : all 0.35s;
    font-size: 40px;
    color: #ffffff99;
    text-align: center;
    line-height: 80px;
}
input[type=radio]:checked~.img .right {
    transform   : translateX(0px);
    /* z-index  : 777; */
}


相关文章
|
11天前
|
移动开发 前端开发 JavaScript
[HTML、CSS]细节与使用经验
本文总结了前端开发中的一些重要细节和技巧,包括CSS选择器、定位、层级、全局属性、滚轮控制、轮播等。作者以纯文字形式记录,便于读者使用<kbd>Ctrl + F</kbd>快速查找相关内容。文章还提供了示例代码,帮助读者更好地理解和应用这些知识点。
34 1
[HTML、CSS]细节与使用经验
|
13天前
|
移动开发 前端开发 JavaScript
[HTML、CSS]知识点
本文涵盖前端知识点扩展、HTML标签(如video、input、canvas)、datalist和details标签的使用方法,以及CSS布局技巧(如margin、overflow: hidden和动态height)。文章旨在分享作者的学习经验和实用技巧。
27 1
[HTML、CSS]知识点
|
7天前
|
移动开发 JavaScript 前端开发
html table+css实现可编辑表格的示例代码
html table+css实现可编辑表格的示例代码
|
4天前
|
前端开发 JavaScript
用HTML CSS JS打造企业级官网 —— 源码直接可用
必看!用HTML+CSS+JS打造企业级官网-源码直接可用,文章代码仅用于学习,禁止用于商业
31 1
|
9天前
|
前端开发 JavaScript 安全
HTML+CSS+JS密码灯登录表单
通过结合使用HTML、CSS和JavaScript,我们创建了一个带有密码强度指示器的登录表单。这不仅提高了用户体验,还帮助用户创建更安全的密码。希望本文的详细介绍和代码示例能帮助您在实际项目中实现类似功能,提升网站的安全性和用户友好性。
19 3
|
20天前
|
JSON 移动开发 数据格式
html5+css3+js移动端带歌词音乐播放器代码
音乐播放器特效是一款html5+css3+js制作的手机移动端音乐播放器代码,带歌词显示。包括支持单曲循环,歌词显示,歌曲搜索,音量控制,列表循环等功能。利用json获取音乐歌单和歌词,基于html5 audio属性手机音乐播放器代码。
70 6
|
19天前
|
前端开发
HTML 样式- CSS3
内部样式表适用于单个文件的特别样式,通过&lt;head&gt;部分的&lt;style&gt;标签定义;外部样式表适用于多个页面,通过&lt;link&gt;标签引用外部CSS文件;&lt;style&gt;定义样式,&lt;link&gt;引用资源;已弃用的标签有&lt;font&gt;、&lt;center&gt;、&lt;strike&gt;,属性有color和bgcolor。
|
19天前
HTML 样式- CSS2
HTML样式实例展示了如何使用`font-family`、`color`和`font-size`属性来定义字体样式,以及使用`text-align`属性来设置文本的对齐方式。示例包括标题和段落的样式设置。
|
19天前
|
前端开发
HTML 样式- CSS1
CSS (层叠样式表) 用于为 HTML 元素添加样式,包括颜色、文本、盒子模型等。CSS 可以通过内联样式、内部样式表或外部引用的方式添加到 HTML 中。推荐使用外部引用方式。本教程将介绍如何使用 CSS 为 HTML 添加样式,并提供实例演示。

热门文章

最新文章