jQuery实现用方向键控制层的上下左右移动


Posted in Javascript onJanuary 13, 2013

题目:按下方向键时,使层向相应的方向平滑移动20像素;四个方向键的键码分别是37(左)、38(上)、39(右)和40(下)。

然后我写了下面的代码

jQuery实现用方向键控制层的上下左右移动

$div就是要移动的层,且它的position已在CSS中设为relative。瞄一眼好像没什么问题,运行之后发现下面的问题:

1.按了向下之后,再按向上没有反应。

2.按了向右之后,再按向左没有反应。

后来经一网友点拨,恍然大悟:

当按了向下的时候,top值为20px,这时候再按向上,从Firebug可以看出此时的bottom值也是20px,而层没有向上移动是因为浏览首先解析的是top,也就是说{top:20px;bottom:100px}和{top:20px}是一样的,不管bottom值是多少。按了向右之后,按向左没有反应也是这个原因,关键在left值。

于是将代码改了下

jQuery实现用方向键控制层的上下左右移动

运行之后如预期一样,上下左右都没问题。

体会:一直都知道在定位的时候,靠top和left两个属性就足够的,偏偏还写出了right/bottom,真是细节要人命啊。

Javascript 相关文章推荐
Javascript 构造函数 实例分析
Nov 26 Javascript
30个最佳jQuery Lightbox效果插件分享
Apr 11 Javascript
js实现网站首页图片滚动显示
Feb 04 Javascript
基于javascript实现按圆形排列DIV元素(一)
Dec 02 Javascript
AngularJS集合数据遍历显示的实例
Dec 27 Javascript
JavaScript对象拷贝与Object.assign用法实例分析
Jun 20 Javascript
node.js到底要不要加分号浅析
Jul 11 Javascript
微信小程序methods中定义的方法互相调用的实例代码
Aug 07 Javascript
使用vue完成微信公众号网页小记(推荐)
Apr 28 Javascript
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
Aug 23 Javascript
Vue中实现回车键切换焦点的方法
Feb 19 Javascript
Axios代理配置及封装响应拦截处理方式
Apr 07 Vue.js
js模仿html5 placeholder适应于不支持的浏览器
Jan 13 #Javascript
ie6下png图片背景不透明的解决办法使用js实现
Jan 11 #Javascript
关于全局变量和局部变量的那些事
Jan 11 #Javascript
jquery延迟加载外部js实现代码
Jan 11 #Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
Jan 11 #Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
Jan 11 #Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
Jan 11 #Javascript
You might like
如何利用php+mysql保存和输出文件
2006/10/09 PHP
PHP 如何获取二维数组中某个key的集合
2014/06/03 PHP
CI配置多数据库访问的方法
2016/03/28 PHP
几个高效,简洁的字符处理函数
2007/04/12 Javascript
jquery ui对话框实例代码
2013/05/10 Javascript
简单常用的幻灯片播放实现代码
2013/09/25 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
Jquery日期选择datepicker插件用法实例分析
2015/06/08 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
2015/08/09 Javascript
javascript制作照片墙及制作过程中出现的问题
2016/04/04 Javascript
微信小程序图片横向左右滑动案例
2017/05/19 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
2018/05/08 Javascript
关于vue v-for 循环问题(一行显示四个,每一行的最右边那个计算属性)
2018/09/04 Javascript
vue封装swiper代码实例解析
2019/10/08 Javascript
Python中处理时间的几种方法小结
2015/04/09 Python
python 添加用户设置密码并发邮件给root用户
2016/07/25 Python
使用实现pandas读取csv文件指定的前几行
2018/04/20 Python
python 读取文件并把矩阵转成numpy的两种方法
2019/02/12 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
如何通过安装HomeBrew来安装Python3
2020/12/23 Python
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
澳大利亚领先的折扣药房:Chemist Direct(有中文站)
2018/11/24 全球购物
植村秀美国官网:Shu Uemura美国
2019/03/19 全球购物
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
荷兰网上药店:Drogisterij.net
2019/09/03 全球购物
安全生产管理合理化建议书
2014/03/12 职场文书
代理协议书范本
2014/04/22 职场文书
离婚财产分配协议书
2014/10/21 职场文书
2015年学校后勤工作总结
2015/04/08 职场文书
springBoot基于webSocket实现扫码登录
2021/06/22 Java/Android
详解flex:1什么意思
2022/07/23 HTML / CSS