详解JavaScript轮播图技术理解

众所周知,轮播图现今在网页中占据着必不可少的地位。任何的一个网站,一个网页,都会出现一个轮播图,而轮播图更是利用JavaScript做出的一个比较基础的动画。下面是我本人对写轮播图的一点见解,很多地方可能不是很全面,甚至可能说是错误的,希望大家多多指点。

下面这个是我自己闲暇时随便做的一个轮播图:

详解JavaScript轮播图技术理解

我觉得轮播图中最主要的是要理解到图片为什么会滑动,是怎么控制的。上面这个我自己做的,是搭好的一个结构,在无序列表中插入需要的图片。然后在插入图片的后面添加一个空的无序列表,作为轮播图中下方的小点。

详解JavaScript轮播图技术理解

然后就是css中书写样式了,首先肯定得把无序列表中的li从从上至下排列变为水平方向排列,也就是给li添加一个float属性;然后有一点需要注意,轮播图外面的大盒子必须设置为图片的大小,超出的隐藏,这样可以刚刚好显示出一张图片。然后装图片的ul的宽度必须大于或者等于所有图片总宽度。同样,这里也需要运用一个定位的知识,子绝父相。给class为box的盒子设置相对定位,装图片的ul设置绝对定位。这里,尽管轮播图下面几个点没有,但是我们要把样式先写好,然后后面通过JavaScript添加。

主要样式如下:

详解JavaScript轮播图技术理解

详解JavaScript轮播图技术理解

详解JavaScript轮播图技术理解

在HTML文件和css样式表都已经写好之后,我们就可以开始书写js代码了,让图片动起来。

在JavaScript中让图片动起来的核心函数是setInterval(function(){},value);这个函数是一个定时器,第一个参数是你想让某个对象执行的事件或者动作,然后第二个参数value则是时间,意思是多少时间执行一次。

然后在轮播图中,想让图片动起来并且从视觉上看没什么异样,我们首先需要克隆第一张图片,并且将第一张图片加在最后。具体代码如下:

详解JavaScript轮播图技术理解

这个代码是用jQuery书写的,首先获取到轮播图那个大盒子,然后再找到轮播的图片这个对象,然后用first()方法找到第一张照片,并且用clone()这个方法将第一张照片克隆,最后用append()方法把克隆下来的这张照片添加到所有轮播图片的后面,这样克隆工作就完成了。

接下来就是让这个图片动起来了,动起来很简单,只需要设置一个定时器就ok,代码如下:

详解JavaScript轮播图技术理解

这时定时器中的move()函数并没有定义,接下来我们就定义这个函数,代码如下:

详解JavaScript轮播图技术理解

首先要定义一个变量i,初始值为0,每执行一次定时器,i的值便会加1。在定义一个size值,令其等于轮播图中图片的数量。然后让装所有图片的容器往左移动图片的宽度*i,这样在定时器的配合之下,图片就会一张一张的一次展示。可想而知,i的值肯定有个范围,不可能让它永远的加大,因此在move函数中,我们需要一个判定。当i=size的时候,这个时候轮播图中的照片肯定已经到了最后一张,这个时候我们前面克隆了第一张照片加在最后,因此这张照片虽然是最后一张,但是其实它是第一张照片。这时,我们就需要重置i的值,令i=1;并且通过jQuery控制样式,令装照片的容器回到初始位置,开始新的一次运动。

最后就是初始图片中的那几个点了,这个更简单了,我们获取了size的值之后,再通过for循环,就可以添加那几个点了。代码如下:

详解JavaScript轮播图技术理解

这个难点在于怎么让小点的位置随着图片的移动而移动。首先我们默认将在css中定义好的样式赋予第一个小点。代码如下:

详解JavaScript轮播图技术理解

然后就是在move函数中定义小点的相应的移动,代码如下:

详解JavaScript轮播图技术理解

很明显,小点的样式也是通过i来确定的。这里有一个误区,很多人会认为第一个小点就是1,但是其实不是,因为数组是从0开始的,所以第一个小点是0。i的值代表了显示的是第i-1张图片,所以这个时候只需要将样式赋予第i个点就行了,并且同时要清除其他的点的样式。特殊的当i=size-1的时候,这个时候,显示的是最后一张图,这张图下面那张图就是第一张图的克隆图,因此,这个时候,小点的样式就需要添加给第一个点。

完成以上操作之后,简单的轮播图就做好了。

详解JavaScript轮播图技术理解

主题测试文章,只做测试使用。发布者:小屋,转转请注明出处:http://www.rumenwu.com/operate/578.html

(0)
小屋的头像小屋
上一篇 2018年4月1日 上午1:45
下一篇 2018年4月8日 上午12:11

相关推荐

  • WordPress网站HTTPS配置教程 WordPress如何启用HTTPS

    随着HTTPS的不断普及,越来越多的网站开启了HTTPS,给网站加上了小绿锁标识,作为全球知名的建站系统,WordPress对于HTTPS的兼容性是非常好的,几乎不用任何修改,只需要服务器配置好证书即可使用https链接访问。但是经常有用户反馈开启了以后地址栏没有绿色的锁(chrome浏览器),下面简单介绍下配置教程。 以下配置教程是基于已经在服务器配置好S…

    产品运营 2018年4月15日
    55700
  • 短视频社区内容如何做好冷启动?

    短视频社区是由内容所主导的。各家产品间工具模块的差别并不显著,做到内容的差异化,才是形成社区调性的根本。而所谓调性,则可以理解为“社区群众,在特定场景下,对同好内容的集体偏爱”。   时间回到两年前的那个春天,抖音强势登顶App Store下载量榜单并多次蝉联。行业老大哥快手坐拥数亿用户,开始面对外界对其增长乏力的质疑。 仿佛一夜之间,大街小巷都是…

    产品运营 2020年3月16日
    45900
  • 被吹爆的私域到底是什么?

    关于私域流量运营的文章大家应该看过了很多,但有一个基本点是我们所忽略的:很多人对私域原点的认知是不清晰的。到底什么才是私域?私域为什么会产生价值?网上有各种各样的私域定义,今天本文作者从以下五个方面来阐述,帮助大家深刻建议对私域的认知。 一、私域的本质是流量 这是首当其冲要解释的一点,最重要的是对微信私域的认知。 村长之前也解释过,为什么要把那么多人导流到微…

    产品运营 2021年3月3日
    37100
  • 从设计默认值开始,给用户和产品带来更好的用户体验

    默认值是你的数字产品的默认基准设定值,这些填充设置的默认值虽然常常不多,但是换个角度来看,它更像是是设计师为设计作出一些基本的“决定”,帮助用户更快的让产品运行起来,上手使用。默认值对于产品和用户而言很重要,今天的文章,我们将会探讨设计师要如何设置默认值的样式、交互和字段细节,确保给用户和产品都能带来更好的用户体验。

    2017年4月17日
    6703
  • 你是不是忽视了这个老牌高权重流量平台?

      没有哪个平台能比得上百度给予自身产品的高权重。 看以下这组数据,敢问有多少网站的流量能与「百度知道」相提并论? 看以下这组数据,敢问有多少网站的流量能与「百度知道」相提并论? 尽管大家都清楚,利用「百度知道」这块风水宝地引流,对于精准营销能起到绝佳效果。 但许多人却因为这块流量之地需养号及挖掘工作投入精力较大,望而止步。 01、百度知道有哪些推…

    产品运营 2020年11月12日
    34000

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信