JS实现软键盘的效果源代码(经典)

本文分享了如何使用JavaScript实现一个软键盘的效果,包括代码实现和功能介绍,适用于网页密码输入等场景。通过点击按钮输入字符,提供退格和确认功能,并支持切换大小写输入。
摘要由CSDN通过智能技术生成

JS实现软键盘的效果源代码(经典)

见过很多网站在输入密码的时候使用的软键盘吗?你想在自己的网站上也有这样的功能吗?下面就是源代码!

//定义当前是否大写的状态
//<input name="UserPassword" type="Password" size="15" maxlength="15" onMouseOut="this.style.background=''" onMouseOver="this.style.background='#F9F9F9'" onFocus="this.select();" readOnly onKeyDown="Calc.password.value=this.value" onChange="Calc.password.value=this.value" οnclick= "password1=this;showkeyboard();this.readOnly=1;Calc.password.value=''">
window.οnlοad=
 function()
 {
  password1=null;  
  initCalc();
 }

var CapsLockValue=0;

var check;
function setVariables() {
tablewidth=630;  // logo width, in pixels
tableheight=20;  // logo height, in pixels
if (navigator.appName == "Netscape") {
horz=".left";
vert=".top";
docStyle="document.";
styleDoc="";
innerW="window.innerWidth";
innerH="window.innerHeight";
offsetX="window.pageXOffset";
offsetY="window.pageYOffset";
}
else {
horz=".pixelLeft";
vert=".pixelTop";
docStyle="";
styleDoc=".style";
innerW="document.body.clientWidth";
innerH="document.body.clientHeight";
offsetX="document.body.scrollLeft";
offsetY="document.body.scrollTop";
   }
}
function checkLocation() {
if (check) {
objectXY="softkeyboard";
var availableX=eval(innerW);
var availableY=eval(innerH);
var currentX=eval(offsetX);
var currentY=eval(offsetY);
x=availableX-tablewidth+currentX;
//y=availableY-tableheight+currentY;
y=currentY;

evalMove();
}
setTimeout("checkLocation()",0);
}
function evalMove() {
//eval(docStyle + objectXY + styleDoc + horz + "=" + x);
eval(docStyle + objectXY + styleDoc + vert + "=" + y);
}
 self.onError=null;
 currentX = currentY = 0; 
 whichIt = null;          
 lastScrollX = 0; lastScrollY = 0;
 NS = (document.layers) ? 1 : 0;
 IE = (document.all) ? 1: 0;
 function heartBeat() {
  if(IE) { diffY = document.body.scrollTop; diffX = document.body.scrollLeft; }
     if(NS) { diffY = self.pageYOffset; diffX = self.pageXOffset; }
  if(diffY != lastScrollY) {
                 percent = .1 * (diffY - lastScrollY);
                 if(percent > 0) percent = Math.ceil(percent);
                 else percent = Math.floor(percent);
     if(IE) document.all.softkeyboard.style.pixelTop += percent;
     if(NS) document.softkeyboard.top += percent;
                 lastScrollY = lastScrollY + percent;}
  if(diffX != lastScrollX) {
   percent = .1 * (diffX - lastScrollX);
   if(percent > 0) percent = Math.ceil(percent);
   else percent = Math.floor(percent);
   if(IE) document.all.softkeyboard.style.pixelLeft += percent;
   if(NS) document.softkeyboard.left += percent;
   lastScrollX = lastScrollX + percent; }  }
 function checkFocus(x,y) {
         stalkerx = document.softkeyboard.pageX;
         stalkery = document.softkeyboard.pageY;
         stalkerwidth = document.softkeyboard.clip.width;
         stalkerheight = document.softkeyboard.clip.height;
         if( (x > stalkerx && x < (stalkerx+stalkerwidth)) && (y > stalkery && y < (stalkery+stalkerheight))) return true;
         else return false;}
 function grabIt(e) {
     check = false;
  if(IE) {
   whichIt = event.srcElement;
   while (whichIt.id.indexOf("softkeyboard") == -1) {
    whichIt = whichIt.parentElement;
    if (whichIt == null) { return true; } }
   whichIt.style.pixelLeft = whichIt.offsetLeft;
      whichIt.style.pixelTop = whichIt.offsetTop;
   currentX = (event.clientX + document.body.scrollLeft);
      currentY = (event.clientY + document.body.scrollTop);  
  } else {
         window.captureEvents(Event.MOUSEMOVE);
         if(checkFocus (e.pageX,e.pageY)) {
                 whichIt = docu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值