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

 

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

代码使用方法如下:

  1. $("#scrollbox").EasyScrollBox({
  2. fontSize: 32,
  3. fontFamily: '',
  4. color: '#000',
  5. lineHeight: 1.5,
  6. spaceRows: 2,
  7. value: '4',
  8. data: data1,
  9. textFiled: 'txt',
  10. valueFiled: 'id',
  11. onSelected: function (index, value) {
  12. $("#Text1").val(value);
  13. }
  14. });

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

  1. <!-- ui-dialog -->
  2.  
  3. <div id="dialog" class="easyui-dialog" style="padding:20px 6px;width:80%;" data-options="inline:true,modal:true,closed:true,title:'设置数值'">
  4. <div id="scrollbox"></div>
  5. <div class="dialog-button">
  6. <a href="javascript:void(0)" class="easyui-linkbutton" style="width:100%;height:35px" onclick="$('#dialog').dialog('close')">确 定</a>
  7. </div>
  8. </div>
  9.  
  10. <script type="text/javascript">
  11.  
  12. $(function () {
  13. //对象型数据
  14. var data = [];
  15. for (var i = 0; i < 100; i++) {
  16. var m = {};
  17. m.id = i;
  18. m.txt = "数据" + i;
  19. data.push(m);
  20. }
  21.  
  22. $("#dialog").dialog();
  23. // Link to open the dialog
  24. $("#dialog-link").click(function (event) {
  25. $("#dialog").dialog("open").dialog('center');
  26. //重新赋值
  27. $("#scrollbox").EasyScrollBox({
  28. fontSize: 32,
  29. fontFamily: '',
  30. color: '#000',
  31. lineHeight: 1.5,
  32. spaceRows: 2,
  33. value: '4',
  34. data: data,
  35. textFiled: 'txt',
  36. valueFiled: 'id',
  37. onSelected: function (index, value) {
  38. $("#Text1").val(value.id);
  39. }
  40. });
  41.  
  42. event.preventDefault();
  43. });
  44.  
  45. });
  46. </script>

  

也可以这么用:

  1. //字符串数据
  2. var data1 = [];
  3. for (var i = 0; i < 100; i++) {
  4. data1.push(i);
  5. }
  6. $("#scrollbox").EasyScrollBox({
  7. fontSize: 32,
  8. fontFamily: '',
  9. color: '#000',
  10. lineHeight: 1.5,
  11. spaceRows: 2,
  12. value: '4',
  13. data: data1,
  14. onSelected: function (index, value) {
  15. $("#Text1").val(value);
  16. }
  17. });
  18. $("#dialog-link1").click(function (event) {
  19. $("#dialog").dialog("open").dialog('center');
  20. event.preventDefault();
  21. });

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

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

  

使用非常简单,必须引用的框架jquery.min.js,我的框架控件:EasyScrollBox.js。

演示例子全代码文件:

http://files.cnblogs.com/files/easywebfactory/EasyScrollBox_demo.rar

