html代码
DOCTYPE html
>
<
html
>
<
head
>
<
meta
charset=
"UTF-8"
>
<
title
>pagination-nick
title
>
<
link
rel=
"stylesheet"
href=
"css/key.css"
>
head
>
<
body
>
<
div
class=
"key_plug"
>
<
div
class=
"small_key"
>
<
input
type=
"text"
class=
"keyboard"
autofocus=
""
placeholder=
"账号"
>
<
span
id=
"key_icon"
>
span
>
div
>
<
div
class=
"keys"
>
<
ul
class=
"key-contianer"
id=
"container"
>
<
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
>
div
>
<
script
src=
"lib/jquery/jquery-3.3.1.min.js"
>
<
/
script
>
<
script
src=
"js/key.js"
>
<
/
script
>
<
script
>
<
/
script
>
body
>
html
>
css代码
/* 键盘距离 */
.key_plug{
margin-top:
50px;
}
/* 隐藏 */
.temp_hidden{
display:
none;
}
/* 容器大小随意 居中处理*/
.key_plug .small_key{
width:
200px;
height:
100px;
margin:
0
auto;
}
/* 小键盘图标 */
.key_plug .small_key span{
display:
inline-block;
width:
20px;
height:
20px;
background:
url(
../img/key.png)
no-repeat;
}
/* 键盘外容器设定 */
.keys{
margin:
0
auto;
width:
700px;
border-radius:
3%;
box-shadow:
0
0
3px
rgba(
0,
0,
0,
0.9);
}
.key-contianer{
margin:
0;
padding:
0;
list-style:
none;
height:
235px;
width:
722px;
padding:
10px;
border-radius:
3%;
}
/* 键盘设定样式 */
.key-contianer li {
float:
left;
margin:
0
5px
5px
0;
width:
40px;
height:
40px;
line-height:
40px;
text-align:
center;
background:
#fff;
border:
1px
solid
#f9f9f9;
border-radius:
5px;
box-shadow:
0
0
3px
rgba(
0,
0,
0,
0.9);
}
.capslock, .tab, .left-shift {
clear:
left;
}
.key-contianer .tab, #keyboard .delete {
width:
70px;
}
.key-contianer .capslock {
width:
80px;
}
.key-contianer .return {
width:
77px;
}
.key-contianer .left-shift {
width:
95px;
}
.key-contianer .right-shift {
width:
107px;
}
.lastitem {
margin-right:
0;
}
.uppercase {
text-transform:
uppercase;
}
.key-contianer .space {
clear:
left;
width:
678px;
}
.key-contianer .delete{
width:
70px;
}
.on {
display:
none;
}
.key-contianer li:hover {
position:
relative;
top:
1px;
left:
1px;
border-color:
#e5e5e5;
cursor:
pointer;
}
js代码
;(
function(
$){
var
indexCtrl =
function(){
var
shift =
false;
var
capslock =
false;
//找到input文本框
var
keyUpdate=
function(){
$write=
$(
this);
}
//点击key小图标虚拟键盘进行隐藏或显示
var
keyToggle=
function(){
if (
$(
'.keys').
hasClass(
'temp_hidden')) {
$(
'.keys').
removeClass(
'temp_hidden');
}
else {
$(
'.keys').
addClass(
'temp_hidden');
}
}
//点击键盘按键的处理
var
keyOperate =
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键进行大写锁定和解除大写锁定的处理
if (
$this.
hasClass(
'capslock')) {
$(
'.letter').
toggleClass(
'uppercase');
capslock =
true;
return
false;
}
// 点击Delete键进行删除处理
if (
$this.
hasClass(
'delete')) {
var
html =
$write.
val();
$write.
val(
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
";
// Uppercase letter
if (
$this.
hasClass(
'uppercase'))
character =
character.
toUpperCase();
// Remove shift once a key is clicked.
if (
shift ===
true) {
$(
'.symbol span').
toggle();
if (
capslock ===
false)
$(
'.letter').
toggleClass(
'uppercase');
shift =
false;
}
// 点击后的字符拼接
$write.
val(
$write.
val()+
character);
}
var
loadEvent=
function(){
$(
'.keyboard').
bind(
"click",
keyUpdate);
$(
"#key_icon").
bind(
"click",
keyToggle);
$(
"#container li").
bind(
"click",
keyOperate);
}
return{
init
:
function(){
loadEvent();
}
}
}();
indexCtrl.
init();
})(
jQuery);
效果:
