js鼠标跟随运动效果


Posted in Javascript onMarch 11, 2017

本文实例为大家分享了js鼠标跟随效果展示的具体代码,供大家参考,具体内容如下

1、使用命令创建基本结构ul.cursorPlay#cursorPlay>li*12>a>img+div>span
2、给span标签添加字段
3、设置基本的样式

  • cursorPlay的宽度 992px,高度600px
  • cursorPlay li背景为白色,内边距为8px,外边距5px,显示浮动为左浮动
  • cursorPlay li a,cursorPlay li a img显示为块状并且为相对布局
  • cursorPlay li a添加overflow:hidden
  • cursorPlay li a div为绝对布局,宽度和高度均为100%,设置背景颜色为rgba

4、js添加动态效果(方向0,1,2,3分别为上,右,下,左)

1、给绑定鼠标进入或者出去的事件

$("#cursorPlay li").on("mouseenter mouseleave",function(event){
var evType = event.type;
var direction = getDir($(this), {
x: event.pageX,
y: event.pageY
});
//  console.log("evtype:"+evType+",dir:"+direction);
moveTo($(this),direction, evType);
});

2、使用getDir获取鼠标移动的方向,coordinates坐标

计算鼠标划入画出方向函数(搜索关键词“jquery计算鼠标划入划出方向”)

direction = Math.round((((Math.atan2(y, x) * (180 / Math.PI)) + 180) / 90) + 3) % 4;
function getDir($el, coordinates){
var w = $el.width(),
h = $el.height(),
x = (coordinates.x - $el.offset().left - (w / 2)) * (w > h ? (h / w) : 1),
y = (coordinates.y - $el.offset().top - (h / 2)) * (h > w ? (w / h) : 1),
direction = Math.round((((Math.atan2(y, x) * (180 / Math.PI)) + 180) / 90) + 3) % 4;
return direction;
}

3、添加移动函数moveTo,三个参数分别为选择器,方向,鼠标划入画出类型,通过判断鼠标划入类型,来自定义选择器初始位置,然后重定义css样式,当鼠标划出时再重定义每个方向上的位置

function moveTo($el, direction, type){
  var $layer = $el.find("div");
  var coord = {};
  if(type === "mouseenter"){
    switch(direction){
     case 0 :   $layer.css("top","-100%").css("left","0px");break;
    case 1 : $layer.css("left","100%").css("top","0px");break;
    case 2 : $layer.css("top","100%").css("left","0px");break;
    case 3 : $layer.css("left","-100%").css("top","0px");break;
  }
    coord = {left:0,top:0}
  }else{
  switch(direction){
    case 0 : coord = {left:0,top:'-100%'};break;
    case 1 : coord = {left:'100%',top:0};break;
    case 2 : coord = {left:0,top:'100%'};break;
    case 3 : coord = {left:'-100%',top:0};break;
  }
}
$layer.animate(coord,300);
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
使用JavaScript库还是自己写代码?
Jan 28 Javascript
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
Sep 22 Javascript
JavaScript获取FCK编辑器信息的具体方法
Jul 12 Javascript
微信JS接口汇总及使用详解
Jan 09 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
Jan 13 Javascript
JQuery异步获取返回值中文乱码的解决方法
Jan 29 Javascript
JS关闭窗口时产生的事件及用法示例
Aug 20 Javascript
JS针对Array的各种操作汇总
Nov 29 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
Mar 21 Javascript
react.js使用webpack搭配环境的入门教程
Aug 14 Javascript
使用JavaScript实现一个小程序之99乘法表
Sep 21 Javascript
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 Vue.js
详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现
Mar 11 #Javascript
基于Node.js的WebSocket通信实现
Mar 11 #Javascript
js原生Ajax的封装和原理详解
Mar 11 #Javascript
ThinkPHP+jquery实现“加载更多”功能代码
Mar 11 #Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
Mar 10 #Javascript
基于Bootstrap框架实现图片切换
Mar 10 #Javascript
angularjs ui-router中路由的二级嵌套
Mar 10 #Javascript
You might like
利用PHP和AJAX创建RSS聚合器的代码
2007/03/13 PHP
PHP统计目录中文件以及目录中目录大小的方法
2016/01/09 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
php表单处理操作
2017/11/16 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
2019/10/15 PHP
关于IE中getElementsByClassName不能用的问题解决方法
2013/08/26 Javascript
jQuery实现的动态伸缩导航菜单实例
2015/05/07 Javascript
使用js复制链接中的部分文字的方法
2015/07/30 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
2016/02/25 Javascript
jquery遍历json对象集合详解
2016/05/18 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
详解Vue 事件修饰符capture 的使用
2017/12/29 Javascript
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
用python + openpyxl处理excel2007文档思路以及心得
2014/07/14 Python
利用python操作SQLite数据库及文件操作详解
2017/09/22 Python
python实现画圆功能
2018/01/25 Python
浅谈Python中重载isinstance继承关系的问题
2018/05/04 Python
Python如何绘制日历图和热力图
2020/08/07 Python
pytorch使用horovod多gpu训练的实现
2020/09/09 Python
联想墨西哥官方网站:Lenovo墨西哥
2016/08/17 全球购物
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
CHARLES & KEITH台湾官网:新加坡时尚品牌
2019/07/30 全球购物
金蝶的一道SQL笔试题
2012/12/18 面试题
员工培训心得体会
2013/12/30 职场文书
学雷锋倡议书
2015/01/19 职场文书
2015年团支部工作总结
2015/04/03 职场文书
食品安全责任书范本
2015/05/09 职场文书
社区低保工作总结2015
2015/07/23 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
深入探讨opencv图像矫正算法实战
2021/05/21 Python
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
2021/06/07 Python
Nginx部署vue项目和配置代理的问题解析
2021/08/04 Servers