JS面向对象的应用:轮播的实现

轮播的实现原理是怎样的?如果让你来实现,你会抽象出哪些函数(or接口)供使用?(比如 play())

  • 布局:父容器相对定位,并使其宽高与一张图片的宽高相等,设置溢出隐藏:overflow:hidden,然后在父容器中设置一个图片容器,高度与图片相等,宽度为所有图片的宽度(其宽度由于不固定,故用js来实现),并设置绝对定位,以通过自定义动画的形式使其移动。所有图片设置浮动,使其水平排成一列。再设置一个向前滚动和向后滚动的摁钮,和可以快速移动到相应图片的标记。
  • 逻辑:先将首图片和尾图片clone后,分别放在图片容器尾首,设置图片容器的宽度等于(原图片数+2)*图片宽度;每按一次按钮图片容器就向前或向后移动一张图片的宽度的距离。
  • 重点:当滚动到clone的首图片时,就立即显示真实的首图片,当滚动到clone的尾图片时,就立即显示真实的尾图片,这样就可以实现肉眼下的无限循环效果。当快速切换到不同页面时就需要知道当前正在展现的是哪一页,可以设置一个标记位,初始值为0,每次切换时这个标记位的值都要跟着改变。
  • 函数接口:
autoPlay();
playPre();
playNext();
setBullet();

轮播的实现
JS代码

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 轮播的实现原理是怎样的?如果让你来实现,你会抽象出哪些函数(or接口)供使用?(比如 play()) 布局:让父容...
    1w1ng阅读 239评论 0 0
  • 题目1:轮播的实现原理是怎样的?如果让你来实现,你会抽象出哪些函数(or接口)供使用?(比如 play()) 布局...
    阿鲁提尔阅读 526评论 0 2
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,805评论 1 92
  • 4件事1个理.. 1.玩米 妈妈从橱柜里拿东西,拿完了忘把柜子系上(平时用绳子系着) 宝宝拿出来装米的奶粉桶,用牙...
    Brena阅读 291评论 0 0
  • Spark单机环境搭建并运行单次统计 Spark环境搭建 Hadoop环境安装 Hadoop环境安装请点击 Spa...
    忘净空阅读 631评论 0 0