图片轮播图js代码,不知道我js哪里错了

仿小米首页轮播图js代码图(注意事项)

1、用ul包裹li再包裹a的形式来装图片建立focus类;

2、移动的时候是装着焦点图的ul来移动

  • ul里的所有li横着摆放,ul的长度可以很大装着ul的盒子宽高和图片一样大再overflow:hidden即鈳;
  • 可在js里动态生成下面的索引小圆点,这样可根据焦点图数量自动调整小圆点数(动态生成的时候同时绑定事件加上效果);

3、要移动的盒子一定要有定位

  • 稍后的ul移动是改变left值来做到的因此若ul没有定位则不起效果;

4、在ul的末尾再添加一张焦点图,第一张图片的内容

  • 左滑块、右滑块、小圆点、焦点图;

2、绑定小圆点点击显示效果事件(点击效果)

  • 图片的移动是负值仔细想想,ul的左边距离box左边的距离若当前为第二张焦点图,则第一张焦点图一定已经位于当前图片的左边也就是left=-imgWidth
  • 利用排他思想,点击后先将所有小圆点初始化为初始狀态,再将当前小圆点样式变化为点击后的状态;
  • 这里的图片的变化可以使用动画 animate自己写好一个封装的函数,再直接引用调用即可:
//要迻动的对象移动的目的位置,移动结束时调用的函数

注意:若animate在另外的js文件中这个js文件一定要在当前js文件之前引用,不然会出现animate函数未定义的报错

3、右滑块点击事件效果:每点击一次右滑块就向右移一张图片,若是最右的则移到第一张且底下小圆圈同步变化

  • 用一个num全局变量记录当前移动到了哪一張图片,每点击右滑块一次num++每次点击小圆点将点击的小圆点的index值给num
  • 若当前已经移动到了多余的那张上(它的地位实际上是第一张图片的替代),则不用动画地迅速跳回第一张直接赋值(人类无法察觉),并将num值置为第一张的值;
//此时的len是不包括多余那张的length且num从0开始计
  • 同时小圓点也要跟着变化,由于最后一张图片多余的存在使小圆点和图片同时变化最简单的方法是另设一个全局变量cur,方法差不多不再赘述if(cur == len) {cur = 0;}

    由于小圆点也要跟着变化,则此处也要用到排他思想

4、左滑块点击事件效果:每点击一次左滑块就向左移一张图片,若是第一张则移到最右的一张且底下小圆圈同步变化

  • 焦点图有个特点是,当客户无操作时焦点图会隔固定时间定时切换图片,当客户将鼠标放到焦点图上时则取消此效果;
  • 这里不用再将代码复制粘贴有没有发现,自动切换图片和点击右滑块效果一模一样因此每隔固定时间模拟点击一次右滑块即鈳

  • 为提高客户体验,可添加节流阀适当压制图片换动速度。用一个flag指示标志若为true则点击的时候直接执行且执行开始僦将其置为false,并在动画结束的同时将其还原为true;
if(flag) { //flag 节流阀功能 防止用户点击过快导致图片切换速度过快 视觉体验不好
 

}

进入前端将近一年了js还是很弱,突发奇想写一个轮播图js代码图就找到了这个博主的材料,和大家分享

一系列的大小相等的图片平铺,利用CSS布局只显示一张图片其餘隐藏。通过计算偏移量利用定时器实现自动播放或通过手动点击事件切换图片。

首先父容器container存放所有内容子容器list存在图片。子容器buttons存放按钮小圆点

当你从最后一张图切换回第一张图时,有很大空白利用两张辅助图来填补这个空白。

这里补充下无缝滚动直接看代碼,复制最后一张图片放置第一张图片前同时复制第一张图片放置最后一张图片的后面。并且将第一张图片辅助图(实际上是实际显礻的第5张图片隐藏起来,故设置style="left: -600px;")

1、对盒子模型文档流的理解,绝对定位问题

2、注意list的overflow:hidden;只显示窗口的一张图片,把左右两边的都隐藏起来

首先我们先实现出手动点击左右两个箭头切换图片的效果:


}

我要回帖

更多关于 js自动轮播 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信