实现一个移动端焦点轮播图

 HTML结构

创建一个轮播图的容器,并在其中放置轮播图片。

<div id="carousel">  <div class="carousel-item active">  <img src="image1.jpg" alt="Image 1">  </div>  <div class="carousel-item">  <img src="image2.jpg" alt="Image 2">  </div>  <!-- 更多图片... -->  
</div>  <button id="prevBtn">上一张</button>  
<button id="nextBtn">下一张</button>
  1. CSS样式:为轮播图和按钮添加样式。

#carousel {  position: relative;  overflow: hidden;  width: 100%;  height: 0;  padding-bottom: 56.25%; /* 16:9 Aspect Ratio */  
}  .carousel-item {  position: absolute;  top: 0;  left: 100%;  width: 100%;  height: 100%;  transition: left 0.5s ease-in-out;  
}  .carousel-item img {  width: 100%;  height: 100%;  object-fit: cover;  
}  .carousel-item.active {  left: 0;  
}  #prevBtn, #nextBtn {  position: absolute;  top: 50%;  transform: translateY(-50%);  background-color: rgba(0, 0, 0, 0.5);  color: white;  border: none;  padding: 10px;  cursor: pointer;  
}  #prevBtn {  left: 10px;  
}  #nextBtn {  right: 10px;  
}

 JavaScript逻辑

使用JavaScript来控制轮播图的切换

 

