JavaScript怎么实现轮播图
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍"JavaScript怎么实现轮播图",在日常操作中,相信很多人在JavaScript怎么实现轮播图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Jav
千家信息网最后更新 2026年11月03日JavaScript怎么实现轮播图
这篇文章主要介绍"JavaScript怎么实现轮播图",在日常操作中,相信很多人在JavaScript怎么实现轮播图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"JavaScript怎么实现轮播图"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
html 和 css 代码如下所示(文件名:index.html)
Document
这样写好以后,一个基本的样子就算是有了。
接下来就是让他动起来,想想什么可以让图片动起来,是不是我们学过的动画效果呀,所有这个地方要用缓动动画来实现一个切换图片的效果,因为 js 代码较多,所以得新建一个 js 文件,把代码封装起来!
下面就是封装得 js 代码 (文件名:轮播图.js)
window.addEventListener('load', function () { var img = document.querySelector('.img'); var yuan = document.querySelector('.yuan'); var box = document.querySelector('.box'); var left = document.querySelector('.left'); var right = document.querySelector('.right'); var imgwidth = box.offsetWidth; //获取盒子的宽度(图片的宽度) // 经过鼠标触发 停止自动滚动图片效果 box.addEventListener('mouseenter', function () { left.style.display = 'block'; right.style.display = 'block'; clearInterval(timer); }) // 离开鼠标触发 自动滚动图片再次触发 box.addEventListener('mouseleave', function () { left.style.display = 'none'; right.style.display = 'none'; timer = setInterval(function () { right.click(); }, 2000) }) // 根据图片添加下面的小圆点 for (var i = 0; i < img.children.length; i++) { var li = document.createElement('li'); yuan.appendChild(li); li.setAttribute('date-index', i); li.addEventListener('click', function () { for (var j = 0; j < yuan.children.length; j++) { yuan.children[j].className = ''; } this.className = 'color'; var index = this.getAttribute('date-index'); var imgwidth = box.offsetWidth; // animate(obj,target,function(){}) animate(img, -index * imgwidth); nums = index; colors = index; }) } // 默认第一个小圆点有颜色 yuan.children[0].className = 'color'; var nums = 0; var colors = 0; // 复制第一张图片到最后,给无缝滚动做准备 var li = img.children[0].cloneNode(true); img.appendChild(li); var flag = true; //右边按钮,切换下一张,小圆点一起变化 right.addEventListener('click', function () { if (flag) { flag = false; if (nums == img.children.length - 1) { nums = 0; img.style.left = 0; } nums++; animate(img, -nums * imgwidth, function () { flag = true; }); colors++; if (colors == yuan.children.length) { colors = 0; } for (var j = 0; j < yuan.children.length; j++) { yuan.children[j].className = ''; } yuan.children[colors].className = 'color'; } }) // 左边按钮,切换下一张,小圆点一起变化 left.addEventListener('click', function () { if (flag) { flag = false; if (nums == 0) { nums = img.children.length - 1; img.style.left = -nums * imgwidth + 'px'; } nums--; colors--; animate(img, -nums * imgwidth, function () { flag = true; }); if (colors < 0) { colors = yuan.children.length - 1; } // if (colors == 0) { // colors = yuan.children.length; // } // colors--; for (var j = 0; j < yuan.children.length; j++) { yuan.children[j].className = ''; } yuan.children[colors].className = 'color'; } }) // 鼠标不经过图片实现自动滚动 var timer = setInterval(function () { right.click(); }, 2000)})关键的来了,要让动起来怎么少得了动画效果呢,我单独封装了一个 js 文件,这样以后写其他案例的时候也可以直接引用了。
代码如下(文件名:animate.js)
function animate(obj, target, callback) { //移动的对象(谁移动),移动的目的位置,回调函数 // 先清除以前的定时器,只保留当前的一个定时器执行 clearInterval(obj.timer); obj.timer = setInterval(function () { // 步长写到定时器里面 var step = (target - obj.offsetLeft) / 10; //步长公式:(目标位置-现在的位置)/10 step = step > 0 ? Math.ceil(step) : Math.floor(step); //步长改为整数,不要出现小数,正数向上取整,负数向下取整 if (obj.offsetLeft == target) { clearInterval(obj.timer) //停止动画,本质是停止定时器 if (callback) { callback(); // 回调函数写到定时器结束里面 } } //步长作为一个慢慢变小的值才能实现从快到慢的缓动停止的效果 obj.style.left = obj.offsetLeft + step + 'px'; },15)}到此,关于"JavaScript怎么实现轮播图"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
图片
代码
定时器
效果
文件
动画
圆点
步长
学习
位置
文件名
鼠标
j++
切换
封装
移动
接下来
函数
宽度
就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡
耶加雪菲
手磨咖啡
云南咖啡
广州为想互联网科技有限公司
互联网核心科技是什么
互联网的科技创新
上海挚品互联网科技
互联网女皇 腾讯科技
郑州华宇互联网科技
互联网科技公司有哪些
重庆科技学院互联网
北京三清互联网科技
中国航天科技大学国际工业互联网
互联网科技与大数据专业
苏州铭阳互联网科技有限公司
互联网在线教育科技创业
互联网金融科技名词解释
信承诺互联网科技有限公司
前海云享互联网科技
金诺互联网科技
唐信互联网科技
成都狮子座互联网科技
互联网科技股午盘股票涨跌
成都玖崟互联网科技有限公司乐商圈怎么样
济南华为互联网科技产业总部基地
广州恒生互联网科技有限
互联网科技股为什么大涨
世界互联网科技成果奖
深圳互联网科技园地址




