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 相关文章推荐
JavaScript窗口功能指南之在窗口中书写内容
Jul 21 Javascript
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
Dec 27 Javascript
js Array操作的最简短最容易理解方法
Dec 09 Javascript
js中不同的height, top的区别对比
Sep 24 Javascript
怎么限制input的text里输入的值只能是数字(正则、js)
May 16 Javascript
用js实现博客打赏功能
Oct 24 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
Oct 31 Javascript
jQuery中用on绑定事件时需注意的事项
Mar 19 Javascript
xmlplus组件设计系列之网格(DataGrid)(10)
May 05 Javascript
Angularjs 实现动态添加控件功能
May 25 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
Jul 12 Javascript
javascript实现贪吃蛇小练习
Jul 05 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
function.inc.php超越php
2006/12/09 PHP
PHP常用函数小技巧
2008/09/11 PHP
利用Ffmpeg获得flv视频缩略图和视频时间的代码
2011/09/15 PHP
PHP中如何调用webservice的实例参考
2013/04/25 PHP
深入PHP中的HashTable结构详解
2013/06/13 PHP
PHP获取MySql新增记录ID值的3种方法
2014/06/24 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
ThinkPHP中关联查询实例
2014/12/02 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
javascript SocialHistory 检查访问者是否访问过某站点
2008/08/02 Javascript
Mootools 1.2教程 Tooltips
2009/09/15 Javascript
JavaScript原生对象常用方法总结(推荐)
2016/05/13 Javascript
jquery插件ContextMenu设置右键菜单
2017/03/13 Javascript
基于angular实现三级联动的生日插件
2017/05/12 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
浅谈Angular 的变化检测的方法
2018/03/01 Javascript
Vue.use源码学习小结
2018/06/20 Javascript
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python配置文件解析模块ConfigParser使用实例
2015/04/13 Python
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
CentOS6.5设置Django开发环境
2016/10/13 Python
Python异常的检测和处理方法
2018/10/26 Python
对Python中DataFrame选择某列值为XX的行实例详解
2019/01/29 Python
Python如何使用k-means方法将列表中相似的句子归类
2019/08/08 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
2020/07/09 Python
英文简历自荐信范文
2013/12/11 职场文书
工厂门卫岗位职责范本
2014/04/04 职场文书
卫校毕业生个人自我鉴定
2014/04/28 职场文书
学雷锋标兵事迹材料
2014/08/18 职场文书
领导班子个人对照检查材料(群众路线)
2014/09/26 职场文书
起诉书格式范文
2015/05/20 职场文书
党员公开承诺书(2016最新版)
2016/03/24 职场文书
青年人初次创业的“五不要”
2019/08/23 职场文书
python turtle绘制多边形和跳跃和改变速度特效
2022/03/16 Python