用appendChild方法实现无缝轮播图(附详细注释)

轮播图非常常见,今天就介绍怎样用appendChild以及translateX实现无缝轮播图。

以5张图,每张图宽200px为例

思路:

结构布局:最外层是一个大div,这个div的宽度以及高度就是显示的一张图片的宽高,设置position:relative以及overflow:hidden

然后用一个ul里面写四个li用来存放图片,把li设为float:left,ul的宽度设为四个li的宽度的总和,ul的position:absolute;top:0;left:-200px(此处后面详述)。

js部分每次让ul的translateX改变刚好一个li的宽度,在移动事件结束之后,如果是向后移动,每次把当前最后一个li放到当前第一个li前面,反之则反。核心函数是一个goNext(向后轮播)和一个goPrev(向前轮播)函数,自动循环播放时只需执行这两个的某一个即可。

下面是详细的代码

HTML部分:

CSS部分:



JS部分


注意下图中标注的往前添加时,由于添加了transitioned事件监听,所以是在移动之后才会向前添加,如果把ul的定位定在第一个li那里,而不是至少在第二个li之后,当第一个向后translateX之后,就会出现空白。故ul的定位不要让left为0。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,491评论 1 45
  • 实现如下轮播效果(渐变轮播)task27-1 一个页面有3个轮播task-27-2 实现如下无限循环滚动轮播效果t...
    JunVincetHuo阅读 4,177评论 0 2
  • 轮播的实现原理? 以四个图片的轮播为例html部分:图片存放在ul li标签内,并使用一个div包裹ulcss部分...
    放风筝的小小马阅读 3,790评论 0 0
  • 胜过水的柔美,怀着冰的冷艳,经过热的洗礼,换化成至高无尚的纯洁,娇美无与私仑比的身姿!谱写了壮观而伟大的画面,冬的...
    凤舞九天_5370阅读 1,886评论 0 1
  • 福就是甜品的味道;每一道甜品都有一个故事;生活就像一道道甜品,不品尝怎么知道哪道更适合自己。当水果融合了牛奶,会知...
    撸熄阅读 4,369评论 0 0

友情链接更多精彩内容