JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器


Posted in Javascript onOctober 30, 2016

手机端网页版app在使用下拉列表时,传统的下拉列表使用起来体验非常不好,一般做的稍好一点的交互功能界面都不会直接使用下拉列表,所以app的原生下拉列表都是弹窗列表选择,网页型app从使用体验上来当然也应该做成那样,前段时间在开发网页版app时就遇到这种需求,不仅是日期选择器,数据列表、变量列表选择等等下拉列表型需求都需要,网上找来找去只找到一款比较好的mobiscroll,不过下载比较麻烦,感觉比较奇怪的是jquery.mobile、jeasyui.mobile都没有提供这种控件,不知道为什么?虽然我不是专做前端开发,不过几乎全能型的我觉的不难开发吧,在家熬了一夜试了几种方法终于找到一种几乎完美的方法!在后来的使用中不断完善,现在公开提供给广大程序员。

先看看效果图:

JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器

由于这控件的滚动是使用div原生滚动方法,触摸屏使用时可以有惯性滚动效果,也实现了鼠标可以操作,不过没有实现惯性滚动效果。由于此控件主要是面向触摸屏的,所以嘛触摸屏完美就好了,我也懒的弄鼠标版的特效了。此控件已封装成jquery插件,没有边框,100%宽,使用很方便,比如套入弹窗后就是上图效果。

代码使用方法如下:

$("#scrollbox").EasyScrollBox({
fontSize: 32,
fontFamily: '',
color: '#000',
lineHeight: 1.5,
spaceRows: 2,
value: '4',
data: data1,
textFiled: 'txt',
valueFiled: 'id',
onSelected: function (index, value) {
$("#Text1").val(value);
}
});

使用弹窗完整的使用方法代码如下,效果就是上图的样子:

<!-- ui-dialog -->
<div id="dialog" class="easyui-dialog" style="padding:20px 6px;width:80%;" data-options="inline:true,modal:true,closed:true,title:'设置数值'">
<div id="scrollbox"></div>
<div class="dialog-button">
<a href="javascript:void(0)" class="easyui-linkbutton" style="width:100%;height:35px" onclick="$('#dialog').dialog('close')">确 定</a>
</div>
</div>
<script type="text/javascript">
$(function () {
//对象型数据
var data = [];
for (var i = 0; i < 100; i++) {
var m = {};
m.id = i;
m.txt = "数据" + i;
data.push(m);
}
$("#dialog").dialog();
// Link to open the dialog
$("#dialog-link").click(function (event) {
$("#dialog").dialog("open").dialog('center');
//重新赋值
$("#scrollbox").EasyScrollBox({
fontSize: 32,
fontFamily: '',
color: '#000',
lineHeight: 1.5,
spaceRows: 2,
value: '4',
data: data,
textFiled: 'txt',
valueFiled: 'id',
onSelected: function (index, value) {
$("#Text1").val(value.id);
}
});
event.preventDefault();
});
});
</script>

也可以这么用:

//字符串数据
var data1 = [];
for (var i = 0; i < 100; i++) {
data1.push(i);
}
$("#scrollbox").EasyScrollBox({
fontSize: 32,
fontFamily: '',
color: '#000',
lineHeight: 1.5,
spaceRows: 2,
value: '4',
data: data1,
onSelected: function (index, value) {
$("#Text1").val(value);
}
});
$("#dialog-link1").click(function (event) {
$("#dialog").dialog("open").dialog('center');
event.preventDefault();
});

 如果想要一点三维效果,直接加样式即可:

JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器

