自定义div 拖动。键盘上下左右键移动,ctrl+Q控制是否可以移动,ctrl+回车,返回初始状态
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="智能社 - zhinengshe.com" />
<meta name="copyright" content="智能社 - zhinengshe.com" />
<title>智能社 - www.zhinengshe.com</title>
<style>
*{margin:;padding:;list-style:none;}
#div1{ position:absolute;left:;top:;width:200px; height:200px; background:red;} </style>
<script> window.onload = function(){
var oDiv = document.getElementById("div1"); var bLeft = bTop = bRight = bBottom = false;
var step = ;
var bDarg = false; var json = {width:oDiv.offsetWidth + "px",height:"200px",left:,top:,background:"red"}; function initDiv(json){
for(var name in json){
oDiv.style[name] = json[name];//?
}
} document.onkeydown = function(ev){
var oEvent = ev || event; var keyCode = oEvent.keyCode; switch(keyCode){
case :
bLeft = true;
break;
case :
bTop = true;
break;
case :
bRight = true;
break;
case :
bBottom = true;
break;
} //ctrl + Q 控制是否可以拖拽
if(oEvent.ctrlKey && keyCode == ){ bDarg = !bDarg;
if(bDarg){
drag();
} else {
noDrag();
} } //ctrl + 上 中心点放大
if(oEvent.ctrlKey && keyCode == ){
bTop = false;
oDiv.style.width = oDiv.offsetWidth + step + "px";
oDiv.style.height = oDiv.offsetHeight + step + "px";
oDiv.style.left = oDiv.offsetLeft - step/ + "px";
oDiv.style.top = oDiv.offsetTop - step/ + "px"; } //ctrl + 下 中心点缩小
if(oEvent.ctrlKey && keyCode == ){
bBottom = false;
oDiv.style.width = oDiv.offsetWidth - step + "px";
oDiv.style.height = oDiv.offsetHeight - step + "px";
oDiv.style.left = oDiv.offsetLeft + step/ + "px";
oDiv.style.top = oDiv.offsetTop + step/ + "px";
} //ctrl + 回车 还原到左上角
if(oEvent.ctrlKey && keyCode == ){
//oDiv.style.cssText = " position:absolute;left:0;top:0;width:200px; height:200px; background:red;"; initDiv(json);
} }; document.onkeyup = function(ev){
var oEvent = ev || event; var keyCode = oEvent.keyCode; switch(keyCode){
case :
bLeft = false;
break;
case :
bTop = false;
break;
case :
bRight = false;
break;
case :
bBottom = false;
break;
}
}; setInterval(function(){
if(bLeft){
oDiv.style.left = oDiv.offsetLeft - step + "px";
}
if(bTop){
oDiv.style.top = oDiv.offsetTop - step + "px";
}
if(bRight){
oDiv.style.left = oDiv.offsetLeft + step + "px";
}
if(bBottom){
oDiv.style.top = oDiv.offsetTop + step + "px";
} },); function noDrag(){
oDiv.onmousedown = null;
} function drag(){
oDiv.onmousedown = function(ev){ var oEvent = ev || event;
var disX = oEvent.clientX - oDiv.offsetLeft;
var disY = oEvent.clientY - oDiv.offsetTop; document.onmousemove = function(ev){
var oEvent = ev || event;
var l=oEvent.clientX-disX;
var t=oEvent.clientY-disY;
if(l<){
l=;
}else if(l > document.documentElement.clientWidth - oDiv.offsetWidth) {
l = document.documentElement.clientWidth - oDiv.offsetWidth;
}
if(t<){
t=;
} else if(t > document.documentElement.clientHeight - oDiv.offsetHeight) {
t = document.documentElement.clientHeight - oDiv.offsetHeight;
}
oDiv.style.left = l + "px";
oDiv.style.top = t + "px";
}; document.onmouseup = function(){
document.onmousemove = null;
document.onmouseup = null; oDiv.releaseCapture && oDiv.releaseCapture(); //释放捕获
};
//捕获 解决IE浏览器下拖拽图片的bug,即图片拖拽过程中不跟随鼠标移动直接到达鼠标目标点
oDiv.setCapture && oDiv.setCapture();
return false;
};
} }; </script>
</head> <body>
<div id="div1"></div>
</body>
</html>
自定义div 拖动。键盘上下左右键移动,ctrl+Q控制是否可以移动,ctrl+回车,返回初始状态的更多相关文章
- JS控制文本框内键盘上下左右键的焦点
avaScript键盘上下左右控制文本框焦点的方法有很多,这里简单说两种方法: 方法一: 创建一个table的dom元素,包含5行4列的文本框 <!DOCTYPE HTML PUBLIC &qu ...
- 通过键盘上下键 JS事件,控制候选词的选择项
效果图 JS代码 //上下键 选择事件 searchBackgroud 为样式,只做标记,无实质样式,因为和其他样式不兼容,只能添加CSS $(document).keydown(function ( ...
- jquery实现输入框聚焦,键盘上下键选择城市
在最近有个项目中 需要实现当文本框聚焦的时候,可以键盘上下键选择内容,按enter键的时候,把内容传到输入框中,如图所示: 实现代码如下: /** *输入框聚焦,键盘上下键选择城市 */ ;(func ...
- 键盘虚拟键值编码表 使用keybd_Event
键盘虚拟键值编码表 使用keybd_Event 模拟键盘输入首先要用到一个API函数:keybd_event. 我们是菜鸟,所以不必具体去理解它的详细用法,只要按以下方法使用即可了!呵呵! 模拟按键有 ...
- KeyboardJS 开发指南 - 与 Three.js 配合使用的捕捉键盘组合键库
KeyboardJS 开发指南 - 与 Three.js 配合使用的捕捉键盘组合键库 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非 ...
- js js键盘各键对应的代码 ---转
0x1 鼠标左键\r 0x2 鼠标右键\r 0x3 CANCEL 键\r 0x4 鼠标中键\r 0x8 BACKSPACE 键\r 0x9 TAB 键\r 0xC CLEAR 键\r 0xD ENTE ...
- 键盘各键对应的编码值(key code)
原文:键盘各键对应的编码值(key code) 来源:http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes ...
- 让一个div拖动和让一个panel拖动加拉大拉小
一.让一个div拖动 <!doctype html> <html xmlns="http://www.w3.org/1999/xhtml"> <hea ...
- 在tmux中的vi 上下左右键变为了ABCD等字符
在本机上用vim编辑时,上下左右键没有问题,但是在tmux中确出现ABCD等字符. 原因是在tmux这个终端,默认做了字符转换,网上搜了很多答案,解决问题的设置是: set term=xterm
随机推荐
- tensorflow reduction_indices理解
在tensorflow的使用中,经常会使用tf.reduce_mean,tf.reduce_sum等函数,在函数中,有一个reduction_indices参数,表示函数的处理维度,直接上图,一目了然 ...
- tensorflow 生成随机数 tf.random_normal 和 tf.random_uniform 和 tf.truncated_normal 和 tf.random_shuffle
____tz_zs tf.random_normal 从正态分布中输出随机值. . <span style="font-size:16px;">random_norma ...
- Delphi XE5 for Android (四)
在Delphi中窗体与窗体之间的交互与调用非常简单,在FMX中这个优势得到了充分体现,先建立一个主窗体和一个需要调用的窗体: 在主窗体上放的按钮事件如下: - private { Pr ...
- C Looooops(扩展欧几里得)题解
A Compiler Mystery: We are given a C-language style for loop of type for (variable = A; variable != ...
- C#学习笔记(三):逻辑关系运算符和if语句
条件语句 分支语句和循环语句是程序里最重要的逻辑. IF语句.分支语句.循环语句 using System; using System.Collections.Generic; using Syste ...
- Java ServletContext详解
转载: ServletContext,是一个全局的储存信息的空间,服务器开始,其就存在,服务器关闭,其才释放.request,一个用户可有多个:session,一个用户一个:而servletConte ...
- miRNA几大常用的数据库
1.miRbasehttp://www.mirbase.org/2.miRDBhttp://www.mirdb.org/miRDB/policy.html3.miRandahttp://www.mic ...
- flask报错No module named 'flask.ext'
解决: from flask.ext.httpauth import HTTPBasicAuth 改为 from flask_httpauth import HTTPBasicAuth 提示Modul ...
- python 元组转字符串
tup = ('e', 'x', 'e', 'r', 'c', 'i', 's', 'e', 's') str = ''.join(tup) print(str)
- 百度编辑器 Ueditor 上传图片时打开文件夹的延迟问题,点击上传图片弹窗打开慢问题
在使用 ueditor 开发时, 作为一个web文本编辑器使用时. 当点击上传图片时, 文件夹要延迟好久才能打开. 解决: 针对多图片上传, 将/ueditor/dialogs/image/ima ...