当前位置: 首页 > news >正文

前端:轮播图常见的几种实现方式

目录

前言

一、轮播图是什么?

二、实现方法

1.使用纯 HTML、CSS、JavaScript 实现

2.使用组件来快速实现

总结



前言

在学习前端的过程中,总是有要实现轮播图效果的时候,本文就介绍了轮播图常见的几种实现方式。


一、轮播图是什么?

轮播图是在首页上展示信息的一种方式,为了让用户不用滚动屏幕就能看到更多内容,可以利用轮播图来最大化信息密度。

二、实现方法

1.使用纯 HTML、CSS、JavaScript 实现

HTML代码如下:

<div class="carousel"><img src="./assets/banner1.png" alt=""><span class="pre">&lt;</span><span class="next">&gt;</span>
</div>

CSS代码如下:

    * {padding: 0;margin: 0;}/* 轮播图 */.carousel {position: relative;margin: 100px auto;width: 1240px;height: 500px;}/* 左右切换箭头 */.pre,.next {position: absolute;top: 50%;transform: translateY(-50%);width: 20px;height: 40px;background-color: rgba(0, 0, 0, 0.3);text-align: center;line-height: 40px;color: #fff;opacity: 0;transition: all 0.3s;cursor: pointer;}.pre {left: 0;border-radius: 0 20px 20px 0;}.next {right: 0;border-radius: 20px 0 0 20px;}.carousel:hover .pre,.carousel:hover .next {opacity: 1;}

JS代码如下:

    /*** 轮播图实现的基本流程* 1.数据准备 --- 遍历数组来实现轮播效果* 2.获取对象* 3.自动播放 --- 用定时器实现* 4.当鼠标悬停在轮播图上面时,停止自动轮播 --- 销毁定时器* 5.当鼠标离开时,开始自动轮播 --- 重新开启定时器* 6.点击左右箭头时,进行图片的切换 --- 用事件委托来实现*/// 1.数据准备 --- 遍历数组来实现轮播效果const imageUrls = ['./assets/banner1.png', './assets/banner2.png', './assets/banner3.png', './assets/banner4.png', './assets/banner5.png']let i = 0// 2.获取对象const carousel = document.querySelector('.carousel')const img = document.querySelector('img')// 3.自动播放 --- 用定时器实现let timer = setInterval(() => {i += 1i %= 5img.src = imageUrls[i]}, 3000);// 4.当鼠标悬停在轮播图上面时,停止自动轮播 --- 销毁定时器carousel.addEventListener('mouseenter', () => {clearInterval(timer)})// 5.当鼠标离开时,开始自动轮播 --- 重新开启定时器carousel.addEventListener('mouseleave', () => {timer = setInterval(() => {i += 1i %= 5img.src = imageUrls[i]}, 3000);})// 6.点击左右箭头时,进行图片的切换 --- 用事件委托来实现carousel.addEventListener('click', (e) => {// 判断所点击的是左箭头,还是右箭头if (e.target.classList.contains('pre')) {i += 4i %= 5img.src = imageUrls[i]}if (e.target.classList.contains('next')) {i += 1i %= 5img.src = imageUrls[i]}})

 在以上代码中,首先是准备好了结构和样式,并且数据是存在数组里的,这样方便后续做图片的自动播放以及手动切换。

自动播放主要是用定时器来实现,手动切换则是运用了事件委托,具体流程也在上面的代码中进行了比较清晰的注释,有兴趣的话可以看一下。

 

2.使用组件来快速实现

实现轮播图效果,除以上方法外,其实还有很多方法。而在这些方法中,最方便快速的可以说就是使用组件了。比如说 swiper ,vant-ui 等组件,用这些组件就可以快速的实现轮播图,至于具体如何来使用组件,那就要看组件的官方文档了。

只不过要提一嘴的是,虽然有组件来帮助我们快速实现一些效果,但终究还是要会自己手动实现的,这样才能更好的提高自身能力。


总结

以上就是今天要讲的内容,本文简单介绍了一些实现轮播图效果的方法,可以得出结论,轮播图并不难实现。最后,希望本文能对您有所帮助。

http://www.lryc.cn/news/513730.html

相关文章:

  • Pytest基础01: 入门demo脚本
  • ruoyi 多租户 开启后针对某一条sql不适用多租户; 若依多租户sql规则修改
  • driftingblues6靶机
  • Neo4j GDS 2.0 安装与配置
  • A*算法与人工势场法结合的路径规划(附MATLAB源码)
  • BootstrapTable处理表格
  • UniApp 打开文件工具,获取文件类型,判断文件类型
  • docker-开源nocodb,使用已有数据库
  • Mysql COUNT() 函数详解
  • 单周期CPU电路设计
  • 从零开始采用命令行创建uniapp vue3 ts springboot项目
  • 跟着逻辑先生学习FPGA-实战篇第一课 6-1 LED灯闪烁实验
  • springboot 跨域配置
  • C语言宏和结构体的使用代码
  • 微信小程序 覆盖组件cover-view
  • 【Redis知识】Redis进阶-redis还有哪些高级特性?
  • 【Pytorch实用教程】深入了解 torchvision.models.resnet18 新旧版本的区别
  • 攻防世界 - Web - Level 3 | very_easy_sql
  • 使用Java Selenium修改打开页面窗口大小
  • 基于BiLSTM和随机森林回归模型的序列数据预测
  • 【Vim Masterclass 笔记04】S03L12:Vim 文本删除同步练习课 + S03L13:练习课点评
  • [AI] 深度学习的“黑箱”探索:从解释性到透明性
  • 网络安全技能试题总结参考
  • 【翻译】优化加速像素着色器执行的方法
  • 赛博周刊·2024年度工具精选(图片资源类)
  • 【深度学习基础之多尺度特征提取】多尺度图像增强(Multi-Scale Image Augmentation)是如何在深度学习网络中提取多尺度特征的?附代码
  • Spring Boot项目启动时显示MySQL连接数已满的错误
  • 小程序多入口对应指定客服的实现方案:小程序如何实现接入指定客服人员?
  • 网页单机版五子棋小游戏项目练习-初学前端可用于练习~
  • 【玩转23种Java设计模式】行为型模式篇:命令模式