自已开发完美的触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器的更多相关文章

  1. 网页版仿Excel效果组件--handsontable拓展运用

    引言(祝看官们新年万事大吉) 前段时间项目需要实现网页版的excel表格功能,瞬间就想到了handsontable,为什么呢?理由如下:该UI组件功能齐全多样,展示效果也更贴近bootstrap风格, ...

  2. Asp.Net Mvc基于Fleck开发的多人网页版即时聊天室

    一.项目的核心说明 1.Fleck这个是实现websocket一个比较简单第三方组件,它不需要安装额外的容器.本身也就几个接口可供调用. 2.项目是基于.net framework 4.7.2 ,在v ...

  3. 调用百度、高德地图App,百度地图网页版,App定位

    https://www.jianshu.com/p/296a3995adc2 https://blog.csdn.net/qq_26598821/article/details/51087785 ht ...

  4. 前端练手小项目——网页版qq音乐仿写

    qq音乐网页版仿写 一些步骤与注意事项 一开始肯定就是html+css布局和页面了,这段特别耗时间,耐心写完就好了 首先要说一下大致流程: 一定要先布局html!,所以一定要先分析页面布局情况,用不同 ...

  5. Dreamweaver杀手!Illustrator终结者?Flash的末日?图形图像设计程序之网页版

    Dreamweaver杀手!Illustrator终结者?Flash的末日?图形图像设计程序之网页版 阅读:  评论:  作者:Rybby  日期:  来源:rybby.com Adobe 家的 Il ...

  6. 自已开发IM有那么难吗?手把手教你自撸一个Andriod版简易IM (有源码)

    本文由作者FreddyChen原创分享,为了更好的体现文章价值,引用时有少许改动,感谢原作者. 1.写在前面 一直想写一篇关于im即时通讯分享的文章,无奈工作太忙,很难抽出时间.今天终于从公司离职了, ...

  7. PHP 之CI框架+GatewayWorker+AmazeUI低仿微信聊天网页版

    html5开发的仿微信网页版聊天,采用html5+css3+jquery+websocket+amazeui等技术混合架构开发,实现了微信网页版的主要功能. 一.效果图 二.前端参考代码 <!D ...

  8. Vue3.0网页版聊天|Vue3.x+ElementPlus仿微信/QQ界面|vue3聊天实例

    一.项目简介 基于vue3.x+vuex+vue-router+element-plus+v3layer+v3scroll等技术构建的仿微信web桌面端聊天实战项目Vue3-Webchat.基本上实现 ...

  9. 网页版Rstudio︱RStudio Server多人在线协作开发

    网页版Rstudio︱RStudio Server多人在线协作开发 想了解一下RStudio Server,太给力的应用,可以说成是代码分布式运行,可以节省时间,放大空间. RStudio是一个非常优 ...

随机推荐

  1. shiro的/favicon.ico问题

    登录成功之后跳转/favicon.ico问题. 1.spring-shrio.xml里面配置加上 /favicon.ico = anon 2.web.xml中配置中加上: <mime-mappi ...

  2. sql server 复制表从一个数据库到另一个数据库

    sql server 复制表从一个数据库到另一个数据库 /*不同服务器数据库之间的数据操作*/ --创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQL ...

  3. smarty模板(转载)

    一.smarty的程序设计部分: 在smarty的模板设计部分我简单的把smarty在模板中的一些常用设置做了简单的介绍,这一节主要来介绍一下如何在smarty中开始我们程序设计.下载Smarty文件 ...

  4. vue生命周期探究(二)

    vue生命周期探究(二) 转载自:https://segmentfault.com/a/1190000008923105 上一章我们介绍了vue的组件生命周期和路由勾子,这一章,让我们来看看在vue- ...

  5. 150. Evaluate Reverse Polish Notation(逆波兰表达式)

    Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, ...

  6. 企业级项目把.app文件转成.ipa文件的自动化实现

    将MakeIPA.sh添加到项目的根目录下 此脚本针对企业级项目打包,不会编译项目,在打包前确认项目已经编译完成生成了"XXX.app"文件 使用前需要配置该脚本部分路径才能正确打 ...

  7. 分布式远程服务调用(RPC)框架

    分布式远程服务调用(RPC)框架 finagle:一个支持容错,协议无关的RPC系统 热门度(没变化) 10.0 活跃度(没变化) 10.0  Watchers:581 Star:6174 Fork: ...

  8. python3_UUID模块详解

    1.知识背景 UUID是128位的全局唯一标识符,通常有32字节的字母表示.它可以保证时间和空间的唯一性. UUID——Universally unique identifier 在python中叫U ...

  9. Android事件处理下(按键、触摸屏和滚动球的一些实现细节)

    http://www.cnblogs.com/andtt/articles/2145563.html 对于按键事件,调用mDevices[i]->layoutMap->map进行映射.映射 ...

  10. Java硬件同步机制Swap指令模拟+记录型信号量模拟

    学校实验存档//.. 以经典的生产者消费者问题作为背景. 进程同步方式接口: package method; /** * P表示通过,V表示释放 */ public interface Method ...