创建自动轮播图:J*aScript 实现指南


创建自动轮播图:javascript 实现指南

本文旨在帮助开发者构建一个自动轮播图,解决手动切换和自动播放的问题。我们将提供完整的 HTML、CSS 和 J*aScript 代码示例,并详细解释实现原理,确保即使是 J*aScript 新手也能轻松掌握。重点在于理解 J*aScript 如何控制轮播图的自动切换和手动控制逻辑,以及如何优化 CSS 样式以实现平滑的过渡效果。

HTML 结构

轮播图的 HTML 结构主要包含以下几个部分:

  • 容器 slider-banners: 包含整个轮播图的所有元素。
  • 左右箭头按钮 slider-button_left 和 slider-button_right: 用于手动切换图片。
  • 图片容器 sliderbox: 包含所有轮播的图片。
  • 图片元素 sliderbox_image: 每个元素包含一张图片。
  • 指示器按钮 slider-selectors_buttons: 用于指示当前显示的图片,并允许用户直接跳转到特定图片。
<div class="slider-banners">
  <button class="slider-button_left" style="left: 30px;"><i class="fa-solid fa-angle-left" style="font-size: 30px; color: #ffffff;"></i></button>
  <div class="sliderbox">
    <div class="sliderbox_image active">@@##@@</div>
    <div class="sliderbox_image">@@##@@</div>
    <div class="sliderbox_image">@@##@@</div>
    <div class="sliderbox_image">@@##@@</div>
    <div class="sliderbox_image">@@##@@</div>
    <div class="sliderbox_image">@@##@@</div>
    <div class="sliderbox_image">@@##@@</div>
    <div class="sliderbox_image">@@##@@</div>
  </div>
  <button class="slider-button_right" style="right: 30px;"><i class="fa-solid fa-angle-right" style="font-size: 30px; color: #ffffff;"></i></button>
  <ul class="slider-selectors_buttons">
    <li class="active"></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
  </ul>
</div>
<script src="https://kit.fontawesome.com/6b2cfcf1a5.js" crossorigin="anonymous"></script>

CSS 样式

CSS 样式主要用于控制轮播图的布局、外观和动画效果。以下是一些关键的 CSS 样式:

Facetune Facetune

一款在线照片和视频编辑工具,允许用户创建AI头像

Facetune 109 查看详情 Facetune
  • .sliderbox: 设置 position: relative 和 overflow: hidden,确保图片超出容器时被隐藏。
  • .sliderbox_image: 使用 position: absolute 将所有图片堆叠在一起,并通过 opacity 控制图片的显示和隐藏。
  • .sliderbox_image.active: 设置 opacity: 1 和 position: relative 使当前图片显示出来。
  • .sliderbox_image.inactive: 用于在切换时,先让上一张图片显示(opacity: 1),再通过 J*aScript 移除这个 class。
  • .slider-selectors_buttons: 用于指示器按钮的布局和样式。
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: "Times New Roman", Times, serif;
  background-color: #4d4d4d;
  margin: 0;
  padding: 0;
}

.slider-banners {
  display: flex;
  justify-content: center;
  height: auto;
  width: 100%;
  position: relative;
}

.sliderbox {
  position: relative;
  height: 380px;
  width: 100%;
  text-align: center;
  overflow: hidden;
}

.sliderbox_image {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  height: auto;
  width: 100%;
  opacity: 0;
}

.sliderbox_image.inactive {
  opacity: 1;
}

.sliderbox_image.active {
  opacity: 1;
  position: relative;
}

.slider_image img {
  width: 100%;
  height: auto;
  text-align: center;
}

.slider-button_left,
.slider-button_right {
  position: absolute;
  display: block;
  padding: 8px;
  background-color: #66323129;
  align-self: center;
  border: none;
  border-radius: 5px;
  transition: 0.4s ease;
  z-index: 1000;
  cursor: pointer;
}

.slider-button_left:hover,
.slider-button_right:hover {
  background-color: #663231f0;
  transform: translateX(2px);
  padding: 10px;
}

.slider-selectors_buttons {
  display: flex;
  width: 100%;
  position: absolute;
  list-style: none;
  bottom: -30px;
  justify-content: space-evenly;
}

.slider-selectors_buttons li {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  border: 1px solid black;
}

.slider-selectors_buttons li.active {
  background-color: black;
}

.dissable-s {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  margin: 15px 5px;
  cursor: pointer;
  background-color: #66323129;
  border-color: #000000a0;
}

.dissable-s:hover {
  background-color: #663231f0;
  border-color: #000000cb;
}

.active-s {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  margin: 15px 5px;
  cursor: pointer;
  background-color: #f47b3e;
  border-color: #000000cb;
}

J*aScript 实现

J*aScript 代码负责实现轮播图的自动播放、手动切换和指示器按钮的联动。

  1. 获取 DOM 元素: 首先,获取所有需要操作的 DOM 元素,包括容器、图片、按钮和指示器。
  2. 初始化: 设置初始状态,例如当前显示的图片索引。
  3. 自动播放: 使用 setTimeout 函数定时切换图片。
  4. 手动切换: 为左右箭头按钮添加事件监听器,点击时切换到上一张或下一张图片。
  5. 指示器按钮: 为每个指示器按钮添加事件监听器,点击时切换到对应的图片。
  6. 图片切换函数 playSlide(slide): 这个函数是核心,负责更新图片的显示状态和指示器按钮的激活状态。
let sliderBanners = document.querySelector(".slider-banners"),
  dots = document.querySelectorAll(".slider-selectors_buttons li"),
  sliderContent = document.querySelectorAll(".slider-banners .sliderbox_image"),
  leftArrow = document.querySelector(".slider-button_left"),
  rightArrow = document.querySelector(".slider-button_right"),
  sliderSpeed = 4500,
  currentSlide = 0,
  currentActive = 0,
  sliderTimer;

window.onload = function() {
  function playSlide(slide) {
    for (let i = 0; i < dots.length; i++) {
      sliderContent[i].classList.remove("active");
      sliderContent[i].classList.remove("inactive");
      dots[i].classList.remove("active");
    }
    if (slide < 0) {
      slide = currentSlide = sliderContent.length - 1;
    }
    if (slide > sliderContent.length - 1) {
      slide = currentSlide = 0;
    }
    if (currentActive != currentSlide) {
      sliderContent[currentActive].classList.add("inactive");
    }
    sliderContent[slide].classList.add("active");
    dots[slide].classList.add("active");
    currentActive = currentSlide;

    clearTimeout(sliderTimer);
    sliderTimer = setTimeout(function() {
      playSlide((currentSlide += 1));
    }, sliderSpeed);
  }
  leftArrow.addEventListener("click", () => {
    playSlide((currentSlide -= 1));
  });
  rightArrow.addEventListener("click", () => {
    playSlide((currentSlide += 1));
  });
  for (let j = 0; j < dots.length; j++) {
    dots[j].addEventListener("click", () => {
      playSlide((currentSlide = dots.indexOf(this)));
    });
  }
  playSlide(currentSlide);
};

注意事项

  • 图片路径: 确保图片路径正确,否则轮播图将无法显示图片。
  • CSS 样式: CSS 样式对于轮播图的外观和动画效果至关重要,请根据需要进行调整。
  • J*aScript 代码: J*aScript 代码是轮播图的核心,需要仔细检查逻辑是否正确。
  • 性能优化: 如果轮播图包含大量图片,可以考虑使用图片懒加载等技术来优化性能。

总结

通过本文的教程,您应该能够创建一个基本的自动轮播图。您可以根据自己的需求,进一步扩展和优化轮播图的功能和样式。例如,可以添加过渡动画、自定义指示器样式、支持触摸滑动等。记住,理解 HTML 结构、CSS 样式和 J*aScript 逻辑是构建任何 Web 应用的基础。

创建自动轮播图:JavaScript 实现指南创建自动轮播图:JavaScript 实现指南创建自动轮播图:JavaScript 实现指南创建自动轮播图:JavaScript 实现指南创建自动轮播图:JavaScript 实现指南创建自动轮播图:JavaScript 实现指南创建自动轮播图:JavaScript 实现指南创建自动轮播图:JavaScript 实现指南

