首页 > 其他分享 >JS-轮播图(圆点点击,左右侧按钮切换,自动播放)

JS-轮播图(圆点点击,左右侧按钮切换,自动播放)

时间:2023-04-11 23:47:52浏览次数:36  
标签:function indexi 轮播 img JS querySelector 自动播放 var document

//放入数据
//点击小圆圈,可切换对应图片,小圆圈的样式也跟随变动
//点击左右侧按钮,可来回切换图片,小圆圈样式跟随变动
//可自动切换轮播图,鼠标移入后不在自动滚动

(function(){
    var date = [
        {
            img : './image/banner.jpeg'
        },
        {
            img : './image/banner1.jpg'
        },
        {
            img : './image/banner2.jpg'
        },
        {
            img : './image/banner3.jpg'
        },
    ]

    //获取小圆圈父级
    var yuanquan = document.querySelector('.arrowheadFs')
    //获取图片父级以及本身的元素
    var ban = document.querySelector('.bander')
     var imban = ban.querySelector('img')
     //左/右切换的元素
     var left = document.querySelector('.i-left')
     var right = document.querySelector('.i-right')

    //初始化;四个小圆圈
    function init(){
        //有多少张图片,就显示多少个li标签(目的:动态生成小圆圈)
        for(let i = 0 ; i < date.length ; i++){
            //创建li标签,a标签
            var li = document.createElement('li')
            var a = document.createElement('a')
            li.appendChild(a)
            yuanquan.appendChild(li)
        }
    }
      init()


      //获取数据的下标,显示在页面上
      function change(index){
        //获取到date中的内容
        var d = date[index]
        //将获取到的dateimg给html中的src,显示在页面上
        imban.src = d.img

        //获取半透明度的那个类名
        var arrowheadFsli = ban.querySelector('.arrowheadFsli')
        //当前等于类名时,将类名更换
        if(arrowheadFsli){
            arrowheadFsli.className = ''
        }
        //当图片发生改变,那么获取圆圈的透明度样式给当前的下标,但是出现问题,透明度的圆圈应该就只有一个,这边会显示多个,为了解决该问题如上,if判断
        var li1 = yuanquan.children[index]
        li1.className = 'arrowheadFsli'
      }
     //需要设置0,将第0张默认显示在页面上
    change(0)
      
      //向左
      indexi = 0
      function left1(){
        indexi -- 
        if(indexi < 0){
            indexi = date.length - 1
        }
        change(indexi)
      }
      //向右
      function right1(){
        indexi ++
        if(indexi > date.length - 1 ){
            indexi = 0
        }
        change(indexi)
      }

      //注册事件,来回切换
      left.onclick = left1
      right.onclick = right1
      //圆圈
      for(let i = 0 ; i < yuanquan.children.length ; i++){
        var a = yuanquan.children[i]
        console.log(a)
         a.onclick = function(){
           indexi = i
             change(i)
         }
      }

      //获取banner区域
      var banner = document.querySelector('.bander')
      //自动播放
      var tirmid
      function begin(){
        if(tirmid){
            return
        }
        tirmid = setInterval(right1,1500)
      }
      begin()
      //自动播放暂停
      function cease(){
        clearTimeout(tirmid)
        tirmid = null
      }
      banner.onmousemove = cease
      banner.onmouseleave = begin

}())

  

标签:function,indexi,轮播,img,JS,querySelector,自动播放,var,document
From: https://www.cnblogs.com/wsx123/p/17308297.html

相关文章

  • JSON数据与java对象转换
    JSON数据与java对象转换环境:导入依赖:<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.62</version></dependency>样例:publicstaticvoidmain(String[]args){//1.将java对象转换为ja......
  • 自己手写一个js的双向绑定
    今天研究了一下JS的双向绑定。发现这东西最核心的是浏览器内置的Object.defineProperty方法或者Object.defineProperties,前者只能定义对象的一个属性与相应的元素进行绑定,后者可以定义一组进行绑定。不废话了,直接上代码://代码的效果:定时修改对象中的message属性值,然后页面的H1......
  • 微信小程序开发——getLocation:fail the api need to be declared in the requiredPr
    getLocation:failtheapineedtobedeclaredintherequiredPrivateInfosfieldinapp.json/ext.json异常解析:app.json中没配置requiredPrivateInfos参数,按下边示例代码配置即可。示例代码:{..."permission":{"scope.userLocation":{"desc&qu......
  • js 8种数据类型
    1、ES6之前共6种:number\string\Boolean\null\undefined\object;ES6增加symbol:这种类型的对象永不相等,可以解决属性名冲突的问题,做为标记。ES11增加bigint:写法:1234555n,是指安全存储、操作大整数(不可用于浮点数操作);2、增加bigint的原因:解决number大整数精度丢失问题;J......
  • JS上下文和作用域链
    开发中我们可能会不小心将写多个相同名称的变量,也经常会写一个递归调用的方法,上述示例中程序执行顺序如下图,程序会按照顺序执行第一个子元素内部所有的程序,当最底层执行结束后,会逐渐抛出返回值,然后执行第二个子元素的程序 要解释清楚上述原因,除了JS的单线程顺序执行外,还需要......
  • js如何引入高德地图API?
    准备 成为开发者并创建key1、登录控制台登录 高德开放平台控制台,如果没有开发者账号,请 注册开发者。2、创建key进入应用管理,创建新应用,新应用中添加 key,服务平台选择 Web端(JS API)。 3、获取key和密钥创建成功后,可获取 key 和安全密钥。快速上手1、H......
  • js复制内容到粘贴板
    copyOrderNo(orderNo){navigator.clipboard.writeText(orderNo).then(()=>{this.$message.success('已复制订单号')});},copyOrderNo(orderNo){varinput=document.createElement('input')//创......
  • 【学习笔记】JS+VUE
    JSJS教程HTML定义了网页的内容CSS描述了网页的布局JavaScript控制了网页的行为简介1、什么是JS?JavaScript是一种轻量级的编程语言。JavaScript是可插入HTML页面的编程代码。JavaScript插入HTML页面后,可由所有的现代浏览器执行。2、JS有哪些作用?直接写入H......
  • 直播平台源代码,js 时间戳转为日期格式
    直播平台源代码,js时间戳转为日期格式js把时间戳转为普通日记格式第一种 functiongetLocalTime(nS){     returnnewDate(parseInt(nS)*1000).toLocaleString().replace(/:\d{1,2}$/,'');   } ​第二种 functionadd0(m){returnm<10?'0'+m:m}func......
  • js检测页面关闭事件
    window.onbeforeunload=onbeforeunload_handler;window.onunload=onunload_handler;//页面关闭之前触发,在onunload事件之前触发,可以禁止onunload事件的触发functiononbeforeunload_handler(){varwarning="确认退出?";debugger......