首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js原生轮播图下载

要实现一个原生的JavaScript轮播图,你需要了解HTML、CSS和JavaScript的基础知识。以下是一个简单的轮播图实现示例:

HTML结构

代码语言:txt
复制
<div class="carousel">
  <div class="carousel-inner">
    <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">&#10094;</button>
  <button class="next">&#10095;</button>
</div>

CSS样式

代码语言:txt
复制
.carousel {
  position: relative;
  width: 80%;
  margin: auto;
}

.carousel-inner {
  position: relative;
  overflow: hidden;
  width: 100%;
}

.carousel-inner img {
  display: none;
  width: 100%;
}

.carousel-inner img.active {
  display: block;
}

.prev, .next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  width: auto;
  padding: 16px;
  margin-top: -22px;
  color: white;
  font-weight: bold;
  font-size: 18px;
  transition: 0.6s ease;
  border-radius: 0 3px 3px 0;
  user-select: none;
}

.next {
  right: 0;
  border-radius: 3px 0 0 3px;
}

.prev:hover, .next:hover {
  background-color: rgba(0,0,0,0.8);
}

JavaScript逻辑

代码语言:txt
复制
let currentIndex = 0;
const images = document.querySelectorAll('.carousel-inner img');
const totalImages = images.length;
const nextButton = document.querySelector('.next');
const prevButton = document.querySelector('.prev');

function showImage(index) {
  images.forEach((img, i) => {
    img.classList.toggle('active', i === index);
  });
}

function nextImage() {
  currentIndex = (currentIndex + 1) % totalImages;
  showImage(currentIndex);
}

function prevImage() {
  currentIndex = (currentIndex - 1 + totalImages) % totalImages;
  showImage(currentIndex);
}

nextButton.addEventListener('click', nextImage);
prevButton.addEventListener('click', prevImage);

// 自动轮播
setInterval(nextImage, 3000);

解释

  1. HTML: 创建一个包含图片和前后按钮的容器。
  2. CSS: 设置轮播图的基本样式,包括图片的显示和隐藏,按钮的位置和样式。
  3. JavaScript:
    • currentIndex 跟踪当前显示的图片索引。
    • showImage 函数根据索引显示对应的图片。
    • nextImageprevImage 函数用于切换到下一张或上一张图片。
    • 事件监听器绑定到按钮上,实现点击切换图片。
    • setInterval 实现自动轮播功能。

优势

  • 简单易懂: 使用原生JavaScript实现,不依赖任何外部库。
  • 性能良好: 没有额外的库加载,减少页面负担。
  • 可定制性强: 可以根据需要调整样式和功能。

应用场景

  • 网站首页: 展示重要信息或广告。
  • 产品展示页: 展示多个产品图片。
  • 新闻网站: 展示最新的新闻图片。

常见问题及解决方法

  1. 图片不显示: 检查图片路径是否正确,CSS样式是否正确应用。
  2. 按钮不工作: 检查JavaScript代码是否有语法错误,事件监听器是否正确绑定。
  3. 自动轮播不启动: 检查setInterval是否正确调用。

