js+JQuery模拟键盘输入

js+JQuery模拟键盘输入

CSS样式:

@charset "utf-8";
*{margin:0;padding:0;font-family: 'Microsoft Yahei';}
body{background:#eee; font-size: 16px;}
/* container */
#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:681px;}
.on{display:none;}		

html

<div id="container">
    <textarea id="write" rows="6" cols="60"></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">&amp;</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">&quot;</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">&lt;</span></li>
        <li class="symbol"><span class="off">.</span><span class="on">&gt;</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">&nbsp;</li>
    </ul>
</div>

功能实现

<script type="text/javascript">
    $(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;
		}
		// 判断 大小写
		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);
	});
});

效果

在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
JavaScript是一种广泛应用于网页开发的脚本语言,它可以为网页添加动态功能和交互性。而jQuery是一个基于JavaScript的开源库,它简化了JavaScript的编程任务,提供了丰富的功能和简洁的语法。 JavaScript具有以下特点: 1. 客户端脚本语言:JavaScript在浏览器中运行,可以直接与用户交互,实现动态效果。 2. 弱类型语言:JavaScript不需要声明变量的类型,可以根据需要自动转换数据类型。 3. 面向对象:JavaScript支持面向对象编程,可以创建对象、定义类和使用继承等特性。 4. 事件驱动:JavaScript可以通过事件监听和处理来响应用户的操作。 而jQuery是一个流行的JavaScript库,它提供了许多简化和增强JavaScript编程的功能,包括: 1. DOM操作:jQuery提供了简洁的语法来选择和操作HTML元素,例如通过选择器选择元素、修改元素的样式、属性和内容等。 2. 事件处理:jQuery可以方便地绑定和处理各种事件,例如点击、鼠标移动等,使得页面交互更加灵活。 3. 动画效果:jQuery提供了丰富的动画效果,可以实现淡入淡出、滑动、渐变等效果,增强用户体验。 4. AJAX支持:jQuery封装了AJAX操作,可以方便地进行异步数据交互,实现无刷新更新页面内容。 总结起来,JavaScript是一种用于网页开发的脚本语言,而jQuery是一个基于JavaScript的库,提供了简化和增强JavaScript编程的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值