JavaScript怎么实现轮播图
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍"JavaScript怎么实现轮播图",在日常操作中,相信很多人在JavaScript怎么实现轮播图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Jav
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
关闭晚23点的游戏服务器
石嘴山软件开发服务价格
坪山软件开发
阿里云服务器下载软件
电脑后台数据库怎么连接
优秀毕业论文 软件开发
好用的外文论文数据库
网络技术对传媒媒体的影响
云锁网络安全
服务器闪断
网络安全现状论文大纲
招tv软件开发经理
软件开发专业如何
网络安全调查显示
互联网金融科技蓝色值
云隙服务器ip
无锡便携式工控机服务器
amd服务器管理软件
杭州小石网络技术
苏州戴尔t30服务器规格表
服务器布网
访问服务器出错
互联网时代的科技公司
习近平提出的网络安全观
为了保障网络安全保障
通讯软件开发知识
网络安全二级认证
数据库技术成绩单excel
servu 数据库
数据库维护公司




