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)
})
相关文章
|
1天前
|
前端开发 JavaScript
用HTML CSS JS打造企业级官网 —— 源码直接可用
必看!用HTML+CSS+JS打造企业级官网-源码直接可用,文章代码仅用于学习,禁止用于商业
19 1
|
2天前
|
Web App开发 前端开发 JavaScript
如何在不牺牲动画效果的前提下,优化 CSS3 动画的性能?
如何在不牺牲动画效果的前提下,优化 CSS3 动画的性能?
6 1
|
7天前
|
移动开发 HTML5
HTML5熊猫弹跳手机小游戏源码
一款html5手机端小游戏源码,熊猫跳跃小游戏源码下载。熊猫脚底有弹簧,长按变化力度跳跃,计分游戏,html5手机熊猫也疯狂小游戏源代码。
24 5
|
9天前
|
JavaScript
JS鼠标框选并删除HTML源码
这是一个js鼠标框选效果,可实现鼠标右击出现框选效果的功能。右击鼠标可拖拽框选元素,向下拖拽可实现删除效果,简单实用,欢迎下载
19 4
|
10天前
|
移动开发 HTML5
HTML5实现手机端红包下落抢红包特效源码
HTML5实现手机端红包下落抢红包特效源码是一款手机移动端的抢红包小游戏源码下载。红包像下雪一样,点击抓我呀,可以抢红包,需要此款代码的朋友们可以前来下载使用。本段代码兼容目前最新的各类主流浏览器,是一款非常优秀的特效源码。
27 4
|
8天前
|
移动开发 HTML5
html5+three.js公路开车小游戏源码
html5公路开车小游戏是一款html5基于three.js制作的汽车开车小游戏源代码,在公路上开车网页小游戏源代码。
27 0
html5+three.js公路开车小游戏源码
|
11天前
基于CSS3 SVG实现带表情的投票打分源码
投票打分插件是基于CSS3和SVG的,它的特点是对于不同的评级会有不同的表情,比如1星是失落的表情,5分是帅酷的表情
19 3
|
6天前
|
前端开发 JavaScript 安全
HTML+CSS+JS密码灯登录表单
通过结合使用HTML、CSS和JavaScript,我们创建了一个带有密码强度指示器的登录表单。这不仅提高了用户体验,还帮助用户创建更安全的密码。希望本文的详细介绍和代码示例能帮助您在实际项目中实现类似功能,提升网站的安全性和用户友好性。
15 3
|
17天前
|
JSON 移动开发 数据格式
html5+css3+js移动端带歌词音乐播放器代码
音乐播放器特效是一款html5+css3+js制作的手机移动端音乐播放器代码,带歌词显示。包括支持单曲循环,歌词显示,歌曲搜索,音量控制,列表循环等功能。利用json获取音乐歌单和歌词,基于html5 audio属性手机音乐播放器代码。
66 6
|
2月前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)

热门文章

最新文章