新手如何开始写jq插件

插件的意义在于保护了整体的js的稳定性,是在jquery这个命名空间里发生的事,这样即省事,方便他人的调用,而且根据需求提供不同的参数,让对象继承这些参数然后改动插件,而不是人为的去改动函数,而且调用极为简单,这是我对jq插件的理解。

那么如何去写自己第一个插件呢。

昨天同事用的一个滚动广告的插件,说不能用了,不知道为什么。那我说索性我给你写一个吧 ,那么我们通过我写的这个简易的插件来初探插件的玄妙之处。

;(function($){
	$.fn.wroll=function(option){	
		var data={
			'time':3000,
			'rollheight':20,
			'movespeed':1000
		}
		var options=$.extend(data,option);

		this.each(function(){			
			var that=this;
			var nowtop=$(this).children().position().top;
			var vigro=setInterval(function(){
			console.log($(that).children().position().top);
			nowtop=nowtop-options.rollheight;
			if(Math.abs(nowtop)>($(that).children().height()-options.rollheight)){nowtop=0;}
			$(that).children().animate({'top':nowtop},options.movespeed)
			},options.time);			
		})	
	}
})(jQuery)


首先是通过

(function($){})(jQuery);
这样的一个立刻执行函数把我们的插件封装在一个函数体内。把jQuery传进去,用$符号去接收。

$.fn.name

这是jquery为我们进行的一个拓展函数,name就是我们这个插件的名字啦。

option是我们要传的参数,当然你也可以不传,因为

var data={
			'time':3000,
			'rollheight':20,
			'movespeed':1000
		}
这是我们写默认参数的地方。

我们通过

var options=$.extend(data,option);

这样一个extend方法,就是像对象里面的继承,一样,如果属性想同就会覆盖,如果不相同,就不会覆盖。我们用这种方式让他们的想同属性融合,形成新的参数,这样我们就完成了用户的传递。

this.each(function(){			
			var that=this;
			var nowtop=$(this).children().position().top;
			var vigro=setInterval(function(){
			console.log($(that).children().position().top);
			nowtop=nowtop-options.rollheight;
			if(Math.abs(nowtop)>($(that).children().height()-options.rollheight)){nowtop=0;}
			$(that).children().animate({'top':nowtop},options.movespeed)
			},options.time);			
		})	

这样的一些操作,就是dom的基本操作了,封装的插件最重要的就是两点,如何让参数和自带的参数融合,还有就是如何进行dom操作。

最后附上测试用的html码

<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
<style>
*{margin:0; padding:0;}
.one{ height:20px; width:100px; overflow:hidden; position:relative;}
.two{position:absolute;width:100px; }
p{line-height:20px;}
</style>
<script src="wsroll.js"></script>
<script>
$(function(){

$('.one').wroll({'time':1500,'movespeed':100});

})
	

</script>

</HEAD>

<BODY>

<div class="one" >
	<div class="two">
		<p>111111111111</p>
		<p>111111111111</p>
		<p>111111111111</p>
		<p>111111111111</p>
		<p>111111111111</p>
		<p>111111111111</p>
		<p>111111111111</p>
	</div>
</div>


</BODY>
</HTML>

希望可以对新手有参考意义

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jq select 插件是一个 jQuery 插件,用于美化 HTML 的 select 元素。它可以将 select 元素转换为带有自定义样式的下拉框,支持搜索、多选等功能,并且使用简单,兼容性好。 以下是 jq select 插件的一些特点: 1. 支持搜索:可以在下拉框中搜索选项,快速定位需要的选项。 2. 支持多选:可以选择多个选项,可以设置最大可选数量。 3. 支持自定义样式:可以根据需要自定义下拉框的样式,支持自定义图标、字体等。 4. 兼容性好:支持主流浏览器,包括 Chrome、Firefox、Safari、IE 等。 以下是使用 jq select 插件的示例代码: ``` <!-- HTML 代码 --> <select id="mySelect"> <option value="1">选项一</option> <option value="2">选项二</option> <option value="3">选项三</option> <option value="4">选项四</option> <option value="5">选项五</option> </select> <!-- 引入 jQueryjq select 插件 --> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/jquery-selectric/1.13.0/jquery.selectric.min.js"></script> <!-- 初始化 jq select 插件 --> <script> $(document).ready(function() { $('#mySelect').selectric(); }); </script> ``` 在上面的代码中,首先在 HTML 中定义了一个 select 元素,然后引入了 jQueryjq select 插件JS 文件,最后在 document.ready 函数中使用 selectric 方法初始化了 select 元素,即将 select 元素转换为一个带有自定义样式的下拉框。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值