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

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

目录

前言

一、轮播图是什么?

二、实现方法

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 += 1
      i %= 5

      img.src = imageUrls[i]
    }, 3000);

    // 4.当鼠标悬停在轮播图上面时,停止自动轮播 --- 销毁定时器
    carousel.addEventListener('mouseenter', () => {
      clearInterval(timer)
    })

    // 5.当鼠标离开时,开始自动轮播 --- 重新开启定时器
    carousel.addEventListener('mouseleave', () => {
      timer = setInterval(() => {
        i += 1
        i %= 5

        img.src = imageUrls[i]
      }, 3000);
    })

    // 6.点击左右箭头时,进行图片的切换 --- 用事件委托来实现
    carousel.addEventListener('click', (e) => {
      // 判断所点击的是左箭头,还是右箭头
      if (e.target.classList.contains('pre')) {
        i += 4
        i %= 5

        img.src = imageUrls[i]
      }
      if (e.target.classList.contains('next')) {
        i += 1
        i %= 5

        img.src = imageUrls[i]
      }
    })

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

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

 

2.使用组件来快速实现

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

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


总结

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


http://www.kler.cn/a/463914.html

相关文章:

  • 深入Android架构(从线程到AIDL)_10 主线程(UI 线程)的角色
  • 交换机关于环路、接口绑定、链路聚合的相关知识
  • React-Router 一站式攻略:从入门到精通,掌握路由搭建与权限管控
  • 【工具推荐】XSS 扫描器-XSStrike
  • 【网络】什么是路由协议(Routing Protocols)?常见的路由协议包括RIP、OSPF、EIGRP和BGP
  • 46. Three.js案例-创建颜色不断变化的立方体模型
  • CSS 实现无限滚动的列表
  • Unity+Hybridclr发布WebGL记录
  • 自动化运维脚本的最佳设计模式与开发指南
  • css的长度单位有那些?
  • 工业软件发展添动力 深圳龙华与华为云再聚“首”
  • Redis--缓存穿透、击穿、雪崩以及预热问题(面试高频问题!)
  • pytorch将数据与模型都放到GPU上训练
  • OpenGL ES 04 图片数据是怎么写入到对应纹理单元的
  • chatwoot 开源客服系统搭建
  • 安卓入门五 BroadcastReceiver
  • ARM/Linux嵌入式面经(六二):诺瓦星云
  • 年会投票小游戏
  • MySQL标准合规
  • 【ubuntu】安装OpenSSH服务器
  • 攻防世界web第六题upload1
  • 如何使用交叉编译器调试C语言程序在安卓设备中运行
  • 计算机网络原理(谢希仁第八版)第3章课后习题答案
  • vscode ssh远程连接已配置好仍然不能自动登录问题解决
  • java的bio、nio、aio 以及操作系统的select、poll、epoll
  • 【开源免费】基于SpringBoot+Vue.JS校园社团信息管理系统(JAVA毕业设计)