摘要:在做公司移动端项目的时候,需要频繁选择日期和时间,在网上搜到的大部分插件都有存在,于是自己干脆写了一个插件出来,以应对公司项目的需求。
在做公司移动端项目的时候,需要频繁选择日期和时间,在网上搜到的大部分插件都有bug存在,于是自己干脆写了一个插件出来,以应对公司项目的需求。
下面把插件源码放出来,供需要的小伙伴们复制粘贴(插件没有bug,可以放心使用,喜欢的给个赞哦(o^*^o)!!!):
插件使用方法:HTML:
/* * pluginName:pickTimer, * author:yangyang2010cs@163.com * Individual contact method:986372959(It"s my QQ) * date:2017/09/07 18:45:00 * */ ;(function($,window,document,undefined){ "use strict"; //严格模式,提高效率 var pluginName = "pickTimer", //定义插件的名字 defaults = {},//定义一个默认的参数 liH,//每一个li的高度 $list,//滑动列表 globalThis_launchHtml, pluginThis;//指代指向plugin的this var global = { options:"" }; function Plugin(options){ //创建构造函 //this -- Plugin对象 pluginThis = this; this.options = options; this.init(); //初始化 } Plugin.prototype = { init:function(){ //this -- Plugin对象 var str = ""+ ""; $("body").append(str); $(".pick-cancel,.pick-layer").on("click",function(){ $(".touches,.pick-layer").remove(); $("body").unbind("touchmove"); //恢复了body的拖动事件 }); $(".pick-sure").on("click",function(){ var val = ""; $(".pick-active").each(function(){ if(pluginThis.options.pickType=="y:m:d"){ val += $(this).text()+"-"; } else if(pluginThis.options.pickType=="h:m:s"){ val += $(this).text()+":"; } }); $(globalThis_launchHtml).html(val.substring(0,val.length-1)); $(".touches,.pick-layer").remove(); $("body").unbind("touchmove"); //恢复了body的拖动事件 }); $("body").on("touchmove",function (e){ e.preventDefault(); }); this.render(); //渲染 }, render:function(){ //this -- Plugin对象 global.options = this.options; $list = $(".list"); if(this.options.pickType=="h:m:s"){ for(var h=0;h<24;h++) { $list.eq(0).append("
.pick-container ul{ margin:0; padding:0; } .pick-container ul,.pick-container li{ list-style: none; } .pick-container a{ text-decoration: none; } /*materialize*/ .pick-container *{-webkit-tap-highlight-color:transparent;} .pick-container { position:fixed; z-index:99999999; left:0; bottom:0; width:100vw; background:#fff; margin: 0 auto; max-width: 1280px; } *, *:before, *:after { -webkit-box-sizing: inherit; box-sizing: inherit; } .pick-m0 { margin: 0; } .row:after { content: ""; display: table; clear: both; } .row .col { float: left; -webkit-box-sizing: border-box; box-sizing: border-box; padding: 0 .75rem; min-height: 1px; } .row .col.s3 { width: 25%; margin-left: auto; left: auto; right: auto; } .row .col.s4 { width: 33.33333333333%; margin-left: auto; left: auto; right: auto; } .row .col.s6 { width: 50%; margin-left: auto; left: auto; right: auto; } .center, .center-align { text-align: center; } /*layer*/ .pick-layer{ position: fixed; top:0; bottom:0; left:0; right:0; z-index:99999998; background:rgba(0,0,0,0.4); } /*pick-timer*/ .pick-timer{ overflow: hidden; position:relative; border-top:1px solid #eee; height:220px; } .pick-timer .list{ position:absolute; top:0; left:0; z-index:2; width:100%; transition:top .4s ease-out; } .pick-timer .list li{ height:44px; line-height:44px; text-align:center; color:#666; font-size:14px; transition:all .1s ease-out; } .pick-timer .list li.pick-active{ font-size:20px; color:#e02222; } .pick-timer .current{ position:absolute; top:88px; left:0; z-index:1; border-top:1px solid #e02222; border-bottom:1px solid #e02222; width:100%; height:44px; background:#fff; } /*pick-head*/ .pick-cancel{ display: block; font-size:14px; color:#666; height:40px; line-height:40px; } .pick-sure{ display: block; font-size:14px; color:#e02222; height:40px; line-height:40px; } .pick-title{ font-size:14px; color:#666; height:40px; line-height:40px; } /*current-time*/ .current-time:after{ content:":"; font-size: 14px; text-align: center; line-height: 44px; color: #666; position: absolute; top:-2px; right:0; } .current-date-right:after{ content:"."; color:transparent; width:5px; border-top:1px solid #999; position: absolute; top:20px; right:0; } .current-date-left:before{ content:"."; color:transparent; width:5px; border-top:1px solid #999; position: absolute; top:20px; left:0; } /**/ .pick-bgTop{ position:absolute; top:0; left:0; width:100%; height:88px; /*background: linear-gradient(#fff 0%, rgba(255, 255, 255, .85)45%, rgba(255, 255, 255, .6) 75%, rgba(255, 255, 255, .4) 100%);*/ background: -webkit-gradient(linear, left top, left bottom, from(#efefef),to(rgba(255, 255, 255, .1))); z-index:1; } .pick-bgBottom{ position:absolute; bottom:0; left:0; width:100%; height:87px; /*background: linear-gradient(rgba(255, 255, 255, .4) 0%, rgba(255, 255, 255, .6)25%, rgba(255, 255, 255, .85) 65%, #fff 100%);*/ background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, .1)),to(#efefef)); z-index:1; }特别注意:
,你也可以用其他的标签。由于在网上找到的插件都是用来触发插件,但是使用input,在ios上会出现光标和系统自带的底部带有‘完成’的确认横条,这样很难看,虽然有办法解决,但是麻烦。于是我在插件里没有使用input的value属性来获取值,而是使用了除input元素外的其它任何标签,代码原理中使用jquery中text()方法来写值。在插件使用方法中就可以看出来,现在就回到页面顶部看一看吧,我用的是
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/112557.html
摘要:好多编辑器例如等都支持这样的语法来快速的编写代码如何优雅地使用把标签放在结束标签之后结束标签之前的差别什么是响应式设计怎样进行 书籍 《JavaScriptDOM编程艺术》《JavaScript高级程序设计》《JavaScript框架设计》《JavaScript专家编程》《JavaScript Ninjia》《JavaScript语言精粹(修订版)》《JavaScript设计模式》《J...
摘要:好多编辑器例如等都支持这样的语法来快速的编写代码如何优雅地使用把标签放在结束标签之后结束标签之前的差别什么是响应式设计怎样进行 书籍 《JavaScriptDOM编程艺术》《JavaScript高级程序设计》《JavaScript框架设计》《JavaScript专家编程》《JavaScript Ninjia》《JavaScript语言精粹(修订版)》《JavaScript设计模式》《J...
摘要:好多编辑器例如等都支持这样的语法来快速的编写代码如何优雅地使用把标签放在结束标签之后结束标签之前的差别什么是响应式设计怎样进行 书籍 《JavaScriptDOM编程艺术》《JavaScript高级程序设计》《JavaScript框架设计》《JavaScript专家编程》《JavaScript Ninjia》《JavaScript语言精粹(修订版)》《JavaScript设计模式》《J...
摘要:在做公司移动端项目的时候,需要频繁选择日期和时间,在网上搜到的大部分插件都有存在,于是自己干脆写了一个插件出来,以应对公司项目的需求。 在做公司移动端项目的时候,需要频繁选择日期和时间,在网上搜到的大部分插件都有bug存在,于是自己干脆写了一个插件出来,以应对公司项目的需求。 下面把插件源码放出来,供需要的小伙伴们复制粘贴(插件没有bug,可以放心使用,喜欢的给个赞哦(o^*^o)!!...
阅读 3670·2021-09-22 15:28
阅读 1295·2021-09-03 10:35
阅读 877·2021-09-02 15:21
阅读 3474·2019-08-30 15:53
阅读 3494·2019-08-29 17:25
阅读 569·2019-08-29 13:22
阅读 1555·2019-08-28 18:15
阅读 2284·2019-08-26 13:57