sumoselect插件
由于项目需要,研究了下sumoselect插件,接下来简单介绍下sumoselect。
在百度上搜索“sumoselect.js”,查到的网页基本上都有对sumoselect的基本介绍,如下:
简单介绍
jquery.sumoselect是一款跨设备、跨浏览器的jQuery下拉列表框插件。该jQuery下拉列表框插件可以单选,也可以多选。它的样式可以通过CSS文件来自定义。它的最大特点是可以跨设备使用,所有设备上功能都是一致的。
该jQuery下拉列表框插件的特点有:
- 可以进行单选,也可以进行多选。
- 可以通过CSS文件来自定义样式。
- 支持绝大多数的设备。
- 根据设备智能渲染。
- 在Android、IOS、Windows和其它设备上会自动渲染出该设备原生样式的下拉列表框。
- 可以自定义提交数据的格式(多选可以通过 csv 或默认形式来提交)。
- 支持Selected、Disabled和占位文本。
- 易扩展,开发者可以很容易的创建新的组件。
- 使用基本方法间隙管理如添加选项、删除选项、禁用、选择等。
该jQuery下拉列表框插件需要使用jQuery 1.8.3+版本,建议使用最新版本的jQuery。
浏览器和设备的支持
- IE8+, Firefox 4+, Chrome, Safari 4+, Opera 11+(其它浏览器应该也能工作,但未经测试)
- iOs 3+, Android 2.1+ , Windows Mobile(其它设备应该也可以工作,但未经测试)
使用方法
使用方法非常简单,可以在页面加载之后调用默认的调用方法:
$(document).ready(function () {
$('.SlectBox').SumoSelect();
});
也可以使用插件提供的参数来进行控制:
$(document).ready(function () {
$('.SlectBox').SumoSelect({
placeholder: 'This is a placeholder',
csvDispCount: 3
});
});
配置参数
下面是该jQuery下拉列表框插件的可用参数:
参数 | 类型 | 描述 |
placeholder | string | 显示在select下拉列表框中的占位文本 |
csvDispCount | int | 要显示的多个项的编号,使用逗号分隔。设置为0表示全选 |
captionFormat | string | 当选择的项大于csvDispCount 设置的数目时显示的文本。默认为{0} Selected ,{0} 会被替换为选择的项的总数 |
floatWidth | int | 最小的设备宽度,如果小于这个宽度,下拉列表框将渲染为浮动弹出的效果 |
forceCustomRendering | boolean | Force the custom modal ( Floating list ) on all devices below floatWidth resolution. |
nativeOnDevice | Array[string] | 从用户代理字符串中获取识别移动手机的关键字 |
outputAsCSV | boolean | 设置为true 则使用csv来提交数据 |
csvSepChar | string | 如果outputAsCSV 设置为true ,该选项用作它的分割符。 |
okCancelInMulti | boolean | 在桌面模式中是否允许OK/Cancel按钮为多选模式。 |
triggerChangeCombined | boolean | In Multiselect mode whether to trigger change event on individual selection of each item or on combined selection ( pressing of OK or Cancel button ). |
selectAll | boolean | 默认为false,在多选模式下是否显示全选按钮,官方js里说手机模式下不支持全选 |
selectAlltext | string | 全选按钮显示模式下全选的显示文本 |
ok | string | 默认为OK,确认按钮显示文本 |
cancel | string | 默认为Cancel,取消按钮显示文本 |
(以上基本为网页搜索结果)
参数的控制最好在页面中进行,而非在js文件中直接更改,但是因人而异。
官方提供的sumoselect插件,通过参数的调整,在桌面模式下效果还是很不错的,可以选择是否显示确定、取消按钮,根据需求设置下拉框浮动的最小宽度(floadWidth)等等,但是在手机模式下,效果就不是很理想。作为一名开发者,在软件操作方面一般不会觉得太复杂,而在用户角度则可能不然。例如官方提供的sumoselect插件在手机模式下使用的是手机自带的select效果。在多选模式下,往往会造成用户选择了多个items后,不知道该怎么操作了。如果在手机多选模式下也能像桌面模式那样可以设置确定取消按钮的显隐的话,效果会更好些。针对这一需求,我对sumoselect.js文件和sumoselect.css文件进行了修改。最终呈现效果如下
手机模式下,跟桌面模式显示的一样,不同的是,在手机模式下浮动的话,增加了一个遮罩层,使效果更好些。
前台设置如下
$(function() {
//初始化下拉框组件
window.asd = $('#zone').SumoSelect({
placeholder:"请选择",
csvDispCount: 10,
captionFormat:'选中 {0} 项',
floatWidth:1200,//手机端均呈现浮动效果
okCancelInMulti:true,
ok:'确定',
cancel:'取消',
nativeOnDevice: ['Android', 'BlackBerry', 'iPhone', 'iPad', 'iPod', 'Opera Mini', 'IEMobile', 'Silk']
});
具体详见js文件和css文件。
需要注意的是,由于下拉框的结构是ul li结构,所以如果外层也设置了针对ul li的行高等显示属性的话,就会造成显示效果不尽人意。
items选择非选择的显示效果如上图,左边小方框是利用i元素,为其设置background实现的。
请参照如下代码
<style type="text/css">
//设置行高
.SumoSelect > .optWrapper.multiple > .options > li{
line-height: 18px;
height:18px;
}
//设置确定取消按钮的行高
.SumoSelect > .optWrapper.multiple.okCancelInMulti > .MultiControls > p{
line-height: 18px;
}
//选择框未选择时的背景设置
.SumoSelect > .optWrapper.multiple > .options > li span i{
background-image: none;
background-size:auto;
}
</style>
上述代码主要针对外层的css属性设置影响了下拉框的显示效果,为恢复默认显示效果进行的设置。如果要自定义行高等属性,请考虑items本身的padding/margin等属性的设置。
希望可以帮到更多的朋友,也欢迎大家提建议和问题
更多详细介绍请见http://hemantnegi.github.io/jquery.sumoselect/
插件下载地址http://files.cnblogs.com/files/wyynts/sumoselect.rar
sumoselect插件的更多相关文章
- 2016年4月最佳的20款 jQuery 插件推荐
这个列表包括20个我们觉得是最有用的免费的 jQuery 插件,它们都是最具创新性和最省时省力的解决方案,很多都是现代化的设计和开发中碰到的问题的处理方案.如果你熟悉下面列出的任何插件,请与我们的读者 ...
- Angular杂谈系列1-如何在Angular2中使用jQuery及其插件
jQuery,让我们对dom的操作更加便捷.由于其易用性和可扩展性,jQuer也迅速风靡全球,各种插件也是目不暇接. 我相信很多人并不能直接远离jQuery去做前端,因为它太好用了,我们以前做的东西大 ...
- Jenkins 安装的HTML Publisher Plugin 插件无法展示ant生成的JunitReport报告
最近在做基于jenkins ant junit 的测试持续集成,单独ant junit生成的junitreport报告打开正常,使用Jenkins的HTML Publisher Plugin 插件无 ...
- 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)
前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...
- solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件
昨天已经在Tomcat容器中成功的部署了solr全文检索引擎系统的服务:今天来分享一下solr服务在海量数据的网站中是如何实现数据的检索. 在solr服务中集成IKAnalyzer中文分词器的步骤: ...
- 使用Visual Studio SDK制作GLSL词法着色插件
使用Visual Studio SDK制作GLSL词法着色插件 我们在Visual Studio上开发OpenGL ES项目时,避免不了写Shader.这时在vs里直接编辑shader就会显得很方便. ...
- 工欲善其事,必先利其器 之 VS2013全攻略(安装,技巧,快捷键,插件)!
如有需要WPF工具的朋友可以移步 工欲善其事,必先利其器 之 WPF篇: 随着开发轨迹来看高效WPF开发的工具和技巧 之前一篇<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATI ...
- Jquery mobiscroll 移动设备(手机)wap日期时间选择插件以及滑动、滚动插件
Jquery Mobiscroll是一个用于触摸设备(Android phones, iPhone, iPad, Galaxy Tab)的日期和时间选择器jQuery插件.以及各种滑动插件 可以让用户 ...
- 10个最好用的HTML/CSS 工具、插件和资料库
大家在使用HTML/CSS开发项目的过程中,有使用过哪些工具,插件和库?下面介绍的10种HTML/CSS工具,插件和资料库,是国外程序员经常用到的. Firebug Lite FirebugLite ...
随机推荐
- VS2010部署Asp.net程序到本地IIS 7
部署自己的网站到本地IIS 当你做一个网站,你想要在局域网访问的时候,你就可以部署到自己的IIS中然后他们通过 ip 去访问.下面就是怎么部署Asp.net 的网站怎么到本地IIS 上的. 1 ...
- Accessibility应用之focus篇
最近项目中需要应用accessibility,大量使用了focus和blur,总结如下 一.设置焦点focus 如创建无障碍对话框:当一个对话框出现时,焦点应在对话框内,这样用户才可以使用键盘继续浏览 ...
- C# 利用占位符替换word中的字符串和添加图片
利用占位符替换word中的字符串和添加图片 ///<summary> /// 替换word模板文件内容,包括表格中内容 /// 调用如下:WordStr ...
- oracle 存储过程小总结
1 创造存储过程 Create or procedure My_procedure( param1,param2) is Begin . . . End 2 判断语句 If x>0 then B ...
- 如何在Linux服务器中隐藏PHP版本
通常,大多数默认设置安装的web服务器存在信息泄露,这其中之一就是PHP.PHP 是如今流行的服务端html嵌入式语言(之一?).在如今这个充满挑战的时代,有许多攻击者会尝试发现你服务端的漏洞.因此, ...
- 显示图片的(自定义)吐司Toast
一般我们提示的时候都是直接提示文字的,其实Toast也可以显示图片 常用方法 Toast.makeText(context,text,duration)这返回一个Toast对象 toast.setDu ...
- node.js中buffer需要知道的一些点
本文为阅读朴灵大大的<深入浅出node.js>笔记: 在前端开发的时候,我们不曾用过buffer,也没得用.buffer是node环境引入的,用来方便应对二进制数据的处理.这里我们对它应该 ...
- C++中的全局变量、普通局部变量和静态局部变量的区别
在C++中,我们经常难以说清楚全局变量.局部变量和静态局部变量的区别.本博客从变量存储特性和标识符作用域两个角度区分这三个变量. 首先,我们来看看C++程序的内存区域是如何分配的. 从上图,我们可以看 ...
- mysql的卸载方法
sudo rm /var/lib/mysql/ -R 删除mysql的数据文件 2 sudo rm /etc/mysql/ -R 删除mqsql的配置文件 3 sudo apt-get autorem ...
- 阿里云服务器被挖矿minerd入侵的解决办法
上周末,更新易云盘的时候,发现阿里云服务器CPU很高,执行 top 一看,有个进程minerd尽然占用了90%多的CPU, 赶紧百度一下,查到几篇文章都有人遇到同样问题 Hu_Wen遇到的和我最相似, ...