jQuery UI CSS Framework是jQuery UI中的一个样式框架,可以利用jQuery Theme roller 来生成自己想要的css样式效果。我们可以利用jQuery UI的一些框架来开发出基于jQuery UI CSS Framework效果的插件来。

jQuery UI中两大核心的css文件是ui.core.css和ui.theme.css.这两个css样式贯穿整个基于jQuery ui的界面上,并且可以通过jQuery ui ThemeRoller来生成自己的样式。

.ui-helper-hidden :为元素应用display:none

.ui-helper-hidden-accessible:将元素的绝对位置设置为不可见

.ui-helper-clearfix:适用于浮动包裹父元素的属性

. ui-helper-zfix:适用于修复iframe元素覆盖的问题

.ui-state-default:元素的默认样式

.ui-state-hover:元素为hover状态的样式

.ui-state-focus:元素为focus状态的样式

.ui-state-active:元素为active状态(一般为鼠标选中)的样式

.ui-state-hightlight:需要高亮状态的样式

.ui-state-error:元素为错误状态(一般描述错误信息)的样式

.ui-state-error-text:描述错误文字的样式

.ui-state-disabled:元素被禁用的样式

.ui-priority-primary:被应用于级别为第一级的button,如果button需要区分曾记的话。将应用加粗字体

.ui-priority-secondary:被应用于级别为第二级的button,和上一场景相对应,将应用一般粗细的字体,并且相对于元素轻度透明

Icon types:css framework提供了一套默认的图标,这些图标适用于大多场景,一般使用的方式是“ui-icon ui-icon-****”来指定icon

.ui-corner-tl:左上角圆角,基于css3,ie不支持

.ui-corner-tr:右上角圆角,基于css3,ie不支持

.ui-corner-bl:左下角圆角,基于css3,ie不支持

.ui-corner-br:右下角圆角,基于css3,ie不支持

.ui-corner-top:上面两个角圆角,基于css3,ie不支持

.ui-corner-bottom:底部两个角圆角,基于css3,ie不支持

.ui-corner-right:右部两个角圆角,基于css3,ie不支持

.ui-corner-left:左部两个角圆角,基于css3,ie不支持

.ui-corner-all:全部角圆角,基于css3,ie不支持

.ui-widget-overlay:遮罩

.ui-widget-shadow:阴影

在写jQuery ui widget的时候合适的利用这些css就可以做出和jQuery ui theme兼容的自定义ui来。

jQuery ui 提供了一些基本的widget,但是他提供了很好的机制来创建widget。在jQuery css framework中包含了基本的css样式(视觉和感觉诸如颜色,字体大小,图标等),而在ui的css中,则需要定义构建widget结构的css,比如margin,padding,position等。在开发widget的时候也要尽量遵循这一原则,这样才能很好的利用jquery theme roller来应用样式,从而在整体上保持一致,在前面的文章中简单的 介绍了jquery css framework。下面就简单的介绍下jquery ui 的开发指引。

Jquery的官方文档中对此写的很清晰。一般来说,jquery ui都是继承自jquery.ui.widget.js这个文件的。这个文件提供了一个工厂方法来创建widget对象。其方法是$.widget(String name, Options prototype).下面简单介绍下这个类提供的方法和属性。在创建widget的时候将重写这些。

destroy():将widget实例从dom对象上移除,在开发widget的时候一般此方法是必须的。就是移除你自己在dom element上添加的样式和行为以及dom结构

options:在这里面保存的是widget的配置信息,在创建widget的时候需要设置一些配置参数。

element:就是widget作用的dom对象。

enable()和disable():这两个方法就是禁用和启用widget的。其实是修改options.disabled。

还有两个私有方法是创建widget的时候要重写的。在widget中,所有的私有方法都将加以"_"前缀。

_create(): 这个方法就是创建widget的方法,在页面调用widget的时候,就会执行此方法,来构建widget。Widget的绝大大多数行为和结构都是在这里创建的。