#cover_top_EasyScrollBox{
background: -ms-linear-gradient(top, #000000, #ccc); /* IE 10 */
background:-moz-linear-gradient(top,#000000,#ccc);/*火狐*/
background:-webkit-gradient(linear, 0% 0%, 0% 100%,from(#000000), to(#ccc));/*谷歌*/
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#000000), to(#ccc)); /* Safari 4-5, Chrome 1-9*/
background: -webkit-linear-gradient(top, #000000, #ccc); /*Safari5.1 Chrome 10+*/
background: -o-linear-gradient(top, #000000, #ccc); /*Opera 11.10+*/
}
#cover_bottom_EasyScrollBox{
background: -ms-linear-gradient(top, #ccc, #000000); /* IE 10 */
background:-moz-linear-gradient(top,#ccc,#0000ff);/*火狐*/
background:-webkit-gradient(linear, 0% 0%, 0% 100%,from(#ccc), to(#000000));/*谷歌*/
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ccc), to(#000000)); /* Safari 4-5, Chrome 1-9*/
background: -webkit-linear-gradient(top, #ccc, #000000); /*Safari5.1 Chrome 10+*/
background: -o-linear-gradient(top, #ccc, #000000); /*Opera 11.10+*/
}

以上所述是小编给大家介绍的js开发触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
支持ie与FireFox的剪切板操作代码
Sep 28 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
Sep 04 Javascript
js实现不重复导入的方法
Mar 02 Javascript
JavaScript事件处理的方式(三种)
Apr 26 Javascript
BootStrap 智能表单实战系列(五) 表单依赖插件处理
Jun 13 Javascript
探究JavaScript中的五种事件处理程序方式
Dec 07 Javascript
简单快速的实现js计算器功能
Aug 17 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
Sep 03 Javascript
layDate插件设置开始和结束时间
Nov 15 Javascript
vue.js仿hover效果的实现方法示例
Jan 28 Javascript
微信小程序与公众号实现数据互通的方法
Jul 25 Javascript
javascrpt密码强度校验函数详解
Mar 18 Javascript
js模式化窗口问题![window.dialogArguments]
Oct 30 #Javascript
Chrome不支持showModalDialog模态对话框和无法返回returnValue问题的解决方法
Oct 30 #Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
Oct 29 #Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
Oct 29 #Javascript
JS给Array添加是否包含字符串的简单方法
Oct 29 #Javascript
浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
Oct 29 #Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
Oct 28 #Javascript
You might like
用sql命令修改数据表中的一个字段为非空(not null)的语句
2010/06/04 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
2013/06/28 PHP
ThinkPHP实现跨模块调用操作方法概述
2014/06/20 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
php去除头尾空格的2种方法
2015/03/16 PHP
PHP实现的蚂蚁爬杆路径算法代码
2015/12/03 PHP
初学JavaScript第二章
2008/09/30 Javascript
jquery实现微博文字输入框 输入时显示输入字数 效果实现
2013/07/12 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
jquery中each遍历对象和数组示例
2014/08/05 Javascript
简单实现jQuery进度条轮播实例代码
2016/06/20 Javascript
老生常谈javascript的类型转换
2016/10/12 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
vue+springmvc导出excel数据的实现代码
2018/06/27 Javascript
详解ESLint在Vue中的使用小结
2018/10/15 Javascript
js的各种数据类型判断的介绍
2019/01/19 Javascript
ES6 迭代器与可迭代对象的实现
2019/02/11 Javascript
element ui分页多选,翻页记忆的实例
2019/09/03 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
利用js canvas实现五子棋游戏
2020/10/11 Javascript
[01:08:33]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
Python实现简单的用户交互方法详解
2018/09/25 Python
Django如何实现网站注册用户邮箱验证功能
2019/08/14 Python
在django中自定义字段Field详解
2019/12/03 Python
基于python实现计算且附带进度条代码实例
2020/03/31 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
简单几步用纯CSS3实现3D翻转效果
2019/01/17 HTML / CSS
美丽的珠宝配饰:SmallThings
2019/09/04 全球购物
研发工程师的岗位职责
2013/11/18 职场文书
亲子拓展活动方案
2014/02/20 职场文书
小学课外活动总结
2014/07/09 职场文书
python基础之模块的导入
2021/10/24 Python