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读取xml
Nov 04 Javascript
Draggable Elements 元素拖拽功能实现代码
Mar 30 Javascript
JavaScript内核之基本概念
Oct 21 Javascript
jQuery(非HTML5)可编辑表格实现代码
Dec 11 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
Jun 20 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
May 05 Javascript
canvas实现绘制吃豆鱼效果
Jan 12 Javascript
require.js中的define函数详解
Jul 10 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
Jan 08 Javascript
JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例
Feb 21 Javascript
JavaScript页面倒计时功能完整示例
May 15 Javascript
layer设置maxWidth及maxHeight解决方案
Jul 26 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
使用PHP制作新闻系统的思路
2006/10/09 PHP
PHP结合JQueryJcrop实现图片裁切实例详解
2014/07/24 PHP
PHP多文件上传实例
2015/07/09 PHP
PHP MVC框架skymvc支持多文件上传
2016/05/26 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
2017/02/28 PHP
JS 实现双色表格实现代码
2009/11/24 Javascript
javascript写的异步加载js文件函数(支持数组传参)
2014/06/07 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
浅谈javascript中createElement事件
2014/12/05 Javascript
jQuery中unwrap()方法用法实例
2015/01/16 Javascript
JS求解三元一次方程组值的方法
2017/01/03 Javascript
微信小程序日历组件calendar详解及实例
2017/06/08 Javascript
layui select获取自定义属性方法
2018/08/15 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
详解wepy开发小程序踩过的坑(小结)
2019/05/22 Javascript
微信小程序实现商城倒计时
2020/11/01 Javascript
微信小程序实现定位及到指定位置导航的示例代码
2019/08/20 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
JavaScript实现京东放大镜效果
2019/12/03 Javascript
详解JavaScript的this指向和绑定
2020/09/08 Javascript
python下载文件时显示下载进度的方法
2015/04/02 Python
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
在java中如何定义一个抽象属性示例详解
2017/08/18 Python
Django中数据库的数据关系:一对一,一对多,多对多
2018/10/21 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
2018/10/31 Python
深入理解Python异常处理的哲学
2019/02/01 Python
Python字符串内置函数功能与用法总结
2019/04/16 Python
Python3列表内置方法大全及示例代码小结
2019/05/10 Python
Django之创建引擎索引报错及解决详解
2019/07/17 Python
AmazeUI 输入框组的示例代码
2020/08/14 HTML / CSS
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
安德玛菲律宾官网:Under Armour菲律宾
2020/07/28 全球购物
大学系主任推荐信范文
2013/12/24 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
经营目标管理责任书
2014/07/25 职场文书
2014年行政助理工作总结
2014/11/19 职场文书