好久没有写博客了,最近有个需求关于数字键盘的,找了下网上的感觉有点重,太复杂!自己随手写了个符合自己需求的比较简单的,分享一下!希望大家指正
number.spiner.js
/** * 公共js方法 */ ;(function(win){ var NumberSpiner={ init:function(obj,type){ var that=this; var status=obj.getAttribute("data-status"); that.load(obj,type); if(status==1){ return; } // obj.onfoucs=function(){ // }; // obj.onblur=function(){ // var number_spinner=document.getElementById("number_spinner"); // number_spinner.style.display="none"; // }; }, load:function(obj,type){ var that=this; var $obj=$(obj); that.currentObj=$obj; var $number_spinner=$("#number_spinner"); if($number_spinner&&$number_spinner.length>0){ $number_spinner.show(); // return; }else{ var div=$("<div></div>"); div.attr("id","number_spinner"); div.attr("class","number-spinner"); var tempArr=['<ul class="number-box">']; tempArr.push('<li><div class="number" data-value="7">7</div></li>'); tempArr.push('<li><div class="number" data-value="8">8</div></li>'); tempArr.push('<li><div class="number" data-value="9">9</div></li>'); tempArr.push('<li><div class="number" data-value="4">4</div></li>'); tempArr.push('<li><div class="number" data-value="5">5</div></li>'); tempArr.push('<li><div class="number" data-value="6">6</div></li>'); tempArr.push('<li><div class="number" data-value="1">1</div></li>'); tempArr.push('<li><div class="number" data-value="2">2</div></li>'); tempArr.push('<li><div class="number" data-value="3">3</div></li>'); tempArr.push('<li><div class="number" data-value="0">0</div></li>'); tempArr.push('<li><div class="number" data-value=".">.</div></li><li><div class="number" data-value="del">删除</div></li>'); tempArr.push('</ul>'); div.html(tempArr.join("")); $(document.body).append(div); $number_spinner=$("#number_spinner"); $number_spinner.on("click",".number",function(){ var $this=$(this); var data_code=$this.attr("data-value"); $obj=that.currentObj; var val=$obj.val(); if(data_code){ switch(data_code){ case "del": var len=val.length; if(len==0){ val=""; }else{ val=val.substring(0,len-1); } $obj.val(val).trigger('input'); break; case ".": case "9": case "8": case "7": case "6": case "5": case "4": case "3": case "2": case "1": default: val+=data_code; $obj.val(val).trigger('input'); break; } } }); $(document).bind("click",function(e){ var obj=e.target; var $obj=$(obj); if(obj.tagName.toUpperCase()=="INPUT"||$obj.hasClass("number")){ return; }else{ $number_spinner=$("#number_spinner"); $number_spinner.hide(); } }); } // obj.setAttribute("data-status",1);\ var w_width=$(window).width(),w_height=$(window).height(); var offset=getAbsPoint(obj); var offset_top=offset.top; var offset_left=offset.left; var obj_height=$obj.outerHeight(); var obj_width=$obj.width(); var _h=$number_spinner.height(); var _w=$number_spinner.width(); var top=offset_top; var left=offset_left; if((offset_top+_h+obj_height)>w_height||type=="top"){ top=offset_top-_h-2; }else{ top=offset_top+obj_height+2; } if((offset_left+_w)>w_width){ left=offset_left-_w; }else{ left=offset_left; } $number_spinner.css({"top":top,"left":left}); } }; function getAbsPoint(e){ var x = e.offsetLeft, y = e.offsetTop; while(e=e.offsetParent){ x += e.offsetLeft; y += e.offsetTop; } console.log("x:"+x+","+"y:"+y); return {left:x,top:y}; } win['Team777NumberSpiner']=NumberSpiner; })(window);
基本css样式:
less版
.number-spinner{ .posa; z-index:3; // .p(3px); .number-box{ .p(2px); .bc(@white); .oh; li{ .w(33.3%); .fl; cursor:pointer; // .h(45); .lh(45); .number{ .m(2px); .yellow-style; .tc; } } } }
css版
.number-spinner { position: absolute; z-index: 3; } .number-spinner .number-box { padding: 2px; background-color: #ffffff; overflow: hidden; } .number-spinner .number-box li { width: 33.3%; float: left; cursor: pointer; line-height: 45px; } .number-spinner .number-box li .number { margin: 2px; background: #FDA24D; /* 一些不支持背景渐变的浏览器 */ background: -moz-linear-gradient(top, #fda24d, #fdda6f); background: -webkit-gradient(linear, 0 0, 0 bottom, from(#fda24d), to(#fdda6f)); background: -o-linear-gradient(top, #fda24d, #fdda6f); border-radius: 5px; text-align: center; }
引用处理
由于是用angularjs处理
<input type="text" class="input-txt" ng-model="orderManager.mdseCode" ng-click="orderManager.getNumber($event)">
$scope.orderManager.getNumber=function($event,type){ Team777NumberSpiner.init($event.target,type); };
相关推荐
通过以上步骤,我们可以创建一个C#实现的简易数字键盘,实现用户在`TextBox`中输入数字的功能,适用于拨号或其他类似需求。这个项目涉及了C# UI设计、事件处理和用户交互的基本概念,是学习C#编程的好起点。
压缩包中的"OskNum"可能包含了一个简单的数字键盘实现示例。你可以查看和学习这个示例的源代码,理解其工作原理,并根据需要进行修改和扩展。 通过以上步骤,你应该能够使用C#构建一个基本的数字键盘应用。记住,...
"jquery数字键盘银行网站数字键盘"就是一个针对这种需求的解决方案。它基于jQuery库,提供了简洁易用的数字输入键盘界面,确保用户只能输入数字,从而防止了通过常规键盘输入时可能存在的安全风险。 jQuery是一个...
在iOS开发中,有时我们可能需要为特定场景创建自定义的数字键盘,以提供更便捷或个性化的用户体验。本文将详细解析如何在iOS应用中实现一个自定义数字键盘。 首先,我们要了解iOS中的键盘类型。在UIKit框架中,`...
这个项目实现了一个可复用的数字键盘类,通过简单地实例化并调用`show()`方法,就可以在应用程序中显示数字键盘。下面我们将深入探讨这个数字键盘的实现细节、相关Qt组件和API,以及如何集成到你的项目中。 首先,`...
总结起来,创建一个简单的自定义纯数字键盘涉及以下步骤: 1. 创建自定义键盘布局,包括数字按键和可能的回退键。 2. 为每个按键设置点击事件监听器,处理用户输入。 3. 应用适当的设计风格,以匹配系统UI。 4. 考虑...
在本项目中,我们将探讨如何使用jQuery库来创建一个简单的数字键盘,以便用户能更方便地在特定文本框中输入数字,特别是用于密码输入等场景。 jQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理、动画...
以上代码示例展示了如何创建一个简单的数字键盘控件,并处理点击事件。`NumInput`事件允许外部订阅者接收用户输入的数字。 在实际应用中,你可能还需要考虑更多的细节,如输入验证、触摸友好性、自定义样式等。`MIS...
以上就是实现一个简单的Android自定义数字键盘的基本步骤。这个键盘可以根据实际需求进行扩展,例如添加更多特殊功能按钮,如加减乘除符号,或者增加对多行文本的支持。同时,也可以考虑优化键盘的视觉样式,使其与...
例如,一个简单的数字键盘布局可能如下: ```xml <!-- 其他数字键 --> <!-- 更多行 --> ``` 3. 实现键盘逻辑 在`CustomKeyboardService`类中,我们需要处理键盘的点击事件。在XML布局中定义的`onClick`...
1. **易于集成**:jQuery虚拟数字键盘插件调用简单,只需要在HTML页面中引入必要的JavaScript和CSS文件,然后通过jQuery选择器对目标输入框应用特定的事件触发键盘显示。 2. **自定义配置**:该插件通常允许开发者...
使用HTML和jQuery实现6位密码。使用H5结合JQuery,模仿支付宝和微信支付的六位密码输入,重新绘制定义数字键盘,在规定的数字键盘中的数字进行点击,将密码填进六格的输入框,一个简单的小demo,适合新手学习交流
本项目提供了一个“数字键盘”,它具有纯JavaScript(js)和jQuery(jq)两个版本,适用于创建一个只允许输入数字的简单键盘。 首先,我们来探讨纯JavaScript实现的数字键盘。JavaScript是一种广泛使用的客户端脚本...
总结来说,这个“纯数字键盘(兼容移动端)”项目展示了如何使用jQuery、HTML和CSS这三种核心技术来创建一个简单易用、适应不同设备的数字输入界面。通过学习和理解这个项目,开发者可以提升在前端开发领域的技能,...
这个“ios-纯数字键盘.zip”资源包提供了一个简单易用的解决方案,它允许开发者快速集成一个全数字的键盘到他们的应用程序中。以下是关于这个主题的详细知识: 1. **自定义键盘**: iOS系统默认提供了多种键盘类型,...
本项目名为“纯数字键盘123.rar”,它提供了一个专用于输入数字的键盘组件,适用于Qt Widget和Qt for Android平台。这样的设计旨在为用户在需要输入数值时提供便利,比如在填写电话号码、密码、金额等场景。 首先,...
这个“ios-自定义数字键盘.zip”文件就提供了这样的解决方案。让我们深入探讨一下这个自定义数字键盘的实现原理、使用方法以及可能的应用场景。 首先,我们要理解的是,iOS中的键盘并不像Android那样可以通过简单...
本文将详细解析如何实现“Android-DigitalKeyboard”,一个简单的仿微信数字键盘项目。 首先,理解Android控件是构建用户界面的基础。在Android开发中,我们通常使用TextView、EditText、Button等原生控件,但有时...
4. **数值处理**:为了实现数字键盘的功能,程序可能包括对输入数字的处理,比如验证输入的有效性,或者进行简单的计算。 5. **数据流模型**:LabVIEW采用数据流编程,意味着程序的执行依赖于数据的可用性,而不是...