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

JavaScrip轮播图

前言

        在网页设计中,轮播图(Carousel)已经成为一种常见的元素,用于展示一系列的图片或内容卡片。它们不仅能够吸引用户的注意力,还能节省空间,使得用户可以在有限的空间内获得更多的信息。今天,我们将一起学习如何从零开始,用原生JavaScript打造一个简单而美观的轮播图组件。

具体代码实现

        JS轮播图的实现核心是使用JavaScript来控制图片的切换和显示,配合HTML和CSS完成布局和样式设置。通过定时器实现图片的自动切换。

1、HTML部分

它描述了一个包含图片、标题、指示器和切换按钮的轮播图组件。

<div class="slider"><div class="slider-wrapper"><img src="./images/slider01.jpg" alt="" /></div><div class="slider-footer"><p>对人类来说会不会太超前了?</p><ul class="slider-indicator"><li ></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>
  • 这段HTML代码定义了一个名为"slider"的div容器,其中包含两个子容器:一个名为"slider-wrapper"的div和一个名为"slider-footer"的div。
  • 在"slider-wrapper"中,有一个img标签用于显示轮播图的图片。
  • 在"slider-footer"中,有一个p标签用于显示标题文本“对人类来说会不会太超前了?”。
  • 接下来是一个名为"slider-indicator"的ul列表,其中包含8个li元素,这些元素将用作指示器,以显示当前图片的位置和轮播图中的其他图片。
  • 最后,在"toggle" div中,有两个按钮,一个名为"prev",另一个名为"next",它们将用于切换到前一张或后一张图片。

2、css部分

这段CSS代码定义了轮播图组件的样式。

 <style>* {box-sizing: border-box;}.slider {width: 560px;height: 400px;overflow: hidden;}.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;}</style>
  • 首先,使用通配符选择器 * 将 box-sizing 属性设置为 border-box,以确保元素的宽度和高度包括边框和内边距。
  • 接下来,为"slider"容器设置宽度、高度和溢出隐藏属性,以限制其大小并隐藏超出部分的内容。
  • 然后,为"slider-wrapper"容器设置宽度和高度,并将其子元素 img 的宽度和高度设置为100%,以便图片填充整个容器。
  • 接着,为"slider-footer"容器设置高度、背景颜色、内边距和相对定位属性,以便在底部显示标题文本和切换按钮。
  • 然后,为"toggle"容器设置绝对定位属性,将其放置在"slider-footer"的右上角。
  • 接下来,为"toggle"容器中的按钮设置外观、边框、背景、颜色、圆角、光标等样式,并添加悬停效果。
  • 然后,为"slider-footer"容器中的段落设置颜色、字体大小和下边距等样式。
  • 最后,为"slider-indicator"列表设置列表样式、对齐方式等样式,并为列表项设置宽度、高度、边距、背景颜色、透明度等样式,以及激活状态的样式。

3、js部分 

这段代码是一个简单的轮播图实现,首先定义了一个包含图片、标题和颜色的数组,然后随机选择一个元素作为初始显示内容。接着设置图片、标题和背景颜色。最后通过定时器每隔1秒切换到下一个元素。

// 1. 初始数据const sliderData = [{ url: './images/slider01.jpg', title: '对人类来说会不会太超前了?', color: 'rgb(100, 67, 68)' },{ url: './images/slider02.jpg', title: '开启剑与雪的黑暗传说!', color: 'rgb(43, 35, 26)' },{ url: './images/slider03.jpg', title: '真正的jo厨出现了!', color: 'rgb(36, 31, 33)' },{ url: './images/slider04.jpg', title: '李玉刚:让世界通过B站看到东方大国文化', color: 'rgb(139, 98, 66)' },{ url: './images/slider05.jpg', title: '快来分享你的寒假日常吧~', color: 'rgb(67, 90, 92)' },{ url: './images/slider06.jpg', title: '哔哩哔哩小年YEAH', color: 'rgb(166, 131, 143)' },{ url: './images/slider07.jpg', title: '一站式解决你的电脑配置问题!!!', color: 'rgb(53, 29, 25)' },{ url: './images/slider08.jpg', title: '谁不想和小猫咪贴贴呢!', color: 'rgb(99, 72, 114)' },]const img =document.querySelector('.slider-wrapper img')const pp =document.querySelector('.slider-footer p')const footer =document.querySelector('.slider-footer')let i=0function func(){img.src=sliderData[i].urlpp.innerHTML=sliderData[i].titleconst li = document.querySelector(`.slider-indicator li:nth-child(${i+1})`)li.classList.add('active')footer.style.backgroundColor=sliderData[i].colorif (i==0) {const lii = document.querySelector(`.slider-indicator li:nth-child(${sliderData.length})`)lii.classList.remove('active')}else {const liii = document.querySelector(`.slider-indicator li:nth-child(${i})`)liii.classList.remove('active')};i++if (i==sliderData.length) {i=0};console.log(i)}let n=setInterval(func, 1000)

4、代码效果

 

 总结

        以上就是使用原生JavaScript实现简单轮播图的方法。虽然现代前端开发中有许多现成的库和框架可以提供更复杂的轮播图组件,但理解其背后的基本原理对于提高编程技能仍然非常重要。希望这篇文章能帮助你掌握如何使用原生JavaScript创建轮播图,从而为你的项目增添更多交互性和视觉吸引力。

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

相关文章:

  • 达梦8 网络中断对系统的影响
  • OpenAI发布GPT-4思维破解新策略,Ilya亦有贡献!
  • [消息队列 Kafka] Kafka 架构组件及其特性(二)Producer原理
  • faiss ivfpq索引构建
  • ffmpeg视频编码原理和实战-(2)视频帧的创建和编码packet压缩
  • 数据结构:线索二叉树
  • 宝塔Linux面板-Docker管理(2024详解)
  • 【Linux】进程(8):Linux真正是如何调度的
  • R语言探索与分析14-美国房价及其影响因素分析
  • golang websocket 数据处理和返回JSON数据示例
  • 【Mac】Downie 4 for Mac(视频download工具)兼容14系统软件介绍及安装教程
  • 【操作系统】进程与线程的区别及总结(非常非常重要,面试必考题,其它文章可以不看,但这篇文章最后的总结你必须要看,满满的全是干货......)
  • 自动驾驶仿真(高速道路)LaneKeeping
  • 数据挖掘实战-基于Catboost算法的艾滋病数据可视化与建模分析
  • 分水岭算法分割和霍夫变换识别图像中的硬币
  • 什么是AVIEXP提前发货通知?
  • Python 之SQLAlchemy使用详细说明
  • 就业班 第四阶段(docker) 2401--5.29 day3 Dockerfile+前后段项目若依ruoyi
  • 【运维项目经历|026】Redis智能集群构建与性能优化工程
  • Linux编程for、while循环if判断以及case语句用法
  • docker命令 docker ps -l (latest)命令在 Docker 中用于列出最近一次创建的容器
  • inflight 守恒和带宽资源守恒的有效性
  • 短视频直播教学课程小程序的作用是什么
  • Open AI又出王炸GPT-4,目测一大波人的饭碗要碎了...
  • 8086 汇编笔记(八):转移指令的原理
  • win 系统 cmd 命令从私库上传,下载jar包
  • dots_image 增强图像中的圆点特征
  • 代码随想录算法训练营第十五天| 110.平衡二叉树、 257. 二叉树的所有路径、404.左叶子之和
  • MSP430单片机控制流水灯,Proteus仿真
  • 出售iPhone前的必做步骤:完全擦除个人数据的方法