3-5图片轮播

3-5图片轮播

滑过图片时清除定时器,不理解为什么  if(timer)  就清除,timer一开始设为null,timer这个感觉抽象不懂

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

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

2回答
芝芝兰兰 2019-04-26 18:39:15

同学你好。在JavaScript中,下面6种值转化为布尔值时为false,其他转化都为true

1、undefined(未定义,找不到值时出现)

2、null(代表空值)

3、false(布尔值的false,字符串"false"布尔值为true)

4、0(数字0,字符串"0"布尔值为true)

5、NaN(无法计算结果时出现,表示"非数值";但是typeof NaN==="number")

6、""(双引号)或''(单引号) (空字符串,中间有空格时也是true)

所以在这里,一旦开始轮播,if(timer)就可以判断成功。

祝学习愉快~

芝芝兰兰 2019-04-26 10:23:29

同学你好。这里的timer是一个全局变量。js和java有些不同,因为它靠的是事件触发,所以它的执行顺序和代码书写顺序可以不一致。

我在F12开发者工具中,打开Sources窗口,找到js文件,单击行号即可打断点。可以看到当我鼠标移到第一张图片上,触发了这个函数。鼠标移到timer上查看,此时的timer已经不是null,而是1了

http://img1.sycdn.imooc.com//climg/5cc26aad0001145213820633.jpg

这是因为,页面在加载时就调用了slideImg()从而调用了main.onmouseout(),接着是startAutoPlay(),在startAutoPlay中,timer被赋值。

如果解答了同学的疑问,望采纳~

祝学习愉快~


  • 提问者 the_shy #1
    timer的值是index++赋值的1吗?,
    2019-04-26 14:10:29
  • 提问者 the_shy #2
    if(timer)的timer值是1,所以条件成立,证明鼠标在图片上,所以clear,是这样吗?
    2019-04-26 14:12:35
  • 芝芝兰兰 回复 提问者 the_shy #3
    不是的,timer是由setInterval()赋的值。setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
    2019-04-26 18:33:33
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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