jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】


Posted in jQuery onApril 26, 2018

本文实例讲述了jQuery实现通过方向键控制div块上下左右移动的方法。分享给大家供大家参考,具体如下:

在CSS中当DOM元素的position属性为absoluterelative时,我们可以通过改变这个元素的lefttop属性的具体值来控制元素在页面中显现的位置。

利用上述属性,我们可以简单实现一个元素在页面中的移动效果,这里我们采用JQuery的animate方法来实现动画效果,利用keydown监听方向键按下的事件(这里采用keydown而不是keyup,是为了能够在方向键被一直按着时,元素一直移动,keydown是监听按下事件,keyup是监听按键释放事件)。这里我们还可以利用animate方法的一个特点,就是当其属性的值为'+='或'-='之类时,它会根据原先的值先进行计算,再赋给相应的属性,这个和C++的运算符是一致的。

核心代码如下所示:

$(document).keydown(function(event){
    var keyNum = event.which;  //获取键值
    var Item = $('#switcher');  //要移动的元素
    Item.css({position:'relative'}); //设置position
    switch(keyNum){ //判断按键
    case 37: Item.animate({left:'-=20px'});break;
    case 38: Item.animate({top:'-=20px'});break;
    case 39: Item.animate({left:'+=20px'});break;
    case 40: Item.animate({top:'+=20px'});break;
    default:
      break;
    }
});

完整示例代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>3water.com jQuery控制div移动</title>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
</head>
<body>
<div id="switcher" style="width:200px;height:200px;border:solid 1px #000;">
</div>
<script>
$(document).keydown(function(event){
    var keyNum = event.which;  //获取键值
    var Item = $('#switcher');  //要移动的元素
    Item.css({position:'relative'}); //设置position
    switch(keyNum){ //判断按键
    case 37: Item.animate({left:'-=20px'});break;
    case 38: Item.animate({top:'-=20px'});break;
    case 39: Item.animate({left:'+=20px'});break;
    case 40: Item.animate({top:'+=20px'});break;
    default:
      break;
    }
});
</script>
</body>
</html>

运行效果:

jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
May 13 jQuery
JavaScript之事件委托实例(附原生js和jQuery代码)
Jul 22 jQuery
jquery鼠标悬停导航下划线滑出效果
Sep 29 jQuery
简单实现jQuery弹窗效果
Oct 30 jQuery
jQuery ajax读取本地json文件的实例
Oct 31 jQuery
jQuery实现的手动拖动控制进度条效果示例【测试可用】
Apr 18 jQuery
jQuery实现鼠标滑过商品小图片上显示对应大图片功能【测试可用】
Apr 27 jQuery
jQuery实现获取选中复选框的值实例详解
Jun 28 jQuery
jQuery事件多次绑定与解绑问题实例分析
Feb 19 jQuery
使用jquery的cookie实现登录页记住用户名和密码的方法
Mar 13 jQuery
jquery传参及获取方式(两种方式)
Feb 13 jQuery
jquery插件懒加载的示例
Oct 24 jQuery
jQuery length 和 size()区别总结
Apr 26 #jQuery
jQuery+ajax实现动态添加表格tr td功能示例
Apr 23 #jQuery
jQuery中图片展示插件highslide.js的简单dom
Apr 22 #jQuery
手写简单的jQuery雪花飘落效果实例
Apr 22 #jQuery
JQuery元素快速查找与操作
Apr 22 #jQuery
关于jquery layui弹出层的使用方法
Apr 21 #jQuery
jQuery中的for循环var与let的区别
Apr 21 #jQuery
You might like
常用的php对象类型判断
2008/08/27 PHP
PHP 用数组降低程序的时间复杂度
2009/12/04 PHP
解析如何在PHP下载文件名中解决乱码的问题
2013/06/20 PHP
PHP连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
2014/07/12 PHP
php中的mongodb select常用操作代码示例
2014/09/06 PHP
php中get_object_vars()方法用法实例
2015/02/08 PHP
javascript阻止scroll事件多次执行的思路及实现
2013/11/08 Javascript
js jquery ajax的几种用法总结(及优缺点介绍)
2014/01/28 Javascript
详解addEventListener的三个参数之useCapture
2015/03/16 Javascript
js实现鼠标点击左上角滑动菜单效果代码
2015/09/06 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
详解Vue组件之间的数据通信实例
2017/06/17 Javascript
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
Vue 样式切换及三元判断样式关联操作
2020/08/09 Javascript
[03:14]辉夜杯主赛事 12月25日每日之星
2015/12/26 DOTA
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
PyQt4实现下拉菜单可供选择并打印出来
2018/04/20 Python
python创建文件备份的脚本
2018/09/11 Python
对python Tkinter Text的用法详解
2018/10/11 Python
使用PM2+nginx部署python项目的方法示例
2018/11/07 Python
对python字典过滤条件的实例详解
2019/01/22 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
2019/06/18 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
如何搭建pytorch环境的方法步骤
2020/05/06 Python
浅谈Python中的模块
2020/06/10 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
next在python中返回迭代器的实例方法
2020/12/15 Python
俄罗斯建筑和装饰材料在线商店:Stroilandia
2020/07/25 全球购物
使用索引有什么好处
2016/07/27 面试题
宾馆总经理岗位职责
2014/02/14 职场文书
新年晚会主持词
2014/03/24 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书
Oracle11g R2 安装教程完整版
2021/06/04 Oracle