首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

jQuery插件开发 - 实则很简单

2012-10-29 
jQuery插件开发 - 其实很简单【前言】jQuery已经被广泛使用,凭借其简洁的API,对DOM强大的操控性,易扩展性越

jQuery插件开发 - 其实很简单

【前言】
jQuery已经被广泛使用,凭借其简洁的API,对DOM强大的操控性,易扩展性越来越受到web开发人员的喜爱,我在社区也发布了很多的jQuery插件,经常有人询问一些技巧,因此干脆写这么一篇文章给各位jQuery爱好者,算是抛砖引玉吧。

【基础】
a)样式
很多人会认为样式是个很复杂的东西,需要沉着冷静的心态加上非凡的审美观才能设计出赏心悦目的UI,抛开图片设计不说,其实css也就是那么些属性:position,margin,padding,width,height,left,top,float,border,background...

UI设计的漂亮与否在很大程度上依赖于设计人员对配色的把握和整体效果的协调。举个简单的例子,一个简单的页面,马虎的人:


jQuery插件开发 - 实则很简单
jQuery插件开发 - 实则很简单
一目了然,或许很多的站点失去关注正是因为这不起眼的font-family,font-size。当然这还只是个简单的例子,掌握css应该从简单做起,从基本入手,在实践中运用并不断深入。

b)脚本
我们同样需要对javascript有着深刻的理解,对dom, xhr, Regex, call-apply, prototype等都应该有一定的了解。

有人会说要这些有啥用啊,对dom的操作其实通过getElementById, getElementsByTagName以及其他的API都可以轻松的完成,这话是没错,当思路确定后,思想才是重点,一段代码是精华还是糟粕很容易就可以区分出来,究其原因还是取决你自己,举个简单的例子,大量的html组装,路人甲:

?

解释下下文将用到的几个词:
slider: 此部分是作为拖拽手柄来使用,用户可以通过拖拽此部分来更新completed bar的位置。
completed: 此部分作为bar的内嵌元素,作为特殊效果来显示slider与起始点的距离,亦即与slider的value值关联。
bar: slider的载体,completed的满值。

思路:
slider作为手柄提供拖拽功能,作用区域为bar,拖拽过程中completed条必须实时更新(长度),影响区域为slider至bar左端的距离。

【编码】

开发jQuery UI/Effect 插件在很多时候都需要与UI交互,因此在呈现上需要提供Html tree来绘制我们的插件,最终通过js dom来输出,那么在绘制简单的dom结构的时候我会直接用js来完成,不过如果嵌套比较复杂的话,我们还是应该先用html来完成,然后转变成js输出。

html tree:

jQuery插件开发 - 实则很简单jQuery插件开发 - 实则很简单/**//*----default?skin----*/
jQuery插件开发 - 实则很简单.defaultbar
jQuery插件开发 - 实则很简单jQuery插件开发 - 实则很简单{jQuery插件开发 - 实则很简单}{
jQuery插件开发 - 实则很简单????margin-top:?10px;
jQuery插件开发 - 实则很简单????height:?5px;
jQuery插件开发 - 实则很简单????background-color:?#FFFFE0;
jQuery插件开发 - 实则很简单????border:?1px?solid?#A9C9E2;
jQuery插件开发 - 实则很简单????position:?relative;
jQuery插件开发 - 实则很简单????}
jQuery插件开发 - 实则很简单.defaultbar?.jquery-completed
jQuery插件开发 - 实则很简单jQuery插件开发 - 实则很简单{jQuery插件开发 - 实则很简单}{
jQuery插件开发 - 实则很简单????height:?3px;
jQuery插件开发 - 实则很简单????background-color:?#7d9edb;
jQuery插件开发 - 实则很简单????top:?1px;
jQuery插件开发 - 实则很简单????left:1px;
jQuery插件开发 - 实则很简单????position:?absolute;
jQuery插件开发 - 实则很简单????}
jQuery插件开发 - 实则很简单.defaultbar?.jquery-jslider
jQuery插件开发 - 实则很简单jQuery插件开发 - 实则很简单{jQuery插件开发 - 实则很简单}{
jQuery插件开发 - 实则很简单????height:?15px;
jQuery插件开发 - 实则很简单????background-color:?#E6E6FA;
jQuery插件开发 - 实则很简单????border:?1px?solid?#A5B6C8;
jQuery插件开发 - 实则很简单????top:?-6px;
jQuery插件开发 - 实则很简单????display:?block;
jQuery插件开发 - 实则很简单????cursor:?pointer;
jQuery插件开发 - 实则很简单????position:?absolute;
jQuery插件开发 - 实则很简单????}
jQuery插件开发 - 实则很简单

将bar的position属性设置成relative,以方便子节点的浮动(子节点使用position:absolute来获得内联浮动效果)。

那么我们可以看下这个css和html tree产生的UI效果:
jQuery插件开发 - 实则很简单

ok,具备了所需的元素 - slider, completed, bar.

一些规范:

当我们画出了UI之后就可以正式编写jQuery插件代码了,不过在着之前我们还需要对jQuery插件开发的一些规范性有一些了解。

1. 使用闭包:

});
slider.setSliderValue(v,function(){});

setSliderValue代码:


用来作为completedbar背景的'bar'和用来作为slider背景的'slider',ok,我们更新下样式:

jQuery插件开发 - 实则很简单jQuery插件开发 - 实则很简单/**//*----blue?skin----*/
jQuery插件开发 - 实则很简单.bluebar
jQuery插件开发 - 实则很简单jQuery插件开发 - 实则很简单{jQuery插件开发 - 实则很简单}{
jQuery插件开发 - 实则很简单????margin-top:?10px;
jQuery插件开发 - 实则很简单????height:?4px;
jQuery插件开发 - 实则很简单????background:#F7F7F7;
jQuery插件开发 - 实则很简单????border:solid?1px?#3e3e3e;
jQuery插件开发 - 实则很简单????position:?relative;
jQuery插件开发 - 实则很简单????}
jQuery插件开发 - 实则很简单.bluebar?.jquery-completed
jQuery插件开发 - 实则很简单jQuery插件开发 - 实则很简单{jQuery插件开发 - 实则很简单}{
jQuery插件开发 - 实则很简单????height:?4px;

热点排行