美文网首页
怎么用js的原生写法写出来一个轮播图呢?

怎么用js的原生写法写出来一个轮播图呢?

作者: 拾柒_aab0 | 来源:发表于2019-10-20 21:11 被阅读0次

首先我们来总结一下原理:

1:排出一个版,包含上下切换的标识和图片导航,所有图片隐藏,给图片第一张加一个class名,样式设为显示,图片导航的第一个加一个class名,加上背景色;
2:获取节点;
3:给向下切换写一个点击事件,点击图片切换到下一张,注意当图片切换到最后一张的时候会报错,所以必须要判断一下,当图片切换到最后一张的时候在,再次击会切换到第一张;
4:给向上切换写一个点击事件,注意当图片切换到第一张之后会报错,所以必须要判断一下,当图片切换到第一的时候,再次点击会切换到最后张,循环起来;
5:写一个定时器,定时器的播放顺序和向下切换一致,可以封装一个函数方便调用;
6:写鼠标划入事件,清除定时器;
7:写鼠标移出事件,定时器继续运行;
8:图片导航的点击事件

需要用到的知识点

点击事件click
定时器setlnterval()
if判断
for()循环

第二步

var box = document.querySelector('.box');//获取box
var last = document.querySelector('.last');//获取 
var next = document.querySelector('.next');
var imgs = document.querySelectorAll('ul li');
var ol_li = document.querySelectorAll('ol li');

var time = null, index = 0;

第三步

next.onclick = function () {//向下切换的点击事件
    auto();
}
function auto() {//封装一个向下切换的函数
    index++;//图片向后走
    console.log(imgs.length)
    if (index > imgs.length - 1) {//判断
        index = 0;
    }
    getOther(index)
}

封装一个排他的函数

function getOther(ind) {//封装一个排他的函数
    for (var i = 0; i < imgs.length; i++) {
        imgs[i].className = '';
        ol_li[i].className = '';
    }
    imgs[index].className = 'active';
    ol_li[index].className = 'active1';
}

第五步

time = setInterval(function () {//定时器
    auto()
}, 1000);

第四步

last.onclick = function () {//向上切换的点击事件
    index--;
    if (index < 0) {
        index = imgs.length - 1;
    }
    getOther(index);
}

第六步

box.onmouseover = function () {//鼠标移入事件
    clearInterval(time);
    time = null;
}

第七步

box.onmouseout = function () {//鼠标移出事件
    time = setInterval(function () {
        auto();
    }, 1000);
}
for (var i = 0; i < ol_li.length; i++) {
    ol_li[i].ind = i;//标记当前下标

    ol_li[i].onclick = function () {
        index = this.ind;绑定当前下标
        getOther(this.ind);
    }
}

相关文章

  • JavaScript | 365笔记第87天 | 原生JS做轮播

    用原生JS做一个轮播图

  • 怎么用js的原生写法写出来一个轮播图呢?

    首先我们来总结一下原理: 1:排出一个版,包含上下切换的标识和图片导航,所有图片隐藏,给图片第一张加一个class...

  • 用js原生实现轮播图

    用jquery实现轮播图非常简单的啦!有没有想过用原生js实现轮播图呢???今天琢磨了一下,摸索出来一个,就和大家...

  • 8月第一周

    7.31 -1- 原生JS的轮播 用惯了swiper,今天练习一下原生JS的轮播写法 -2- Flex 的兼容性 ...

  • 原生js制作轮播图

    原生js 制作的轮播图 今天学习了一个原生js轮播图的方法。效果图如下 通过点击上下页和中间的点进行翻页,通过改变...

  • 原生JS实现轮播图

    实习刚结束,由于实习期间一直用的React框架,原生js都有些生疏了,所以用原生js写了个简单的轮播图练练手。 方...

  • 轮播图(2)——基于JQ的左右滑动轮播

    上回书我们说到原生js淡入淡出效果的轮播图,这回我们说说左右滑动轮播图,由于需要缓动动画效果,原生js需要封装缓动...

  • input type=file修改样式

    效果图 原本的样式 html结构 css样式 jq写法 原生js写法

  • 项目-轮播图

    整个轮播图分为三部分:轮播指标、轮播项目及轮播导航。用boostrap实现轮播图要比用js、jQuery方便的多,...

  • 用原生js生成轮播图

    轮播图有几大要点,点击左右的尖角号,可以进行图片的切换,点击圆点,可以获取圆点对应的图片,可以自动播放图片,鼠标悬...

网友评论

      本文标题:怎么用js的原生写法写出来一个轮播图呢?

      本文链接:https://www.haomeiwen.com/subject/acwamctx.html