LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

HTML+ CSS + Javascript 创建超炫的滑块效果,附源码

admin
2025年12月23日 9:5 本文热度 913

  效果展示  


  完整源码   



HTML
<!DOCTYPE html><html lang="en">  <head>    <meta charset="UTF-8" />    <meta name="viewport" content="width=device-width, initial-scale=1.0" />    <link      href="https://unpkg.com/boxicons@2.1.4/css/boxicons.min.css"      rel="stylesheet"    />    <link rel="stylesheet" href="css/style.css" />    <title>Document</title>  </head>  <body>    <div class="bg-box">      <div class="bg" style="--s-clr: #408e20; --e-clr: #9acd31"></div>      <div class="bg" style="--s-clr: #550802; --e-clr: #f40401"></div>      <div class="bg" style="--s-clr: #696901; --e-clr: #ffff03"></div>      <div class="bg" style="--s-clr: #823043; --e-clr: #fac0cb"></div>    </div>    <div class="carousel">      <div class="list-img">        <div class="item">          <img src="img/img1.png" alt="" />        </div>        <div class="item">          <img src="img/img2.png" alt="" />        </div>        <div class="item">          <img src="img/img3.png" alt="" />        </div>        <div class="item">          <img src="img/img4.png" alt="" />        </div>      </div>      <div class="box-info">        <div class="list-info">          <div class="info">            <h2>Green Dragon</h2>            <p>              Lorem ipsum dolor sit amet consectetur adipisicing elit. Nesciunt,              odio nemo totam assumenda at quam iure, atque repellendus sapiente              laboriosam neque recusandae facere a! Suscipit numquam aperiam              labore fugiat itaque.            </p>            <a href="#" class="btn">View More</a>          </div>          <div class="info">            <h2>Red Dragon</h2>            <p>              Lorem ipsum dolor sit amet consectetur adipisicing elit. Nesciunt,              odio nemo totam assumenda at quam iure, atque repellendus sapiente              laboriosam neque recusandae facere a! Suscipit numquam aperiam              labore fugiat itaque.            </p>            <a href="#" class="btn">View More</a>          </div>          <div class="info">            <h2>Yellow Dragon</h2>            <p>              Lorem ipsum dolor sit amet consectetur adipisicing elit. Nesciunt,              odio nemo totam assumenda at quam iure, atque repellendus sapiente              laboriosam neque recusandae facere a! Suscipit numquam aperiam              labore fugiat itaque.            </p>            <a href="#" class="btn">View More</a>          </div>          <div class="info">            <h2>Pink Dragon</h2>            <p>              Lorem ipsum dolor sit amet consectetur adipisicing elit. Nesciunt,              odio nemo totam assumenda at quam iure, atque repellendus sapiente              laboriosam neque recusandae facere a! Suscipit numquam aperiam              labore fugiat itaque.            </p>            <a href="#" class="btn">View More</a>          </div>        </div>      </div>    </div>    <div class="navigation">      <span class="prev-btn"><i class="bx bx-chevron-left"></i></span>      <span class="next-btn"><i class="bx bx-chevron-right"></i></span>    </div>    <script>      const listInfo = document.querySelector(".list-info");      const childCount = listInfo.childElementCount;      const listImg = document.querySelector(".list-img");      const prevBtn = document.querySelector(".prev-btn");      const nextBtn = document.querySelector(".next-btn");      const bgs = document.querySelectorAll(".bg");      const activeColor = "white";      const activeBorder = "2px solid white";      const inactiveColor = "rgba(255,255,255,0.5)";      const inactiveBorder = "2px solid rgba(255,255,255,0.5)";      let index = 0;      function changeBtnColor(index) {        let nextInactive = index === childCount - 1 ? true : false;        let prevInactive = index === 0 ? true : false;        nextBtn.style.color = nextInactive ? inactiveColor : activeColor;        nextBtn.style.border = nextInactive ? inactiveBorder : activeBorder;        prevBtn.style.color = prevInactive ? inactiveColor : activeColor;        prevBtn.style.border = prevInactive ? inactiveBorder : activeBorder;      }      nextBtn.addEventListener("click"() => {        index = index < childCount - 1 ? index + 1 : childCount - 1;        listInfo.style.transform = `translateY(${          (index * -1 * 100) / childCount        }%)`;        listImg.style.transform = `translateY(${index * -100}%)`;        bgs[index].classList.add("active");        changeBtnColor(index);      });      prevBtn.addEventListener("click"() => {        indexPrev = index > 0 ? index : 0;        index = index > 0 ? index - 1 : 0;        listInfo.style.transform = `translateY(${          (index * -1 * 100) / childCount        }%)`;        listImg.style.transform = `translateY(${index * -100}%)`;        bgs[indexPrev].classList.remove("active");        changeBtnColor(index);      });    </script>  </body></html>

CSS
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800;900&display=swap");* {  margin0;  padding0;  box-sizing: border-box;  font-family"Montserrat", sans-serif;}.carousel {  height100vh;  padding0 10%;  overflow: hidden;}.carousel .box-info {  position: absolute;  top50%;  transformtranslateY(-50%);  height250px;  aspect-ratio13/5;  overflow: hidden;}.box-info .list-info {  transition1s cubic-bezier(0.68, -0.550.2651.55);}.list-info .info {  display: flex;  flex-direction: column;  justify-content: center;  color#fff;  height250px;}.info h2 {  font-size50px;  line-height1;}.info p {  font-size16px;  margin20px 0;}.info .btn {  display: inline-flex;  justify-content: center;  align-items: center;  width180px;  height50px;  background: transparent;  border2px solid #fff;  border-radius40px;  box-shadow0 0 10px rgba(0000.4);  font-size16px;  color#fff;  text-decoration: none;  font-weight600;  /* margin: 0 24px; */  transition0.5s;  cursor: pointer;}.info .btn:hover {  transformtranslateX(24pxscale(1.1);}.carousel .list-img {  height100%;  transition1s cubic-bezier(0.68, -0.550.2651.55);}.list-img .item {  position: relative;  height100%;  display: flex;  align-items: center;}.item img {  position: absolute;  right0;  pointer-events: none;  filterdrop-shadow(0 0 10px rgba(0000.4));}.navigation {  position: absolute;  bottom7%;  left50%;  transformtranslateX(-50%);}.navigation span {  display: inline-flex;  justify-content: center;  align-items: center;  width60px;  aspect-ratio1/1;  background: transparent;  border2px solid #fff;  border-radius50%;  box-shadow0 0 10px rgba(0000.4);  cursor: pointer;  margin0 20px;  font-size55px;  color#fff;  transition0.5s;}.navigation span:first-child {  colorrgba(2552552550.5);  border2px solid rgba(2552552550.5);}.navigation span:hover {  transformscale(1.2);}.bg-box {  position: absolute;  top0;  left0;  width100%;  height100%;  overflow: hidden;  z-index: -1;}.bg-box .bg {  position: absolute;  width100%;  height100%;  z-index: -1;  backgroundlinear-gradient(360degvar(--s-clr), var(--e-clr));  transition1s cubic-bezier(0.68, -0.550.2651.55);}.bg-box .bg:not(:first-child) {  clip-pathcircle(0% at 50% 50%);}.bg-box .bg:not(:first-child).active {  clip-pathcircle(75% at 50% 50%);}


阅读原文:原文链接


该文章在 2025/12/23 10:43:06 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved