前言
图片滚动效果相信对大家来说都不陌生,烂大街的效果图如下所示,js实现代码很短,不过如果想做的话,必须掌握jquery、IIFE、setInterval等基础以及$.fn用法:
jquery中$.fn用法
$.fn
是jquery的命名空间,如果对jquery源码有过学习,就不难发现源码中有如下代码:
jquery.fn=jquery.prototype={ init:function(selector,context){ /* *code */ }}
所以说jquery.fn
也就是jquery.prototype
的简写。我们的源码调用的构造函数jquery()
实例实际是jquery.fn.init()
的实例。
代码如下:
jQuery = function( selector, context ) { //jqeruy内部使用new创建返回另一个构造函数实力是为了省去调用jquery时前面的new,并在后面定义了别名$; //构造函数jquery()调用的是构造函数jQuery.fn.init()的实例 return new jQuery.fn.init( selector, context );},/*code*/
之后后续代码有执行了jquery.fn.init.prototype=jquery.fn
,用构造函数jquery的原型对象覆盖jquery.fn.init()
的原型对象,使得jquery.fn.init
实例也能访问到jquery()
的原型方法和属性。
开发插件的方法:用$.fn
扩展jquery生成新的方法。
1、可以使用jquery.extend(object)
扩展jquery类本身,为类添加新的方法。
2、用jquery.fn.extend(object)
给jquery对象添加方法。
下面用jquery.extend(object)
扩展jquery类,添加类方法:
$.extent({ add: function(a,b){ return a+b; }})
以后就可以直接使用$.add(1,2);//3
下面用jquery.fn.extend(object)
对jquery.prototype
扩展一个方法。
$.fn.extend({ [函数名]:fucntion(){ /*code*/ }});
以后可以直接使用$(“div”).
函数名()。
使用jquery中的$.fn封装一个图片滚动插件 这是一个使用到烂大街的一个插件了,不用说也知道是什么。不过具体是怎么实现的,继续往下看。这个插件最主要的部分也就是js的实现,html和css很简单,不赘述。如果下面一些知识点已经熟悉,可以选择性跳过。setInterval()
setInterval()
可以按指定时间不停的调用函数,直到调用clearInterval或者关闭窗口。setInterval(fucntion(){/*code*