想让轮播图自动播放,结果不行,也是醉了

想让轮播图自动播放,结果不行,也是醉了


// 鼠标离开,开始加定时器,即实现图片自动切换
    wholeSlide.mouseout(function(){
        timer=setInterval(function(){
            index++;
            if(index>=lenl) index=0;
            changeImg();
        },1000)
    })
    // 自动执行
    wholeSlide.mouseout();//这一行代码无效,也不知道为什么

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

6回答
好帮手慕糖 2017-07-13 09:24:09

你好,以下是我根据你的代码进行的测试,是可以正常运行的,你可以查看下;祝学习愉快!

<!DOCTYPE html>
<html>
    <head>
   <meta charset="UTF-8">
   <title>输入文本</title>
   <style>
.wholeSlide{ width:750px; height: 540px; position:relative; left:550px; top:0; /*background: orange;*/ } 
.slide{ width: 720px; height: 520px; position: absolute; left: 20px; top:20px; } 
.banner-slide{ width: 100%; height: 100%; background-repeat:no-repeat; position:absolute; display: none; } 
.slide-active{ display: block; } 
.slide1{ background-image: url(images/1.jpg); background-size: 720px 520px; }
 .slide2{ background-image: url(images/2.jpg); background-size: 720px 520px; } 
 .slide3{ background-image: url(images/3.jpg); background-size: 720px 520px; } 
 .slide4{ background-image: url(images/4.jpg); background-size: 720px 520px; } 
 .slide5{ background-image: url(images/5.jpg); background-size: 720px 520px; } 
 /*.slide6{ background-image: url(../images/focus-carousel/6.jpg); background-size: 720px 520px; }*/
   </style>
</head>
<body>
<div class="wholeSlide" id="wholeSlide"> 
<div class="slide" id="slide">
<a href="#"> <div class="banner-slide slide1 slide-active"></div> </a> 
<a href="#"> <div class="banner-slide slide2 "></div> </a> 
<a href="#"> <div class="banner-slide slide3 "></div> </a> 
<a href="#"> <div class="banner-slide slide4 "></div> </a> 
<a href="#"> <div class="banner-slide slide5 "></div> </a> 
<!-- <a href="#"> <div class="banner-slide slide6 "></div> </a>  -->
</div>
</div>
<script src="jquery-1.11.3.min.js"></script>
<script>
    index=0,timer=null,
    pics=$('#slide').children('a').children('.banner-slide'),
    lenl=pics.length, 
    prev=$('#prev'),next=$('#next'),
    dots=$('#dots').children(),
    wholeSlide=$('#wholeSlide');
    function slideImg(){ 
        // 鼠标滑过清除定时器,图片不再切换,离开继续 
        wholeSlide.mouseover(function(){ 
        // 清除定时器 
            if(timer) clearInterval(timer);
        }) 
        // 鼠标离开,开始加定时器,即实现图片自动切换 
        wholeSlide.mouseout(function(){
             timer=setInterval(function(){ 
                 index++; 
                 if(index>=lenl) index=0; 
                 changeImg(); 
             },1000) 
         }) // 自动执行 
         wholeSlide.mouseout(); 
         // 按钮切换图片 
         function changeImg(){ 
             // 先遍历所有图片和圆点 
                for(var m=0;m<lenl;m++){ 
                    pics.eq(m).hide(); 
                    dots.eq(m).removeClass('active'); 
                } 
            pics.eq(index).show(); 
            dots.eq(index).addClass('active');
      } 
    }
  slideImg();
</script>
</body>
</html>


  • 提问者 normcore #1
    不是这个原因,
    2017-07-13 20:49:57
  • 好帮手慕糖 回复 提问者 normcore #2
    你好,上边代码是根据你发的代码修改的,这边是可以正常运行了的,你可以把代码粘下来测试下哟,也可以检查下是否是其他问题影响了。祝学习愉快!
    2017-07-14 09:45:08
  • 提问者 normcore 回复 好帮手慕糖 #3
    亲,我已经找到原因了,因为我是外部引用的,而且使用JQ写的,所以跟你的这个没啥子关系,不过还是谢谢了~
    2017-07-14 15:51:20
提问者 normcore 2017-07-12 21:36:29

