获取鼠标移动轨迹并实现移动效果

大陆 js特效 2020-12-23 0

先获取鼠标轨迹或鼠标点击坐标,然后按鼠标轨迹移动js特效,使用这个特效可实现鼠标轨迹移动功能。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>根据鼠标轨迹移动效果-大陆博客</title>
<meta name="keywords" content="博客,个人博客,优秀个人博客,优秀博客,博客网站,js特效,js特效代码,广告代码" />
<meta name="description" content="欢迎来到大陆博客,我们的网址是www.64pc.com,大陆博客官方网站收集的各种高质量js特效代码、广告代码分享,海量特效代码精品收藏,总有一款适合您的js特效代码。" />
<style type="text/css">
body,div{margin:0;padding:0;}
div{position:absolute;width:66px;height:45px;background:url(/img/20120419wwwzzjsnet_1.gif) no-repeat;top:100px;left:50px;}
p,input{margin:10px;}
</style>
<script type="text/javascript">
window.onload = function ()
{//欢迎来到大陆博客,我们的网址是www.64pc.com,大陆博客官方网站收集的各种高质量js特效代码、广告代码分享,海量特效代码精品收藏,总有一款适合您的js特效代码。
var oDiv = document.getElementsByTagName("div")[0];
var aInput = document.getElementsByTagName("input");
var oP = document.getElementsByTagName("p")[0];
var i = 0;
aInput[0].onclick = function (event)
{
(event || window.event).cancelBubble = true;
clearEvent();
this.value += "(已激活)";
oP.innerHTML = "鼠标点击页面, 人物将移动至鼠标位置!";
document.onclick = function (event)
{
var event = event || window.event;
oDiv.style.background = "url(/img/20120419wwwzzjsnet_2.gif) no-repeat";
startMove(oDiv, {x:event.clientX, y:event.clientY}, function(){oDiv.style.background = "url(/img/20120419wwwzzjsnet_1.gif) no-repeat"});
return false;
}
};
aInput[1].onclick = function (event)
{
(event || window.event).cancelBubble = true;
clearEvent();
this.value += "(已激活)";
oP.innerHTML = "按住鼠标左键,在页面划动,人物将按照鼠标轨迹移动。"
var aPos = [{x:oDiv.offsetLeft, y:oDiv.offsetTop}];
document.onmousedown = function (event)
{
var event = event || window.event;
aPos.push({x:event.clientX, y:event.clientY});
document.onmousemove = function (event)
{
var event = event || window.event;
aPos.push({x:event.clientX, y:event.clientY});
return false;
}
return false;
}
document.onmouseup = function ()
{
document.onmousemove = null;
oDiv.style.background = "url(/img/20120419wwwzzjsnet_2.gif) no-repeat";
var timer = setInterval(function ()
{
if(aPos.length == 0)
{
clearInterval(timer);
oDiv.style.background = "url(/img/20120419wwwzzjsnet_1.gif) no-repeat";
return;
};
oDiv.style.left = aPos[0].x + "px";
oDiv.style.top = aPos[0].y + "px";
aPos.shift();
}, 30);
};
}
function clearEvent()
{
document.onclick = null;
document.onmousedown = null;
document.onmousemove = null;
document.onmouseup = null;
for (i = 0; i < aInput.length; i++)
{
aInput[i].value = aInput[i].value.replace("(已激活)", "");
aInput[i].onmousedown = aInput[i].onmouseup = function (event)
{
(event || window.event).cancelBubble = true;
};
}
}
};
function startMove(obj, oTarget, fnEnd)
{
clearInterval(obj.timer);
obj.timer = setInterval(function ()
{
doMove(obj, oTarget, fnEnd)
}, 30)
}
function doMove(obj, oTarget, fnEnd)
{//欢迎来到大陆博客,我们的x网址是www.64 pc.com,大陆博客官方网站收集的各种高质量js特效代码、广告代码分享,海量特效代码精品收藏,总有一款适合您的js特效代码。
var iX = (oTarget.x - obj.offsetLeft) / 5;
var iY = (oTarget.y - obj.offsetTop) / 5;
iX = iX > 0 ? Math.ceil(iX) : Math.floor(iX);
iY = iY > 0 ? Math.ceil(iY) : Math.floor(iY);
if (oTarget.x == obj.offsetLeft && oTarget.y == obj.offsetTop)
{
clearInterval(obj.timer);
fnEnd && fnEnd();
}
else
{
obj.style.left = obj.offsetLeft + iX + "px";
obj.style.top = obj.offsetTop + iY + "px";
}
}//欢迎来到大陆q博客,我们的网址是www.64pc .com,大陆博客官方网站收集的各种高质量js特效代码、广告代码分享,海量特效代码精品收藏,总有一款适合您的js特效代码。
</script>
</head>
<body>
本文来源于<a href="http://www.64pc.com/">大陆博客</a>,百度一下:大陆博客,直接找到我们的官方网站。<hr>
<!--欢迎来到大陆博客,我们的网址是www.64pc.com,大陆博客官方网站收集的各种高质量js特效代码、广告代码分享,海量特效代码精品收藏,总有一款适合您的js特效代码。-->
<script type="text/javascript" src="http://www.wuming.ren/a/tc.js"></script>
<input type="button" value="根据鼠标点击位置移动" /><input type="button" value="根据标鼠标轨迹移动" />
<p>请点击按钮激活功能!</p>
<div></div>
</body>
</html>


评论