手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >Javascript实现重力弹跳拖拽运动效果示例
Javascript实现重力弹跳拖拽运动效果示例
摘要:演示地址:http://www.ihuxu.com/project/gcdmove/调用示例:varGCDM=gcdMove(oDiv,10...

演示地址:

http://www.ihuxu.com/project/gcdmove/

调用示例:

var GCDM = gcdMove(oDiv,100,0);

GCDM.startMove();//开始运动

GCDM.stopMove();//结束运动

该段JS代码已经封装好了,代码如下:

简要说明 - obj为要改动的对象元素,通常为某个div;iSpeedX,iSpeedY为div出师的横向(右侧),竖向(下)的初始速度,当然也可以设为零。

复制代码 代码如下:

/**

* @Desc 重力碰撞拖拽运动 - Gravity Crash Drag Move(gcdMove)

* @Author GenialX

* @URL www.ihuxu.com

* @QQ 2252065614

* @Date 2013.06.22

*/

function gcdMove(obj, iSpeedX, iSpeedY) {

_this = this;//public identifier

//construct fun

var gcdMove;

//self defined fun

var start;

_this.startMove;

//other var

var iTimer;

var iLastX = 0;

var iLastY = 0;

//construct fun

start = function() {

clearInterval(iTimer);

iTimer = setInterval(function() {

iSpeedY += 3;

var l = obj.offsetLeft + iSpeedX;

var t = obj.offsetTop + iSpeedY;

if (t >= document.documentElement.clientHeight - obj.offsetHeight) {

iSpeedY *= -0.8;

iSpeedX *= 0.8;

t = document.documentElement.clientHeight - obj.offsetHeight;

} else if (t <= 0) {

iSpeedY *= -1;

iSpeedX *= 0.8;

t = 0;

}

if (l >= document.documentElement.clientWidth - obj.offsetWidth) {

iSpeedX *= -0.8;

l = document.documentElement.clientWidth - obj.offsetWidth;

} else if (l <= 0) {

iSpeedX *= -0.8;

l = 0;

}

if (Math.abs(iSpeedX) < 1) {

iSpeedX = 0;

}

if (iSpeedX == 0 && iSpeedY == 0 && t == document.documentElement.clientHeight - obj.offsetHeight) {

clearInterval(iTimer);

}

obj.style.left = l + 'px';

obj.style.top = t + 'px';

}, 30);

}

_this.startMove = function(){

obj.onmousedown = function(ev) {

clearInterval(iTimer);

var oEvent = ev || event;

var disX = oEvent.clientX - obj.offsetLeft;

var disY = oEvent.clientY - obj.offsetTop;

document.onmousemove = function(ev) {

var oEvent = ev || event;

var l = oEvent.clientX - disX;

var t = oEvent.clientY - disY;

obj.style.left = l + 'px';

obj.style.top = t + 'px';

if(iLastX ==0){

iLastX = l;

}

if(iLastY == 0){

iLastY = t;

}

iSpeedX = l - iLastX;

iSpeedY = t - iLastY;

iLastX = l;

iLastY = t;

}

}

obj.onmouseup = function() {

document.onmousedown = null;

document.onmousemove = null;

document.onmouseup = null;

start();

}

start();

}

_this.stopMove = function(){

clearInterval(iTimer);

obj.onmousedown = null;

document.onmousemove = null;

obj.onmouseup = null;

iLastX = 0;

iLastY = 0;

iSpeedX = 0;

iSpeedY = 0;

disX = 0;

disY = 0;

}

//CONSTRUCT AREA

var gcdMove = function() {

if (!iSpeedX) {

iSpeedX = 0;

}

if (!iSpeedY) {

iSpeedY = 0;

}

}

gcdMove();

}

【Javascript实现重力弹跳拖拽运动效果示例】相关文章:

JavaScript实现列表分页功能特效

Javascript实现的SHA-256加密算法完整实例

javascript实现获取服务器时间

javascript实现淡蓝色的鼠标拖动选择框实例

javascript实现Table排序的方法

JavaScript实现简单的数字倒计时

javascript实现模拟时钟的方法

JavaScript实现的MD5算法完整实例

Javascript实现广告页面的定时关闭

javascript搜索框效果实现方法

精品推荐
分类导航