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; */
}


相关文章
|
1月前
|
前端开发 JavaScript 搜索推荐
打造个人博客网站:从零开始的HTML和CSS之旅
【9月更文挑战第32天】在这个数字化的时代,拥有一个个人博客不仅是展示自我的平台,也是技术交流的桥梁。本文将引导初学者理解并实现一个简单的个人博客网站的搭建,涵盖HTML的基础结构、CSS样式的美化技巧以及如何将两者结合来制作一个完整的网页。通过这篇文章,你将学会如何从零开始构建自己的网络空间,并在互联网世界留下你的足迹。
|
3天前
|
JSON 移动开发 数据格式
html5+css3+js移动端带歌词音乐播放器代码
音乐播放器特效是一款html5+css3+js制作的手机移动端音乐播放器代码,带歌词显示。包括支持单曲循环,歌词显示,歌曲搜索,音量控制,列表循环等功能。利用json获取音乐歌单和歌词,基于html5 audio属性手机音乐播放器代码。
26 6
|
1天前
|
前端开发
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。
HTML 样式- CSS2
HTML样式实例展示了如何使用`font-family`、`color`和`font-size`属性来定义字体样式,以及使用`text-align`属性来设置文本的对齐方式。示例包括标题和段落的样式设置。
|
1天前
|
前端开发
HTML 样式- CSS1
CSS (层叠样式表) 用于为 HTML 元素添加样式,包括颜色、文本、盒子模型等。CSS 可以通过内联样式、内部样式表或外部引用的方式添加到 HTML 中。推荐使用外部引用方式。本教程将介绍如何使用 CSS 为 HTML 添加样式,并提供实例演示。
|
1月前
|
前端开发 JavaScript 搜索推荐
打造个人博客网站:从零开始的HTML与CSS之旅
【9月更文挑战第31天】在这个数字时代,拥有一个个人博客网站是展示自我、分享知识和连接世界的重要方式。本文将引导你通过简单的HTML和CSS知识,一步步构建起你的在线空间。无论你是编程新手还是希望通过实践加深理解,这篇文章都将是你的理想指南。我们将探索基本概念,实现页面布局,并点缀以个性化样式,最终将静态页面转变为动态交互式网站。准备好了吗?让我们开始吧!
|
2月前
|
前端开发 JavaScript
HTML+JavaScript+CSS DIY 分隔条splitter
HTML+JavaScript+CSS DIY 分隔条splitter
|
2月前
|
XML 前端开发 JavaScript
jQuery HTML / CSS 方法
jQuery HTML / CSS 方法
13 2
|
20天前
|
前端开发
纯CSS实现轮播图
纯CSS实现轮播图
34 0
|
2月前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)