通过以上步骤,你可以实现一个简单的原生JavaScript轮播图。如果需要更多功能(如触摸滑动支持、指示器等),可以在此基础上进行扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 原生js实现简单移动端轮播图

    最近项目不是很忙,自己就用原生js写了一个简单的移动端轮播图的小demo,可实现自动轮播和手势滑动轮播,然后就把它记录到个人博客里。还有很多不足的地方,希望多多指出,以便改进。...device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> 移动端-轮播图...动画结束瞬间定位 * 2.点需要随着轮播的滚动改变对应的点 改变当前样式 当前图片的索引 * 3.手指滑动的时候让轮播图滑动 touch事件 记录坐标轴的改变 改变轮播图的定位...} //给图片对应的点加上样式 points[index-1].className = "now"; } /* 手指滑动的时候让轮播图滑动...touch事件 记录坐标轴的改变 改变轮播图的定位(位移css3) 当滑动的距离不超过一定的距离的时候 需要吸附回去 过渡的形式去做 当滑动超过了一定的距离 需要 跳到

    20.7K60

    第54天:原生js实现轮播图效果

    一、轮播图的原理: 一系列的大小相等的图片平铺,利用CSS布局只显示一张图片,其余隐藏。通过计算偏移量利用定时器实现自动播放,或通过手动点击事件切换图片。 ?...当你从最后一张图切换回第一张图时,有很大空白,利用两张辅助图来填补这个空白。 这里补充下无缝滚动,直接看代码,复制最后一张图片放置第一张图片前,同时复制第一张图片放置最后一张图片的后面。...#prev { left: 20px; } #next { right: 20px; } 四、Js...轮播图,顾名思义,是自己会动的图片,这个时候我们需要用到浏览器的内置对象定时器。 对于定时器,有必要说明一下setInterval()跟setTimeout的区别了。...这里,我们需要对其DOM操作,需要获取整个轮播图区域; var container = document.getElementById('container'); function stop() {

    6.7K21

    vue.js项目中用原生js实现移动端的轮播图

    Vue.js项目中封装轮播图组件 前言 一、了解原生js移动端的事件 二、轮播图实战 三、效果图 结束语 前言 今天我在vue.js项目实战开发过程中遇到了实现轮播图效果的问题,因为不想因为一个轮播图而引用整个...公众号:前端印象 不定时有送书活动,记得关注~ 关注后回复对应文字领取:【面试题】、【前端必看电子书】、【数据结构与算法完整代码】、【前端技术交流群】 一、了解原生js移动端的事件 原生js移动端的事件一共有四种...我们做的轮播图功能中只用到前三种触发事件,我们来看一下具体的应用。...因为vue.js项目中都是以组件的形式来开发的,所以我这里就以一个组件的形式来展示,有疑问的可以留言询问。...此gif图展示的是我现在已经开发的部分项目效果图,其中包括本文讲的轮播图功能 ?

    9.1K20

    JS实现超简易轮播图

    2 1.画界面 1.画显示区域 首先就是画个固定的区域, 用来展示轮播图当前能看到的图, 其余超出的部分, 使用 overflow: hidden 隐藏. .box { width: 300px;...height: 200px; overflow: hidden; } 2.画轮播图主体 假设五张图, 将他们横向排列(图片太麻烦, 我就css画了...JS代码 1.原理 由于轮播图已经横向排列, 所以只要控制.swiper向x轴偏移距离, 就可以实现图片切换, 这里使用transform的translate属性来控制x轴偏移.可以通过transition...在构造器里新建了一些常量, 轮播图的DOM, 轮播图片的DOM数组, 轮播图的个数(注意是没有初始化前的图片个数), 以及赋值延时(默认是1000ms) 随后调用初始化函数 constructor (delay...随后, 将轮播图显示的位置定在第一张图片位置, 即1的位置 currentPosition变量用于标记当前滚动的图片 init () { // 将轮播图第一项克隆, 并放在最后 const cloneFirst

    10.4K30

    JS实现焦点图轮播效果

    还有一个问题需要注意,此焦点图轮播器其实只有五张图,但是在id为list的div里却放了七张图,这是为啥呢?...其原理是:第一张图片(5.jpg)和最后一张图片(1.jpg)的作用是为了实现无限滚动的效果,因为此效果是通过设置id为list的div容器的left值来实现图片切换的,所以当轮播到第五张图片(5.jpg...)的时候,再进行向右切换的时候,这时最后一张图片被切换进来,此时left值已经为-3600px,并且同时我们又将其left值改为-600px,这样就回到了真正的第一张图。...那么如果没有那两张图片作为过渡的话,效果就会是这样,当轮播到最后一张的时候会闪一下就没有了: ?...好了,最重要的还是JS实现轮播效果: 首先来实现最简单的通过左右按钮来实现切换: window.onload = function () { var container = document.getElementById

    15.2K61
    领券