[JavaScript]记录完成轮播过程中的几个点

记录几个坑

之前的轮播:

完整代码:GitHub

效果预览:GitHub

最近完成的轮播:

完整代码:GitHub

效果预览:GitHub

在完成轮播中解决两个问题:

1.setInterval()会和按钮绑定的事件发生冲突。

表现为:setInterval()设置了每3S轮播一次,在没有任何动作干扰的情况下,轮播正常;但是当需要点击按钮跳转到其他图片时,从点击按钮到图片跳转成功的这段时间,假设是1S,也会计算到setInterval()设定的时间中;即从A1到A2需要3S,在A1到A2的过程中2.5S时,我们点击A3,他就不会在A3上停留3S再轮播,而是从A3到A4只需要0.5S(3-2.5)。

解决办法:给轮播组件添加监听事件,一旦鼠标移入组件范围,轮播停止;鼠标移出,轮播继续。这样就能保证每一张图片到下一张图片都需要3S的时间。

$(‘#slidesWrapper‘).on(‘mouseenter‘,function(){
    window.clearInterval(timerId)
})

// 当鼠标移出
$(‘#slidesWrapper‘).on(‘mouseleave‘,function(){
    timerId = setTimer()
})

2.轮播絮乱

表现为:一旦浏览器离开轮播的tab,跳转到其他的tab后过一段时间再回来,轮播的速度会加快。

解决方法:给document添加visibilitychange事件。

MDN

浏览器标签页被隐藏或显示的时候会触发visibilitychange事件.

我们只要判断:如果标签页被隐藏,则轮播停止;标签页被显示,轮播继续,就可以解决这个问题了。

如:

document.addEventListener(‘visibilitychange‘,function(e){
    if(document.hidden){
        window.clearInterval(timerId)
    }else{
        timerId = setTimer()
        console.log(2)
    }
})

原文地址:https://www.cnblogs.com/No-harm/p/9613234.html

时间: 2024-10-11 19:53:51

[JavaScript]记录完成轮播过程中的几个点的相关文章

Web前端原生JavaScript浅谈轮播图

1.一直来说轮播图都是困扰刚进业内小白的一大难点,因为我们不仅需要自己作出一个比较完美的运动框架(虽然网上一抓一大把,但是哪有比自己做出来实现的有成就感,不是吗?^_^),还必须需要非常关键性的把握住轮播的原理,这样才能把一个轮播图完美的呈现出来. 2.废话不多说,请看下面代码 1 //首先我们必须都明确,一个好的运动框架那必须是能够同时承载两种或多种以上需求的,所以我们应该避免单运动框架通过行内样式的局限性,就需要我们知道怎么去获取非行间样式 2 function getStyle(obj,a

纯原生javascript仿网易轮播图

第一次有自己的关于代码的博客,感到诚惶诚恐.这可能是我第一次以程序猿,或者连初级程序猿都不是的身份下开通的个人“技术”(胡写乱写)博客园地.闲言碎语不要讲,咱今天就写一点关于js的代码吧.网易首页大家肯定都去过,在首页左侧部分有个轮播图,效果很好,构思精巧,非常诱人.注,此demo非本人原创,在这里进行个人解读,力求通俗易懂(主要是让我自己明白!). 那么如何实现相关技术,进而实现如图效果呢?下面的进度条是用JQuery写的,这里暂不考虑.下面从三个方面讨论网一轮播图. 一.HTML部分 1 <

原生JavaScript实现无缝轮播图

无缝轮播图是页面常用的特效之一,然而在实际的开发过程中,大部分的开发者都会使用插件来对轮播图进行开发,那么它的底层到底是怎么实现的呢,本文章将围绕这一问题展开探讨. 在讨论如何利用原生JS实现图片之间无缝切换轮播的动画效果之前,我们先来谈谈无缝轮播图片的css布局. 首先我们需要一个用来显示图片的DIV容器,然后把想要轮播的图片没有缝隙的排成一行放入DIV容器中,给DIV容器设置 overflow: hidden,这样在页面中就可以只看到一张图片,然后通过利用JS来移动ul的left值就能达到无

实现全屏轮播,并且轮播div中的文字盒子一直自动垂直居中

效果如下: 直接上代码了: 说明:轮播图基于swiper.js,自行下载.css在最后 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.

html+css+javascript实现简易轮播图片

html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="../css/test2.css"> <script type="text/javascript" src="../js/te

JavaScript实现的轮播图

当初学习JavaScript的时候,想学习轮播图是怎么写的,结果在百度搜了半天也很难搜出一个完整的轮播图案例.现在就分享一个用js写的轮播图供大家参考和学习,有什么错误的地方或有更好的方法也请大家提出来,共同讨论和进步. 下面是效果图. <div id="play"> <ol>  //按钮 <li class="active">1</li> <li>2</li> <li>3</

javascript 实现图片轮播和点击切换功能

图片轮播是网页上一个比较常见的功能,下面我们来实现他吧 原理很简单: 1:固定的区域,所有的图片重叠,一次只能显示一张图片 2:通过改变图片的zIndex属性改变显示的图片,就可以达到切换的效果了 <!-- cycle_pic.html --> <!DOCTYPE html> <html> <head> <title>cycle_pic</title> <meta charset="utf-8"> &l

js无限轮播算法中干掉if判断

无限轮播在网页应用中经常见到,这其中算法各有千秋,在学习算法分析一书中发现自增取余方法可以干掉一些不必要的if判断,具体代码如下: 1 var arr= [1,2,3,4,5,6,7,8]; 2 var index=0; 3 var length=arr.length; 4 setInterval(function(){ 5 // 自增 6 console.log(arr[index++%length]); 7 // 自减 8 // console.log(arr[index=(index+le

轮播图中播放视频 兼容处理

{"isShowVideo":"1","videolist":[ {"desc":"000","url":"images/video.mp4","img":"images/image1.png"}, {"desc":"00","url":"",&qu