原生js实现鼠标跟随效果


Posted in Javascript onFebruary 28, 2017

话不多说,请看代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>鼠标跟随效果</title>
 <style type="text/css">
 *{margin: 0;padding: 0;}
 img{position:absolute;top:0;left:0;}
 </style>
</head>
<body>
 <img src="http://www.qdfuns.com/misc.php?mod=attach&genre=editor&aid=21984166dad229792b21c2e1277bece5" height="50" width="50" alt="" id="img">
</body>
<script type="text/javascript">
 (function(window){
 // 获取对象
 var img = document.getElementById("img");
 // 为页面添加单击事件,鼠标点击时图片滑动到鼠标所在位置
 document.onclick = function(event){
  var event = event || window.event;
  // 获取鼠标在页面上的坐标
  var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft;
  var pageY = event.pageY || event.clientY + document.documentElement.scrollTop;
  // 减去图片自身宽高的一半,使鼠标在图片中间
  pageX = pageX - img.offsetWidth/2;
  pageY = pageY - img.offsetWidth/2;
  animate(img,{"left":pageX,"top":pageY});
 };
 // 封装缓动函数
 function animate(obj,json,fn){
  clearInterval(obj.timer);
  obj.timer = setInterval(function(){
  var flog = true ;
  for( k in json ){
   if( k === "zindex" ){
   obj.style[k] = json[k];
   }else if( k === "opacity" ){
   var leader = getStyle(obj,k) * 100;
   var target = json[k] * 100;
   var step = ( target - leader ) / 10 ;
   step = step > 0 ? Math.ceil( step ) : Math.floor( step );
   leader = leader + step ;
   obj.style[k] = leader / 100;
   }else{
   var leader = parseInt( getStyle(obj,k) );
   var target = json[k];
   var step = ( target - leader) / 10 ;
   step = step > 0 ? Math.ceil( step ) : Math.floor( step );
   leader = leader + step;
   obj.style[k] = leader + "px";
   };
   if( leader !== target ){
   flog = false;
   }
  }
  if( flog ){
   clearInterval(obj.timer);
   if( fn ){
   fn();
   };
  };
  }, 15)
 };
 // 封装获取计算后样式的函数
 function getStyle(obj,attr){
  if( window.getComputedStyle ){
  return window.getComputedStyle(obj,null)[attr];
  }else{
  return obj.currentStyle[attr];
  };
 };
 })(window)
</script>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
弹出广告特效代码(一个IP只弹出一次)
May 11 Javascript
js 加载并解析XML字符串的代码
Dec 13 Javascript
js 删除数组的几种方法小结
Feb 21 Javascript
javascript中的undefined和not defined区别示例介绍
Feb 26 Javascript
JS替换字符串中空格方法
Apr 17 Javascript
JavaScript中reduce()方法的使用详解
Jun 09 Javascript
小巧强大的jquery layer弹窗弹层插件
Dec 06 Javascript
laydate.js日期时间选择插件
Jan 04 Javascript
JavaScript之Map和Set_动力节点Java学院整理
Jun 29 Javascript
浅谈Node Inspector 代理实现
Oct 19 Javascript
深入浅出理解JavaScript闭包的功能与用法
Aug 01 Javascript
vue中动态select的使用方法示例
Oct 28 Javascript
canvas实现简易的圆环进度条效果
Feb 28 #Javascript
JS实现的tab切换选项卡效果示例
Feb 28 #Javascript
jQuery Pagination分页插件使用方法详解
Feb 28 #Javascript
完美解决input[type=number]无法显示非数字字符的问题
Feb 28 #Javascript
canvas红包照片实例分享
Feb 28 #Javascript
详解本地Node.js服务器作为api服务器的解决办法
Feb 28 #Javascript
jquery操作select取值赋值与设置选中实例
Feb 28 #Javascript
You might like
多重?l件?合查?(一)
2006/10/09 PHP
我的论坛源代码(六)
2006/10/09 PHP
PHP中的array数组类型分析说明
2010/07/27 PHP
pdo中使用参数化查询sql
2011/08/11 PHP
超级实用的7个PHP代码片段分享
2012/01/05 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
2014/06/12 PHP
PHP对象、模式与实践之高级特性分析
2016/12/08 PHP
js 蒙版进度条(结合图片)
2010/03/10 Javascript
jquery $.ajax各个事件执行顺序
2010/10/15 Javascript
js封装的textarea操作方法集合(兼容很好)
2010/11/16 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
2012/12/27 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
javascript 动态修改css样式方法汇总(四种方法)
2015/08/27 Javascript
Bootstrap Navbar Component实现响应式导航
2016/10/08 Javascript
解决nodejs中使用http请求返回值为html时乱码的问题
2017/02/18 NodeJs
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
详解如何在webpack中做预渲染降低首屏空白时间
2018/08/22 Javascript
使用express来代理服务的方法
2019/06/21 Javascript
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
[03:00]2014DOTA2国际邀请赛 Titan淘汰潸然泪下Ohaiyo专访
2014/07/15 DOTA
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
2018/05/24 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
2019/06/18 Python
Python requests设置代理的方法步骤
2020/02/23 Python
Django 允许局域网中的机器访问你的主机操作
2020/05/13 Python
canvas实现烟花的示例代码
2020/01/16 HTML / CSS
Diptyque英国官方网站:源自法国的知名香氛品牌
2019/08/28 全球购物
秘书行业自我鉴定范文
2013/12/30 职场文书
幼儿教师国培感言
2014/02/19 职场文书
应届生自荐信范文
2014/02/21 职场文书
2014基层党员干部学习全国两会心得体会
2014/03/17 职场文书
爱祖国演讲稿
2014/05/04 职场文书
秋季运动会广播稿(30篇)
2014/09/13 职场文书
防灾减灾宣传标语
2014/10/07 职场文书
检讨书1000字
2014/10/11 职场文书
护理心得体会范文
2016/01/22 职场文书
整理Python中常用的conda命令操作
2021/06/15 Python