编写一个软键盘,虚拟键盘又称为软键盘还是比较实用的
软键盘是通过软件模拟键盘通过鼠标点击输入字符,作用是为了防止木马记录键盘输入的密码,一般在一些银行的网站上要求输入帐号和密码的地方容易看到。下面键盘实现了大小写转换&&删除&&换行&&tab&&shift(没有中文)功能哈哈!大家可以看看效果图:
1.HTML代码:keyboard.html
<html lang="en">
<head>
<meta charset=UTF-8" />
<title>JS+JQuery软键盘</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script src="js/jquery.js"></script>
<script src="js/keyboard.js"></script>
</head>
<body>
<div id="container"> <textarea id="write" rows="6" cols="57"></textarea>
<ul id="keyboard">
<li class="symbol"><span class="off">`</span><span class="on">~</span></li>
<li class="symbol"><span class="off">1</span><span class="on">!</span></li>
<li class="symbol"><span class="off">2</span><span class="on">@</span></li>
<li class="symbol"><span class="off">3</span><span class="on">#</span></li>
<li class="symbol"><span class="off">4</span><span class="on">$</span></li>
<li class="symbol"><span class="off">5</span><span class="on">%</span></li>
<li class="symbol"><span class="off">6</span><span class="on">^</span></li>
<li class="symbol"><span class="off">7</span><span class="on">&</span></li>
<li class="symbol"><span class="off">8</span><span class="on">*</span></li>
<li class="symbol"><span class="off">9</span><span class="on">(</span></li>
<li class="symbol"><span class="off">0</span><span class="on">)</span></li>
<li class="symbol"><span class="off">-</span><span class="on">_</span></li>
<li class="symbol"><span class="off">=</span><span class="on">+</span></li>
<li class="delete lastitem">Delete</li>
<li class="tab">Tab</li>
<li class="letter">q</li>
<li class="letter">w</li>
<li class="letter">e</li>
<li class="letter">r</li>
<li class="letter">t</li>
<li class="letter">y</li>
<li class="letter">u</li>
<li class="letter">i</li>
<li class="letter">o</li>
<li class="letter">p</li>
<li class="symbol"><span class="off">[</span><span class="on">{</span></li>
<li class="symbol"><span class="off">]</span><span class="on">}</span></li>
<li class="symbol lastitem"><span class="off">\</span><span class="on">|</span></li>
<li class="capslock">Caps lock</li>
<li class="letter">a</li>
<li class="letter">s</li>
<li class="letter">d</li>
<li class="letter">f</li>
<li class="letter">g</li>
<li class="letter">h</li>
<li class="letter">j</li>
<li class="letter">k</li>
<li class="letter">l</li>
<li class="symbol"><span class="off">;</span><span class="on">:</span></li>
<li class="symbol"><span class="off">'</span><span class="on">"</span></li>
<li class="return lastitem">return</li>
<li class="left-shift">Shift</li>
<li class="letter">z</li>
<li class="letter">x</li>
<li class="letter">c</li>
<li class="letter">v</li>
<li class="letter">b</li>
<li class="letter">n</li>
<li class="letter">m</li>
<li class="symbol"><span class="off">,</span><span class="on"><</span></li>
<li class="symbol"><span class="off">.</span><span class="on">></span></li>
<li class="symbol"><span class="off">/</span><span class="on">?</span></li>
<li class="right-shift lastitem">Shift</li>
<li class="space lastitem"> </li>
</ul>
</div>
</body>
</html>
2.CSS代码:keyboardStyle.css
* {
margin: 0;
padding: 0;
font-family: 'Microsoft Yahei';
}
body {
background: #eee;
font-size: 16px;
}
#container {
margin: 100px auto;
width: 688px;
}
#write {
margin: 0 0 5px;
padding: 5px;
width: 671px;
height: 200px;
font-size: 16px;
background: #fff;
border: 1px solid #f9f9f9;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
#keyboard {
margin: 0;
padding: 0;
list-style: none;
}
#keyboard li {
float: left;
margin: 0 5px 5px 0;
width: 40px;
height: 40px;
line-height: 40px;
text-align: center;
background: #fff;
border: 1px solid #f9f9f9;
cursor: pointer;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
#keyboard li:hover {
position: relative;
top: 1px;
left: 1px;
border-color: #e5e5e5;
background: #FFF1C2;
}
.capslock, .tab, .left-shift {
clear: left;
}
#keyboard .tab, #keyboard .delete {
width: 70px;
}
#keyboard .capslock {
width: 80px;
}
#keyboard .return {
width: 77px;
}
#keyboard .left-shift {
width: 95px;
}
#keyboard .right-shift {
width: 109px;
}
.lastitem {
margin-right: 0;
}
.uppercase {
text-transform: uppercase;
}
#keyboard .space {
clear: left;
width: 674px;
}
.on {
display: none;
}
3.JS+jQuery代码:keyboard.js 注意使用jQuery必须引用jQuery 脚本库,最后再说明
$(function() {
var $write = $("#write"),
shift = false,
capslock = false;
$("li").on("click",function() {
var $this = $(this),
character = $this.html();
// Shift
if ($this.hasClass("left-shift") || $this.hasClass("right-shift")) {
$(".letter").toggleClass("uppercase");
$(".symbol span").toggle();
shift = (shift === true) ? false : true;
capslock = false;
return false;
}
// 大小写Caps lock
if ($this.hasClass("capslock")) {
$(".letter").toggleClass("uppercase");
capslock = true;
return false;
}
// 删除
if ($this.hasClass("delete")) {
var html = $write.html();
$write.html(html.substr(0, html.length - 1));
return false;
}
// 特殊字符
if ($this.hasClass("symbol")){
character = $("span:visible", $this).html();
}
if ($this.hasClass("space")){
character = " ";
}
if ($this.hasClass("tab")){
character = "\t";
}
if ($this.hasClass("return")){
character = "\n";
}
// 大写
if ($this.hasClass("uppercase")) character = character.toUpperCase();
$write.html($write.html() + character);
});
});
链接:https://code.jquery.com/jquery-3.4.1.min.js进去后全部复制,在桌面建一个jQuery.txt复制进去后保存名字为jQuery.js在项目引入:<script src="js/jquery.js"></script>