HTML+CSS动画打造酷炫轮播图!(含源码)

简介: HTML+CSS动画打造酷炫轮播图!(含源码)

先上效果

   


🌟如何让内容呈现更加吸引人成为设计师和开发者的挑战。大气实用的HTML5/CSS动画轮播图提供了一种解决方案,它结合了视觉美感和动态效果,使得信息展示不仅大气而且具有高度的实用性。本文将探讨如何利用HTML5和CSS的动画特性,设计出既美观又功能丰富的轮播图,提升用户体验。

   

完整代码

   

HTML

<div class="slider">
          <div class="slider-wrapper">
            <img src="./img/1.png" alt="" />
          </div>
          <div class="slider-footer">
            <p>标题1</p>
            <ul class="slider-indicator">
              <li class="active"></li>
              <li></li>
              <li></li>
              <li></li>
              <li></li>
              <li></li>
              <li></li>
              <li></li>
            </ul>
            <div class="toggle">
              <button class="prev">&lt;</button>
              <button class="next">&gt;</button>
            </div>
          </div>
        </div>

CSS代码:

* {
          box-sizing: border-box;
        }
     
        .slider {
          width: 560px;
          height: 400px;
          overflow: hidden;
          margin-left: 300px;
        }
     
        .slider-wrapper {
          width: 100%;
          height: 320px;
        }
     
        .slider-wrapper img {
          width: 100%;
          height: 100%;
          display: block;
        }
     
        .slider-footer {
          height: 80px;
          background-color: rgb(100, 67, 68);
          padding: 12px 12px 0 12px;
          position: relative;
        }
     
        .slider-footer .toggle {
          position: absolute;
          right: 0;
          top: 12px;
          display: flex;
        }
     
        .slider-footer .toggle button {
          margin-right: 12px;
          width: 28px;
          height: 28px;
          appearance: none;
          border: none;
          background: rgba(255, 255, 255, 0.1);
          color: #fff;
          border-radius: 4px;
          cursor: pointer;
        }
     
        .slider-footer .toggle button:hover {
          background: rgba(255, 255, 255, 0.2);
        }
     
        .slider-footer p {
          margin: 0;
          color: #fff;
          font-size: 18px;
          margin-bottom: 10px;
        }
     
        .slider-indicator {
          margin: 0;
          padding: 0;
          list-style: none;
          display: flex;
          align-items: center;
        }
     
        .slider-indicator li {
          width: 8px;
          height: 8px;
          margin: 4px;
          border-radius: 50%;
          background: #fff;
          opacity: 0.4;
          cursor: pointer;
        }
     
        .slider-indicator li.active {
          width: 12px;
          height: 12px;
          opacity: 1;
        }

JS:


// 1. 初始数据
const sliderData = [
{ url: './img/1.png', title: '标题1', color: 'rgb(100, 67, 68)' },
{ url: './img/2.png', title: '标题2', color: 'rgb(43, 35, 26)' },
{ url: './img/3.png', title: '标题3', color: 'rgb(36, 31, 33)' },
{ url: './img/4.png', title: '标题4', color: 'rgb(139, 98, 66)' },
{ url: './img/5.png', title: '标题5', color: 'rgb(67, 90, 92)' },
{ url: './img/6.png', title: '标题6', color: 'rgb(166, 131, 143)' },
{ url: './img/7.png', title: '标题7', color: 'rgb(53, 29, 25)' },
{ url: './img/8.png', title: '标题8', color: 'rgb(99, 72, 114)' },
]
//获取元素
const img = document.querySelector('.slider-wrapper img')
const p =document.querySelector(' .slider-footer p ')
const footer = document.querySelector(' .slider-footer ')
//1.右按钮业务
//1.1 获取右侧按钮
const next = document.querySelector('.next')
let i =0
//1.2注册点击事件
next.addEventListener('click',function(){
  i++
  i = i >= sliderData.length ? 0: i
  toggle()
})
const prev = document.querySelector('.prev')
//1.2注册点击事件
prev.addEventListener('click',function(){
  i--
  i = i<0 ? sliderData.length-1 : i;
  
  toggle()
})
//声明一个渲染的函数作为复用
function toggle(){
  img.src = sliderData[i].url;
  p.innerHTML = sliderData[i].title;
  footer.style.backgroundColor = sliderData[i].color
  //1.5更换小圆点 先移除原来的类名,当前li再添加 这个类名
  document.querySelector(' .slider-indicator .active ').classList.remove('active')
  document.querySelector( ` .slider-indicator li:nth-child(${i+1}) ` ).classList.add('active')
}
//3.自动播放模块
let timerId = setInterval(function(){
  //利用js自动调用点击事件
  next.click()
},2000)
//4.鼠标经过大盒子,停止定时器
const slider = document.querySelector('.slider')
//注册事件
slider.addEventListener('mouseenter',function(){
  clearInterval(timerId)
})
//5.鼠标离开大盒子,停止定时器
const slider1 = document.querySelector('.slider')
//注册事件
slider.addEventListener('mouseleave',function(){
  clearInterval(timerId)
  //开启定时器
  timerId = setInterval(function(){
  //利用js自动调用点击事件
  next.click()
},2000)
})
相关文章
|
前端开发 JavaScript
CSS 过渡和动画
CSS过渡和动画是用于为网页元素添加动态效果的两种重要技术
710 143
|
11月前
|
自然语言处理 前端开发 JavaScript
用 通义灵码 一键生成“水波纹按钮”,连 CSS 动画都不用自己写了!
通义灵码是一款智能编程辅助工具,它可以根据自然语言指令自动生成高质量的代码。例如,只需输入“生成一个按钮,点击时带水波纹动画,模拟 Material Ripple 效果”,它就能生成具备完整交互逻辑、CSS 动画和良好性能的按钮组件。不仅如此,它还支持拓展功能,如长按触发提示、添加图标等,并能自动优化样式适配不同场景。通过通义灵码,开发者可以大幅提升效率,专注于创意实现,而不必纠结于繁琐的代码细节。
|
8月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
Animation属性 css3为Animation动画提供的几个属性如下: 属性名 属性值 animation-name 指定动画名称,该属性指定一个已有的关键帧定义。 animation-duration 指定动画持续时间。 animation-timing-funtion 指定动画变化速度。 animation-delay 指定动画延迟多长时间才开始执行。 animation-iteration-count 指定动画的循环执行次数。 animation:这是一个复合属性。
527 3
|
12月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
可爱狗狗的404动画HTML源码
可爱狗狗的404动画HTML源码
510 17
可爱狗狗的404动画HTML源码
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
1239 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
html5+svg太空人404动画模板源码
html5+svg太空人404动画模板源码
256 17
创意滑板动画404错误提示HTML源码
创意滑板动画404错误提示页面HTML源码
428 0
创意滑板动画404错误提示HTML源码
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
895 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子