以上就是创建自动轮播图:J*aScript 实现指南的详细内容,更多请关注其它相关文章!


# 背景色  # 昆明电机厂网站建设  # 网站推广的工作好做吗  # 湖州seo搜索优化  # 惠东网站推广平台  # 六安网站排名推广营销  # 网站建设投资回报怎么写  # 西湖区推广网站平台  # 汽车推广官方网站是什么  # 国产精品seo  # 浠水抖音SEO公司  # 相关文章  # 您可以  # 也能  # 几个  # css  # 自己的  # 切换到  # 加载  # 自动播放  # 两种  # overflow  # win  # ssl  # 懒加载  # js  # html  # java  # javascript 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894 】


相关推荐: mysql归档数据怎么导出为csv_mysql归档数据导出为csv文件的方法  PHP 4 函数中引用参数的默认值限制与解决方案  使用逻辑应用(Logic Apps)自动处理邮件附件中的XML到Excel  J*aScript模拟悬停与点击:自动化网页动态元素交互指南  《小宇宙》标记不友善评论方法  服装短视频如何起号推广?服装短视频起号推广有什么要求?  谷歌邮箱怎么换绑定邮箱Gmail安全备份邮箱修改方法  苹果自助维修计划支持哪些设备机型  123平台官方登录入口 123邮箱网页端在线沟通工具  秋风萧瑟洪波涌起中的萧瑟指的是什么  电脑双系统如何安装和卸载 Windows和Linux双系统安装教程【详解】  123网页端官方登录页 123邮箱网页版即时通讯服务  Dash应用多值文本输入处理与类型转换教程  歌词怎么展示在|直播|间视频号?有什么注意事项?  微星主板BIOS怎么调整内存时序_内存参数手动优化BIOS设置教程  解决CSS布局中意外顶部空白问题的教程  偃武诸葛亮阵容搭配推荐  优化Flask模板中SQLAlchemy查询迭代标签:处理字符串空格问题  虫虫助手如何更新游戏  向日葵客户端怎么进行语音通话_向日葵客户端语音通话功能使用方法  WooCommerce 新客户订单自动添加管理员备注教程  火柴人战争网页版在线玩  食品生产用水只要符合国家规定的生活饮用水卫生标准就可以吗  抖音小程序怎么开通?小程序开通条件是什么?  realme 10 Pro息屏方案_realme 10 Pro省电策略  画质怪兽120帧安卓和平精英免费版  快递优选如何查优选物流_快递优选专属物流渠道查询与配送时效  为什么XML解析器对大小写敏感? 理解XML规范中的大小写规则与最佳实践  win11如何运行chkdsk命令 Win11检查和修复磁盘逻辑错误教程【修复】  申通快件单号查询平台 申通包裹物流动态跟踪  163邮箱网页版入口 163邮箱在线使用  苹果官网国补入口在哪  iCloud官方网站 iCloud网页版在线登录入口  《东方财富》条件单关闭方法  PHP多语言网站的实现:会话管理与翻译函数优化教程  rabbitmq 持久化有什么缺点?  德邦快递查询入口登录官网 德邦快递单号查询系统入口  行者app怎样导出日志  向往的生活小游戏启动处_向往的生活小游戏立即启动  传统曲艺莲花落的表演形式是  TikTok私信无法发送表情怎么办 TikTok消息表情发送修复方法  Lar*el Socialite单设备登录策略:实现用户唯一会话管理  疯狂小鸟微信小游戏入口 疯狂小鸟网页版秒玩  荣耀magicv5怎么上手测评  《edge浏览器》关闭翻译功能方法  京东快递包裹信息查询入口 京东快递官方查询平台入口  iPhone16Plus参数配置如何调整声音_iPhone16Plus参数配置声音调整详细方法  漫蛙manwa漫画官网链接_漫蛙manwa最新可用网址推荐  《随手记》启用语音备注方法  使用Python和GBGB API高效抓取指定日期范围和赛道比赛结果教程 

 2025-10-09

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.