// 模拟接口返回的图片数量  
const imageCount = 5;  // 获取DOM元素  
const carousel = document.getElementById('carousel');  
const prevBtn = document.getElementById('prevBtn');  
const nextBtn = document.getElementById('nextBtn');  // 创建轮播图项  
for (let i = 0; i < imageCount; i++) {  const item = document.createElement('div');  item.classList.add('carousel-item');  const img = document.createElement('img');  img.src = `image${i + 1}.jpg`;  img.alt = `Image ${i + 1}`;  item.appendChild(img);  carousel.appendChild(item);  
}  // 设置初始激活状态  
carousel.querySelector('.carousel-item').classList.add('active');  // 上一张/下一张图片  
let currentIndex = 0;  
prevBtn.addEventListener('click', () => {  currentIndex--;  if (currentIndex < 0) currentIndex = imageCount - 1;  updateCarousel();  
});  nextBtn.addEventListener('click', () => {  currentIndex++;  if (currentIndex >= imageCount) currentIndex = 0;  updateCarousel();  
});  // 更新轮播图  
function updateCarousel() {  const items = carousel.querySelectorAll('.carousel-item');  items.forEach(item => item.classList.remove('active'));  items[currentIndex].classList.add('active');  
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/714878.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/714878.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker部署ZooKeeper

在分布式系统中,ZooKeeper是一个关键的组件,用于协调和管理多个节点之间的状态。本文将详细介绍如何使用Docker安装和部署ZooKeeper,包括非集群部署和集群部署两种情况。 非集群部署 前期准备 在开始之前,请确保你已经安装了Docker,并且拥有sudo权限。 关闭防火墙和SEL…

5、DVWA代码审计(2)

一、csrf 1、csrf(low) 限制 复现 GET /vulnerabilities/csrf/?password_new123456&password_conf123456&ChangeChange HTTP/1.1 Host: ddd.com Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,…

电子电器架构 —— DoIP协议相关的介绍

电子电器架构 —— DoIP协议相关的介绍 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在世,最怕…

监听者的力量:探索观察者模式和spring使用

观察者模式是一种对象行为型设计模式&#xff0c;它定义了对象之间的一对多依赖关系。 观察者模式通常用于实现分布式事件处理系统、新闻代理或MVC框架的一部分。在这种模式中&#xff0c;一个对象&#xff08;称为“主题”或“可观察对象”&#xff09;维护一系列依赖于它的对…

vue3编写H5适配横竖屏

具体思路如下&#xff1a; 1、监听浏览器屏幕变化&#xff0c;通过监听屏幕宽高&#xff0c;辨别出是横屏&#xff0c;还是竖屏状态 在项目的起始根页面进行监听&#xff0c;我就是在App.vue文件下进行监听 代码如下&#xff1a; <template><RouterView /> <…

【Spring IoC】实验四:特殊值处理

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

Java4种创建线程方式

目录 一&#xff1a;继承Thread 二&#xff1a;重新Runnable接口 三&#xff1a;Callable 四&#xff1a;lambda 一&#xff1a;继承Thread public static void main(String[] args) {Thread1 t1new Thread1();t1.start(); } class Thread1 extends Thread {Overridepublic…

C++ //练习 10.16 使用lambda编写你自己版本的biggies。

C Primer&#xff08;第5版&#xff09; 练习 10.16 练习 10.16 使用lambda编写你自己版本的biggies。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /*******************************************************************…

BERTopic安装最全教程及报错处理

BERTopic安装 BERTopic的安装比较复杂,直接安装会报错 安装方法1,.whl文件安装 ERROR: Could not build wheels for hdbscan, which is required to install pyproject.toml-based projects正确安装流程 查看python能安装whl的版本pip debug --verbose Compatible tags: 2…

图表背后的智慧:办公场景中的数据可视化革新

在现代办公场景中&#xff0c;数据可视化的应用已经成为提高效率、推动创新的得力工具。无论是管理层还是普通员工&#xff0c;都能从数据可视化中受益匪浅。下面我就以可视化从业者的角度&#xff0c;简单聊聊这个话题。 首先&#xff0c;数据可视化提升了数据的易读性与理解性…

docker安装最新版lastest

docker pull mysql 报missing signature key错误问题原因&#xff1a;如果安装docker用的是yum install docker命令的话&#xff0c;下载下来的docker版本为旧版本&#xff0c;所以会有数字签名有问题 最新版docker安装方法&#xff1a; 卸载旧版本 Docker&#xff08;如果已安…

【研发日记】Matlab/Simulink技能解锁(三)——在Stateflow编辑窗口Debug

文章目录 前言 State断点 Transition断点 条件断点 按State步进 Watch Data Value Sequence Viewer 分析和应用 总结 前言 见《【研发日记】Matlab/Simulink技能解锁(一)——在Simulink编辑窗口Debug》 见《【研发日记】Matlab/Simulink技能解锁(二)——在Function编辑…

AQS(抽象队列同步器)

什么是AQS? AQS&#xff08;AbstractQueuedSynchronizer&#xff09;是Java中用于实现锁和同步器的基础框架。它是一个抽象类&#xff0c;提供了一种灵活且强大的方式来实现各种同步器&#xff0c;如ReentrantLock、Semaphore、CountDownLatch等 AQS实现原理&#xff1f; 1、…

Flink状态存储-StateBackend

文章目录 前言一、MemoryStateBackend二、FSStateBackend三、RocksDBStateBackend四、StateBackend配置方式五、状态持久化六、状态重分布OperatorState 重分布KeyedState 重分布 七、状态过期 前言 Flink是一个流处理框架&#xff0c;它需要对数据流进行状态管理以支持复杂的…

10个技巧,3分钟教会你高效寻找开源项目

作为程序员&#xff0c;不论是开发还是学习&#xff0c;肯定会用到开源项目&#xff0c;那么怎么快速在开源网站找到这些项目呢&#xff1f; 常用的开源网站有&#xff1a;github 和 gitee github是全球最大的开源社区&#xff0c;今天就以github为例&#xff0c;演示一下 gi…

【vue】vue中数据双向绑定原理/响应式原理,mvvm,mvc、mvp分别是什么

关于 vue 的原理主要有两个重要内容&#xff0c;分别是 mvvm 数据双向绑定原理&#xff0c;和 响应式原理 MVC&#xff08;Model-View-Controller&#xff09;&#xff1a; Model&#xff08;模型&#xff09;&#xff1a;表示应用程序的数据和业务逻辑。View&#xff08;视图&…

edge 安装笔记

依赖项&#xff1a; jukebox 下载代码GitHub - rodrigo-castellon/jukebox 拷贝到根目录即可&#xff0c;文件夹留一个根目录jukebox vqvae_cache_path cache_dir "/vqvae.pth.tar" prior_cache_path cache_dir "/prior_level_2.pth.tar"

JavaWeb之 Servlet(2万6千字详解)

目录 前言1. Servlet 简介2. Servlet 前世今生3. Servlet 执行流程4. Servlet 快速入门5. 两种配置 Servlet程序 URL的方式5.1 使用 注解来配置 Servlet程序 的 URL5.1.1 urlPattern 的配置规则精确匹配目录匹配&#xff1a;使用 * 符号代表任意路径扩展名匹配任意匹配 5.1.2 小…

【MATLAB】语音信号识别与处理:SG滤波算法去噪及谱相减算法呈现频谱

1 基本定义 SG 滤波算法&#xff08;Savitzky - Golay 滤波算法&#xff09;是一种数字信号处理算法&#xff0c;用于对信号进行平滑处理。该算法利用最小二乘法拟合局部数据段&#xff0c;然后用拟合的函数来估计每个数据点的值&#xff0c;从而实现平滑处理。 SG 滤波算法的…

redis05 sprngboot整合redis

redis的Java客户端 整合步骤 添加redis的pom依赖 <!-- 引入redis依赖 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency><!-- 引入redis连…