_init(): 这个方法大多数时候不会被重写,这个方法在构建widget的时候在_create后执行。

从相关的文档上查询到:

_create(): 方法在widget构建的时候执行,而_init()方法在构建和重新初始化的时候执行。而destroy方法则是在移除widget的时候被执行。

_setOption(): 此方法提供了options的属性的设置,一般情况下如果options里面的参数不需要特殊处理(校验,类型转换,以及设置属性的时候触发某一操作等)的时候不需要对此方法进行重写。

下面这段代码说明了_create()方法和_init()方法的不同:

$(function(){// _create() 和 _init() 在第一次调用的时候被执行$("div").mywidget();// widget已经实例化到div上了,此时只执行_init()方法$("div").mywidget();// 销毁widget$("div").mywidget("destroy");// 因为widget已经被销毁,此时_create()和_init()方法都将被执行$("div").mywidget();});

事件

如果有自定义的事件,可以采用widget为我们封装好的方法_trigger()来处理,其调用方法为 this._trigger(type, event, data),第一个参数为时间类型,第二个参数为事件event对象,第三个参数为事件要传递的参数。

接下来会用一个简单的jquery ui widget代码,来说明如何开发widget。

//此widget是将textbox进行修饰一下的。自身没有css,采用的是jquery ui css framework的样式
(function($){
//ui默认采用jquery的ui前缀,后面的是widget名称$.widget("ui.textboxdecorator", {
//此widget中没有optionsoptions:{},_init: function(){//验证是否是需要装饰的元素if (!(this.element.attr("tagName").toLowerCase() === "input" || this.element.attr("tagName").toLowerCase() === "textarea")) {return;}if (!(this.element.attr("type").toLowerCase() === "text" || this.element.attr("type").toLowerCase() === "password")) {if (this.element.attr("tagName").toLowerCase() === "input") return;}
//this.element也就是调用此widget的元素var e = this.element;
//ui-widget widget基本的样式,ui-state-default。默认状态的样式;ui- corner-all 圆角(基于css3,ie下不起作用)this.element.addClass("ui-widget ui-state-default ui-corner-all");//添加hover效果和active效果this.element.mouseover(function(){e.addClass("ui-state-hover");}).mouseout(function(){e.removeClass("ui-state-hover");}).mousedown(function(){e.addClass("ui-state-active");}).mouseup(function(){e.removeClass("ui-state-active");});},
//销毁时,移除widget增加的样式destroy:function(){this.element.removeClass("ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active");}        })
})(jQuery)

在使用该widget的时候,需要引用jquery,jquery.ui.core.js,jquery.ui.widget.js文件,css文件需要jquery.ui.core.css和jquery.ui.theme.css两个文件

在调用的时候采用$("***"). textboxdecorator();来调用此widget。

基于jQuery UI CSS Framework开发Widget相关推荐

  1. 基于 jquery ui 扩展Widget

    jQuery UI CSS Framework是jQuery UI中的一个样式框架,可以利用jQuery Theme roller 来生成自己想要的css样式效果.我们可以利用jQuery UI的一些 ...

  2. html下拉式列表框多选,基于jQuery UI的多项选择下拉列表框组件

    jquery.multiselect.js是一款基于jQuery UI的多项选择下拉列表框组件.该下拉列表功能强大,可以实现多选和单选,可制作打开和关闭下拉框时的炫酷动画效果,提供丰富的回调函数和其它 ...

  3. 一款基于jquery ui的动画提交表单

    今天要给大家分享一款基于jquery ui的动画提交表单.这款提交表单的的效果是以动画的形式依次列表所需填写的信息.效果非常不错,效果图如下: 在线预览   源码下载 实现的代码. html代码: & ...

  4. 基于Mint UI和MUI开发VUE项目一之环境搭建和首页的实现

    一:简介 Mint UI 包含丰富的 CSS 和 JS 组件,能够满足日常的移动端开发需要.通过它,可以快速构建出风格统一的页面,提升开发效率.真正意义上的按需加载组件.可以只加载声明过的组件及其样式 ...

  5. html5拖动的面板 panel,基于jQuery UI的Bootstrap Panel面板功能增强插件

    LobiPanel是一款基于jQuery UI的Bootstrap Panel面板功能增强插件.通过该插件可以为Bootstrap的原生Panel面板增加编辑标题,最大化,最小化,面板拖动关闭面板等功 ...

  6. 《基于JQuery和CSS的特效整理》系列分享专栏

    2019独角兽企业重金招聘Python工程师标准>>> <基于JQuery和CSS的特效整理>已整理成PDF文档,点击可直接下载至本地查阅 https://www.web ...

  7. php mysql js弹出登陆小窗口_基于Jquery+div+css实现弹出登录窗口(代码超简单)_jquery...

    具体代码详情如下所示: 基本思路先隐藏(dispaly:none)再显示,半透明蒙版层通过 z-index:9998; z-index:9999; 值越大越在前面 index.html jquery点 ...

  8. html5窗口播放插件,基于jQuery UI的模拟windows窗口插件

    jquery-lwd是一款轻量级的基于jQueryUI的模拟windows窗口插件.该插件可以模拟windows窗口,对窗口进行最大化,最小化,拖动等操作.并提供windows2000经典主题效果.它 ...

  9. 30个基于jQuery的日期时间选择插件

    今天给大家分享30个非常酷的基于jQuery的日期时间选择插件,这是在国外的一个网站看到的,于是就稍作翻译,拿出来与大家分享,英文原文地址:http://www.1stwebdesigner.com/ ...

  10. JQUERY插件学习之jQuery UI

    jQuery UI:http://jqueryui.com/ jQuery UI介绍: jQuery UI 是以 jQuery 为基础的开源 JavaScript 网页用户界面代码库.包含底层用户交互 ...

最新文章

  1. 解决xcode ***is missing from working copy
  2. 实用的 GitHub 仓库搜索技巧
  3. 安卓 Handler使用方法
  4. sublime:查看二进制文件
  5. 编写int testsyscall()系统调用–响应函数
  6. [剑指offer] 旋转数组的最小数字
  7. 读图时代,图片容量大、传输难、打开慢怎么办?
  8. 子div撑不开父div的几种解决方法
  9. LAMP架构调优(七)——Apache Prefork模式调优
  10. shell 第六次作业(grep正则、sed)
  11. 如果Service有多个实现类,Spring怎么知道该注入哪个实现类
  12. redis的设计与实现
  13. 《毁灭杀手》(kkrieger)
  14. 南理工计算机专业好吗,吉大计算机or南理工计算机?(江苏考生)
  15. 空间域和频域结合的图像增强技术及实现
  16. 顺丰终端服务器断网,顺丰手持终端第六代,实现收派件智能化操作
  17. 记2017第八届蓝桥杯决赛(国赛)—北京三日游
  18. 虹科资讯| 虹科AR荣获汽车后市场“20佳”维修工具评委会提名奖!
  19. 搜狗云输入法、Google手机语音搜索:两款创新云产品
  20. Html5新特性总览

热门文章

  1. IE下调试CSS与JS
  2. 关于WINDOWS超级终端的使用来调试MODEM,串口.
  3. Julia: PkgMirrors,提升库下载速度
  4. Julia: 关于1.0的Array的变化
  5. 机构、基民双输,基金销售的利益困局如何破?
  6. 阿里巴巴集团数据库运维经验分享
  7. 重磅预告!企业上云的正确姿势
  8. Linux基金会发布开源Hypervisor项目ACRN支持物联网设备开发
  9. php7 imagick扩展,php7如何安装imagick扩展
  10. 【图像评价】基于matlab无参考图像质量评价NIQE【含Matlab源码 681期】