js实现鼠标跟随运动效果


Posted in Javascript onAugust 02, 2020

鼠标跟随运动效果展示

1、使用命令创建基本结构ul.cursorPlay#cursorPlay>li*12>a>img+div>span

2、给span标签添加字段

3、设置基本的样式

1、cursorPlay的宽度 992px,高度600px
2、cursorPlay li背景为白色,内边距为8px,外边距5px,显示浮动为左浮动
3、cursorPlay li a,cursorPlay li a img显示为块状并且为相对布局
4、cursorPlay li a添加overflow:hidden
5、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、

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 相关文章推荐
jquery下为Event handler传递动态参数的代码
Jan 06 Javascript
JQuery操作tr和td内容的方法实例
Mar 06 Javascript
js如何调用qq互联api实现第三方登录
Mar 28 Javascript
javascript教程:关于if简写语句优化的方法
May 17 Javascript
js使用正则实现ReplaceAll全部替换的方法
Aug 22 Javascript
js实现搜索框关键字智能匹配代码
Mar 26 Javascript
浅析Node.js实现HTTP文件下载
Aug 05 Javascript
React中常见的动画实现的几种方式
Jan 10 Javascript
微信小程序wx.getImageInfo()如何获取图片信息
Jan 26 Javascript
angularjs实现table增加tr的方法
Feb 27 Javascript
如何基于js判断浏览器版本
Feb 20 Javascript
vue前端和Django后端如何查询一定时间段内的数据
Feb 28 Vue.js
Node.js如何使用Diffie-Hellman密钥交换算法详解
Sep 05 #Javascript
javascript观察者模式实现自动刷新效果
Sep 05 #Javascript
js使用generator函数同步执行ajax任务
Sep 05 #Javascript
vue如何使用 Slot 分发内容实例详解
Sep 05 #Javascript
详解Vue2.0 事件派发与接收
Sep 05 #Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
Sep 05 #Javascript
jQuery实现注册会员时密码强度提示信息功能示例
Sep 05 #jQuery
You might like
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
PHP aes (ecb)解密后乱码问题
2015/06/22 PHP
Javascript的构造函数和constructor属性
2010/01/09 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
css+js实现部分区域高亮可编辑遮罩层
2014/03/04 Javascript
基于NodeJS的前后端分离的思考与实践(二)模版探索
2014/09/26 NodeJs
JavaScript实现大数的运算
2014/11/24 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
2016/02/02 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
2016/05/15 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
Vue动态实现评分效果
2017/05/24 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
2019/03/13 Javascript
vue 实现Web端的定位功能 获取经纬度
2019/08/08 Javascript
vue微信分享插件使用方法详解
2020/02/18 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
[04:52]2015国际邀请赛LGD战队晋级之路
2015/08/14 DOTA
python获取糗百图片代码实例
2013/12/18 Python
教大家玩转Python字符串处理的七种技巧
2017/03/31 Python
Pycharm学习教程(4) Python解释器的相关配置
2017/05/03 Python
便捷提取python导入包的属性方法
2018/10/15 Python
使用python获取(宜宾市地震信息)地震信息
2019/06/20 Python
Python日志无延迟实时写入的示例
2019/07/11 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
python实现数学模型(插值、拟合和微分方程)
2020/11/13 Python
Css3圆角边框制作代码
2015/11/18 HTML / CSS
Halston Heritage官网:简洁的日装,稍显奢华的晚装
2018/11/20 全球购物
某公司部分笔试题
2013/11/05 面试题
一些关于MySql加速和优化的面试题
2014/01/30 面试题
幼儿园开学家长寄语
2014/01/19 职场文书
党的群众路线教育实践活动先进个人材料
2014/12/24 职场文书
2015年大学生党员承诺书
2015/04/27 职场文书
医院感染管理制度
2015/08/05 职场文书
动视暴雪取消疫苗禁令 让所有员工返回线下工作
2022/04/03 其他游戏