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


相关文章
|
6天前
|
JavaScript
jquery和CSS3响应式轮播图插件jcSlider
jcSlider是一款jquery和CSS3响应式轮播图插件。jcSlider使用CSS3过渡动画,它可以和animate.css完美结合,生成60多种轮播图过渡动画效果。
|
28天前
|
前端开发 测试技术 定位技术
如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤
本文深入介绍了如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤。通过实例展示了主页、关于我们、产品展示、新闻动态及联系我们等页面的设计与实现,强调了合理布局、美观设计及用户体验的重要性。旨在为企业打造一个既专业又具吸引力的线上平台。
56 7
|
28天前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
35 6
|
28天前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
40 5
|
28天前
|
前端开发 JavaScript UED
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势,包括样式表优化、DOM操作减少、图像优化等技术,并分析了电商网站的具体案例,强调了技术演进对Web性能的深远影响。
33 5
|
1月前
|
移动开发 JavaScript 前端开发
html table+css实现可编辑表格的示例代码
html table+css实现可编辑表格的示例代码
61 12
|
1月前
|
前端开发 JavaScript
用HTML CSS JS打造企业级官网 —— 源码直接可用
必看!用HTML+CSS+JS打造企业级官网-源码直接可用,文章代码仅用于学习,禁止用于商业
137 1
|
1月前
|
前端开发 JavaScript 安全
HTML+CSS+JS密码灯登录表单
通过结合使用HTML、CSS和JavaScript,我们创建了一个带有密码强度指示器的登录表单。这不仅提高了用户体验,还帮助用户创建更安全的密码。希望本文的详细介绍和代码示例能帮助您在实际项目中实现类似功能,提升网站的安全性和用户友好性。
48 3
|
1月前
|
移动开发 前端开发 JavaScript
[HTML、CSS]细节与使用经验
本文总结了前端开发中的一些重要细节和技巧,包括CSS选择器、定位、层级、全局属性、滚轮控制、轮播等。作者以纯文字形式记录,便于读者使用<kbd>Ctrl + F</kbd>快速查找相关内容。文章还提供了示例代码,帮助读者更好地理解和应用这些知识点。
48 1