帮助中心
获取牛币
联系我们
关于我们
版权声明
素材牛首页
微博登录
QQ登录
微信扫码登录
注册
登录
新浪微博
QQ登陆
微信登录
热门搜索:
小程序
支付
Java
后台模板
上传
商城模板
jQuery
手机
Thinkphp
微信
Vue.js
首 页
网页特效
整站源码
PHP实例
网站模版
工具箱
常用代码
论坛
游戏源码
资源分享
当前位置:
首页
»
精选常用代码
» JS拖动重力碰撞
JS拖动重力碰撞
浏览:459次
-
评论:0次
-
发布时间:2017-08-07
Html
Css
Js
拖动
#box { width:100px; height:100px; background:#ff0000; position:absolute; }
window.onload = function() { var oDiv = document.getElementById("box"); var lastX = 0; var lastY = 0; oDiv.onmousedown = function(ev) { //鼠标按下 var ev = event || ev; //获取鼠标事件 var evX = ev.clientX; //获取鼠标横坐标 var evY = ev.clientY; //获取鼠标纵坐标 var cX = evX - oDiv.offsetLeft; //鼠标相对于DIV的横坐标 var cY = evY - oDiv.offsetTop; //鼠标相对于DIV的纵坐标 document.onmousemove = function(ev) { //鼠标移动 var ev = event || ev; var divL = ev.clientX - cX; var divT = ev.clientY - cY; if (divL <= 0) { //左右边界出界判定 divL = 0; } else if (divL >= document.documentElement.clientWidth - oDiv.offsetWidth) { divL = document.documentElement.clientWidth - oDiv.offsetWidth; } if (divT <= 0) { //上下边界出界判定 divT = 0; } else if (divT >= document.documentElement.clientHeight - oDiv.offsetHeight) { divT = document.documentElement.clientHeight - oDiv.offsetHeight; } oDiv.style.left = divL + 'px'; oDiv.style.top = divT + 'px'; oSpeedX = divL - lastX; oSpeedY = divT - lastY; lastX = divL; lastY = divT; return false; //阻止默认事件 } document.onmouseup = function() { //鼠标抬起 document.onmousemove = null; document.onmouseup = null; myMove(oDiv); //函数调用 } clearInterval(iTime) } // myMove(oDiv); } var iTime = null; var oSpeedX = 0; //横向速度 var oSpeedY = 0; //纵向速度 function myMove(obj) { //运动动画函数 clearInterval(iTime); // iTime = setInterval(function() { //计时器 oSpeedY += 3; //加速度 var l = obj.offsetLeft + oSpeedX; //横坐标 var t = obj.offsetTop + oSpeedY; //纵坐标 if (t >= document.documentElement.clientHeight - obj.offsetHeight) { //上下边界判定 oSpeedY *= -0.7; oSpeedX *= 0.7; t = document.documentElement.clientHeight - obj.offsetHeight + "px"; } else if (t <= 0) { oSpeedY *= -1 t = 0; } if (l >= document.documentElement.clientWidth - obj.offsetWidth) { //左右边界判定 oSpeedX *= -0.7; l = document.documentElement.clientWidth - obj.offsetWidth + "px"; } else if (l <= 0) { oSpeedX *= -0.7; l = 0; } if (Math.abs(oSpeedY) < 1) { oSpeedY = 0; } if (Math.abs(oSpeedX) < 1) { oSpeedX = 0; } if (oSpeedX == 0 && oSpeedY == 0 && t == document.documentElement.clientHeight - obj.offsetHeigh) { //运动停止 clearInterval(iTime); } else { obj.style.left = l + "px"; //横坐标移动 obj.style.top = t + "px"; //纵坐标移动 } }, 30) }
↑上面代码改变,会自动显示代码结果
jQuery调用版本:
1.11.3
<!doctype html><html><head><meta charset="utf-8"><title>JS拖动重力碰撞-www.sucainiu.com</title><script src="https://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script><style>
</style></head><body>
<script>
</script>
</body></html>
立即下载
收藏
积分说明:注册即送10牛币,每日签到可获得5牛币,成为VIP会员可永久免牛币下载!
充值积分
充值会员
更多说明»
代码描述:鼠标拖动,扔出拟重力弹跳碰撞
JS在屏幕内碰撞反效果
JS鼠标移入放大效果
讨论这个常用代码(0)
回答他人问题或分享心得会奖励牛币
〒_〒 居然一个评论都没有……
文明上网,理性发言! 😉 阿里云幸运券,
戳我领取
发表评论
提交回复
我的积分余额:
0
已下载次数:
459
所需牛币:
5
开始下载
牛币获取:
签到、评论、充值
» 在线充值
(10牛币=1元)
成为VIP可永久免积分下载全部常用代码
» 查看详情
VIP
客服
签到
充值