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


相关文章
|
10月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
773 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
596 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
657 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
css3 svg制作404页面动画效果HTML源码
css3 svg制作404页面动画效果HTML源码
284 34
html+js+css实现的建筑方块立体数字时钟源码
html+js+css实现的建筑方块立体数字时钟源码
601 33
|
前端开发
“弘五四,耀青春”程序创意获奖作品【html+css】
本作品以“青春筑梦,共创未来”为主题,采用动态龙元素展现青春活力与创新精神。页面设计简洁明快,色彩协调,突显年轻人积极向上的风貌。作品内容包括获奖截图、名字《时代扬新帆》及源代码分享。特别说明:禁止用于商业活动,可用于比赛和作业等开源场景。最后,作者表达了对五四精神的致敬与传承,强调了青春活力和创造力的重要性,并感谢评委和支持者。 **获奖感言摘录:** “获得这个奖项,对我们团队来说,既是认可也是激励。我们将继续努力,不断优化产品,为用户带来更好的体验,为社会贡献更多价值。”
295 2
|
JSON 前端开发 JavaScript
使用html,css,js 实现一个龙年春节祝福卡片效果
使用html,css,js 实现一个龙年春节祝福卡片效果
563 123
|
前端开发 JavaScript
用HTML CSS JS打造企业级官网 —— 源码直接可用
必看!用HTML+CSS+JS打造企业级官网-源码直接可用,文章代码仅用于学习,禁止用于商业
614 1
|
前端开发 JavaScript 安全
HTML+CSS+JS密码灯登录表单
通过结合使用HTML、CSS和JavaScript,我们创建了一个带有密码强度指示器的登录表单。这不仅提高了用户体验,还帮助用户创建更安全的密码。希望本文的详细介绍和代码示例能帮助您在实际项目中实现类似功能,提升网站的安全性和用户友好性。
332 3