js代码实现轮播图代码实现轮播图
主要为大家详细介绍了js代码实现轮播图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙
伴们可以参考一下
本文实例为大家分享了js实现轮播图的具体代码,供大家参考,具体内容如下
又从头到尾把轮播图研究了一遍,感觉理解更深刻了。
就怕自己搞不懂,分析了各个步骤的思路,为啥用,怎么用。
总算搞清楚了。
话不多说,干货奉上.
效果图:
//1,左右按钮初始隐藏 鼠标进入box 按钮显示 鼠标离开box 按钮隐藏
//获取元素
var box = document.getElementById('box');
var leftbtn = document.getElementById('leftbtn');
var rigbtn = document.getElementById('rigbtn');
//因为图片宽度是多个事件需要用到 所以要定义为全局变量
var pic_width = box.clientWidth;
//注册事件
box.addEventListener('mouseenter', function() {
leftbtn.style.display = 'block';
rigbtn.style.display = 'block';
//清除定时器 停止自动播放
clearInterval(timer);
//停止播放后 清空定时器变量 提升运行效率
timer = null;
});
box.addEventListener('mouseleave', function() {
leftbtn.style.display = 'none';
rigbtn.style.display = 'none';
//timer在11条里声明过了 这里就不需要再加var进行声明了
timer = setInterval(function() {
rigbtn.click();
}, 1500);
});
//6,创建动画函数animate 点击小圆点 图片会移动
//因为图片需要缓慢移动到目标位置 而不是瞬移 所以需要让动画函数带缓动效果
function animate(obj, target, callback) {
//obj是移动的对象 target是移动的目标位置 callback是回调函数
clearInterval(obj.timer);
//创建缓动函数 缓动的核心思想就是把移动到目标位置的距离分成若干小步
//一定时间内走一小步,让这个距离在若干时间完成若干小步后走完
function move() {
//定义每一小步走的距离 把一次移动到目标位置的距离分为10份
//每一份就是一个step
var step = (target - obj.offsetLeft) / 10;
//step可能不是整数 导致最终移动距离有误差
//所以要把每一步的step变成整数
//如果step是正数 就取大于step的最小整数
//如果step是负数 就取小于step的最大整数 用Math()的知识
/*if(step > 0) {
step = Math.ceil(step);//向上取整
} else {
step = Math.floor(step);//向下取整