焦点轮播图

pic_carousal

Posted by lidashuai on 2016-07-21

焦点轮播图(JS)

焦点轮播图一直都觉得这是一个很需要复杂的JS代码才能搞定的,像我等前端小生怎敢贸然就写,奈何躲得了初一躲不了十五,尽管有jQuery等可以简化操作,偷一偷懒,但是毕竟这已经是网站首页的标配啦,对于网页展示产品展示都是很好很方便的,所以就花了一下午时间,慢慢的捋清逻辑关系,尝试写一下。图片还是用的当初网易微专业的轮播图图片先上demo看看效果:

点这里,查看效果图

当然啦,现实并不是那么一帆风顺的啦,当我完成后蓦然回了一下头,还是有不少问题的:
问题有三
首先是循环遍历绑定onclick事件,容易导致只能绑定最后一个事件,这个坑已经被大家都踩烂了,去网上一搜就能找到答案,这个涉及到闭包绑定,可能会有性能问题,再此不便展开,毕竟就这几个btn嘛,事件委托代理以后再说啦!
其次是给图片添加切换效果即CSS3的transition这个属性,由于过快点击(点击速度超过图片切换速度,我设置的是0.4s),导致图片的小圆点导航错乱,这个解决的话可以不用动画切换效果啊,嘻嘻,如果说不用不行那,那就改成JS手写一个切换效果吧,这样可以在鼠标点击的时候添加一个布尔值进行判断,来防止过快点击。
最后就是setTimeout()和setInterval()定时器的区别啦,这个很简单啊。
最最后的问题是添加了图片切换的过渡效果后,最后一个图片切到第一张的时候就会出现连切的效果,说不上不好看吧,但是破坏了整体性,还不知道怎么解决呢,其实我更喜欢没有切换效果的这一种效果。