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

轮播图的五种写法(原生、vue2、vue3、react类组件,react函数组件)

轮播图效果是一种在网页或应用程序中展示多张图片或内容的方式,通常以水平或垂直的方式循环播放。本文使用原生、vue2、vue3、react类组件,react函数组件五种写法实现了简单的轮播图效果,需要更多轮播效果需要再增加样式或者动画。

  1. 淡入淡出效果:每张图片渐渐淡入显示,然后渐渐淡出消失,过渡效果平滑。(使用CSS的@keyframesanimation属性)

    创建一个@keyframes,定义两个关键帧,一个是初始状态,一个是结束状态,其中透明度从0到1,将该动画应用到需要淡入淡出的元素上,使用animation属性指定动画名称、持续时间、动画效果等。

  2. 平移效果:每张图片从一侧平滑地移动到另一侧,形成连续的平移效果。(使用CSS的transformtransition属性)

    使用transform: translate(x, y);来实现平移效果,其中xy是水平和垂直方向上的平移距离。可以使用负值来实现反方向的平移。添加过渡效果来使平移更加平滑。使用transition: transform duration;来设置过渡效果的持续时间

  3. 缩放效果:每张图片从小到大或从大到小进行缩放,给人一种逐渐放大或缩小的感觉。(使用CSS的transform属性和scale()

  4. 旋转效果:每张图片围绕中心点进行旋转,形成连续的旋转效果。(使用CSS的transform属性和rotate()

实现轮播图的基本步骤:

  1. 创建一个包含轮播图图片的HTML结构,可以使用<ul><li>标签来创建一个图片列表。

  2. 使用CSS样式设置轮播图容器的宽度和高度,以及图片列表的宽度和高度,并设置overflow: hidden来隐藏超出容器范围的图片。

  3. 使用JavaScript获取轮播图容器和图片列表,并设置初始的索引值为0。

  4. 创建一个函数来切换图片,可以通过改变图片列表的left属性值来实现。可以使用transform属性或marginLeft属性来实现图片的平滑过渡。

  5. 创建一个定时器来自动切换图片,可以使用setInterval函数来设置定时器,每隔一段时间调用切换图片的函数。

  6. 监听轮播图容器的鼠标移入和移出事件,当鼠标移入时清除定时器,当鼠标移出时重新设置定时器。

  7. 监听轮播图容器的左右箭头点击事件,分别调用切换图片的函数来切换到上一张或下一张图片。

  8. 可以根据需要添加其他功能,比如添加指示器来显示当前图片的索引,点击指示器可以切换到对应的图片。

1. 使用原生js实现轮播图

HTML:

<div class="carousel"><div class="slides"><img src="image1.jpg" alt="Image 1"><img src="image2.jpg" alt="Image 2"><img src="image3.jpg" alt="Image 3"></div><button class="prev">Previous</button><button class="next">Next</button>
</div>

CSS:

.carousel {position: relative;width: 500px;height
http://www.lryc.cn/news/301422.html

相关文章:

  • 【MySQL】高度为2和3时B+树能够存储的记录数量的计算过程
  • 软件著作书 60页代码轻松搞定!(附exe和代码)
  • 阿里文档类图像的智能识别,文档分类自定义分类器
  • 256.【华为OD机试真题】会议室占用时间(区间合并算法-JavaPythonC++JS实现)
  • 人工智能学习与实训笔记(三):神经网络之目标检测问题
  • SSM框架,Spring-ioc的学习(下)
  • 【AIGC】Stable Diffusion的模型微调
  • VNCTF 2024 Web方向 WP
  • 第11章 GUI
  • 综合项目---博客
  • leetcode(矩阵)74. 搜索二维矩阵(C++详细解释)DAY7
  • 超详细||YOLOv8基础教程(环境搭建,训练,测试,部署看一篇就够)(在推理视频中添加FPS信息)
  • LeetCode171. Excel Sheet Column Number
  • pycharm创建py文件,自动带# -*- coding:utf-8 -*-
  • 希捷与索尼集团合作生产HAMR写头激光二极管
  • 电脑竖屏显示了怎么回复原状
  • Elasticsearch从入门到精通
  • Halcon 相机标定
  • 【JavaScript】深浅拷贝
  • CH32V3xx RT-Thread RS485实现modbus rtu master
  • 当网站遭到DDOS攻击怎么办?
  • ES6中的数组解构赋值【详解】
  • error An unexpected error occurred: “https://registry.npm.taobao.org
  • react中commit工作流程
  • C++类和对象-多态->多态的基本语法、多态的原理剖析、纯虚函数和抽象类、虚析构和纯虚析构
  • QShortcut
  • 浅谈语义分割、图像分类与目标检测中的TP、TN、FP、FN
  • Python基础教程:解构
  • Java 学习和实践笔记(12)
  • 学习数据结构和算法的第9天