注册 | 登陆
您的位置:阿里西西 > 网页特效 > 实例特效 > 详细内容

让图片按鼠标轨迹移动的特效代码

  稿源:互联网   2022-04-02 21:40:06   点击:   撤稿纠错
按鼠标轨迹或点击移动的图片特效代码,鼠标点击页面, 人物将移动至鼠标位置!

以下讨论的是和鼠标轨迹相关的让图片按鼠标轨迹移动的特效代码 教程文章,内容是本站精心挑选整理的教程,希望对广大的网友给到帮助,下面是详细内容:

<!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=utf-8" />
<title>移动效果(按轨迹移动)</title>
<style type="text/css">
body,div{margin:0;padding:0;}
div{position:absolute;width:66px;height:45px;background:url(http://js.alixixi.com/UploadPic/2011-7/201173014582164696.gif) no-repeat;top:100px;left:50px;}
p,input{margin:10px;}
</style>
<script type="text/javascript">
window.onload = function ()
{
 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(http://js.alixixi.com/UploadPic/2011-7/201173014594641762.jpg) no-repeat";
   startMove(oDiv, {x:event.clientX, y:event.clientY}, function(){oDiv.style.background = "url(http://js.alixixi.com/UploadPic/2011-7/201173014582164696.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(http://js.alixixi.com/UploadPic/2011-7/201173014594641762.jpg) no-repeat";  
   var timer = setInterval(function ()
   {
    if(aPos.length == 0)
    {
     clearInterval(timer);
     oDiv.style.background = "url(http://js.alixixi.com/UploadPic/2011-7/201173014582164696.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)
{
 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"; 
 }
}
</script>
</head>
<body>
<input type="button" value="根据鼠标点击位置移动" /><input type="button" value="根据标鼠标轨迹移动" />
<p>请点击按钮激活功能!</p>
<div></div>
</body>
</html>


关于让图片按鼠标轨迹移动的特效代码的内容写到这里就结束啦,您可以收藏本页网址https://js.alixixi.com/a/2011073072899.shtml方便下次再访问哦。