我找到原因了,之前的轮播图用的JS来写的,可能有点差别,把 wholeSlide.mouseout();放到最后来执行就可以了。

好帮手慕糖 2017-07-12 18:06:18

你好,代码中获取的长度为lenl=pics.length;但是changeImg()函数中,循环使用的是len,少了个l。祝学习愉快!

  • 提问者 normcore #1
    不是这个原因,我确实写错了lenl,但是不影响结果,我改了,还是没有反应
    2017-07-12 21:23:27
好帮手慕糖 2017-07-12 17:24:29

你好,没有html代码,与css只有js无法测出结果,下面是我测试的例子,是没有问题的,你可以测试下。如果还是不行,可以把这块的样式,即布局,粘贴过来。祝学习愉快!

<script type="text/javascript"> 
    var i = 0;
    $(".bg").mouseout(function(){
        timer=setInterval(function(){
            i++
            console.log(i);
        },1000)
    })
    $(".bg").mouseout();
</script>


  • 提问者 normcore #1
    不是我不想发HTML+CSS的代码,而是太多了,发不了,我之前做过轮播图,下面直接用wholeSlide.mouseout()就可以实现页面一打开就可以自动跳转,现在不知道怎么滴,就是不行,必须要自己手动滑动一下才可以,好着急!
    2017-07-12 17:31:50
  • 好帮手慕糖 回复 提问者 normcore #2
    你好,可以只把轮播图部分的代码(html+css+js)发过来,要不然,没有办法测试,找不出问题所在,没有办法解决问题呀。
    2017-07-12 17:38:48
  • 提问者 normcore 回复 好帮手慕糖 #3
    html:<div class="wholeSlide" id="wholeSlide"> <div class="slide" id="slide"> <a href="#"> <div class="banner-slide slide1 slide-active"></div> </a> <a href="#"> <div class="banner-slide slide2 "></div> </a> <a href="#"> <div class="banner-slide slide3 "></div> </a> <a href="#"> <div class="banner-slide slide4 "></div> </a> <a href="#"> <div class="banner-slide slide5 "></div> </a> <a href="#"> <div class="banner-slide slide6 "></div> </a> </div>
    2017-07-12 17:43:22
提问者 normcore 2017-07-12 16:19:41

就是这样的,wholeSlide.mouseout();是想达到自动执行的目的,但是无效,以前做的轮播图都是可以的呀。

代码如下: // 轮播图
    var index=0,timer=null,pics=$('#slide').children('a').children('.banner-slide'),lenl=pics.length,
     prev=$('#prev'),next=$('#next'),dots=$('#dots').children(),wholeSlide=$('#wholeSlide');
   function slideImg(){
    // 图片切换
    // 鼠标滑过清除定时器,图片不再切换,离开继续
    wholeSlide.mouseover(function(){
        // 清除定时器
        if(timer) clearInterval(timer);
    })
    // 鼠标离开,开始加定时器,即实现图片自动切换
    wholeSlide.mouseout(function(){
        timer=setInterval(function(){
            index++;
            if(index>=lenl) index=0;
            changeImg();
        },1000)
    })
    // 自动执行
    wholeSlide.mouseout();
    // 按钮切换图片    
    prev.click(function(){
        index--;
        if(index<0) index=lenl-1;
        changeImg();
    })
    next.click(function(){
        index++;
        if(index>=lenl) index=0;
        changeImg();
    })
    // 圆点切换图片
    for(var d=0;d<lenl;d++){
        if(timer) clearInterval(timer);
        dots.eq(d).attr('id',d);
        dots.eq(d).click(function(){
            index=this.getAttribute('id');
            console.log(index);
            changeImg();
        })
    }
   }
    function changeImg(){
        // 先遍历所有图片和圆点
        for(var m=0;m<len;m++){
            pics.eq(m).hide();
            dots.eq(m).removeClass('active');
        }
        pics.eq(index).show();
        dots.eq(index).addClass('active');
    }
slideImg();

注意,问题是点进去不能够自己播放,需要我自己去滑动一下才可以!我希望达到的效果是,页面一打开就可以自动播放了。

好帮手慕糖 2017-07-12 16:04:02

你好,请把这块轮播图的全部代码贴上了,部分代码,无法判断问题出在哪里。祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师