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 相关文章推荐
js的event详解。
Sep 06 Javascript
splice slice区别
Oct 09 Javascript
JavaScript 解析Json字符串的性能比较分析代码
Dec 16 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
Jan 21 Javascript
简单讲解jQuery中的子元素过滤选择器
Apr 18 Javascript
javascript url几种编码方式详解
Jun 06 Javascript
bootstrap select插件封装成Vue2.0组件
Apr 17 Javascript
在vue-cli项目中使用bootstrap的方法示例
Apr 21 Javascript
通过vue-cli3构建一个SSR应用程序的方法
Sep 13 Javascript
javascript数组的定义及操作实例
Nov 10 Javascript
javaScript中indexOf用法技巧
Nov 26 Javascript
JavaScript实现随机点名小程序
Oct 29 Javascript
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
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
js 数组操作代码集锦
2009/04/28 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
2015/08/07 Javascript
JS实现拖动滚动条评分的效果代码分享
2016/09/29 Javascript
JS实现物体带缓冲的间歇运动效果示例
2016/12/22 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
jQuery展示表格点击变色、全选、删除
2017/01/05 Javascript
利用jquery实现实时更新歌词的方法
2017/01/06 Javascript
Angular实现的进度条功能示例
2018/02/18 Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
2018/08/25 Javascript
在vue项目中正确使用iconfont的方法
2018/09/28 Javascript
Vue编程式跳转的实例代码详解
2019/07/10 Javascript
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
对python list 遍历删除的正确方法详解
2018/06/29 Python
python Pexpect 实现输密码 scp 拷贝的方法
2019/01/03 Python
python3中利用filter函数输出小于某个数的所有回文数实例
2019/11/24 Python
python 实现视频 图像帧提取
2019/12/10 Python
python中安装django模块的方法
2020/03/12 Python
python 比较字典value的最大值的几种方法
2020/04/17 Python
Idea安装python显示无SDK问题解决方案
2020/08/12 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
Coach澳大利亚官方网站:美国著名时尚奢侈品牌
2017/05/24 全球购物
美国体育用品商店:Paragon Sports
2017/10/08 全球购物
优秀团员事迹材料2000字
2014/08/20 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
行风评议整改报告
2014/11/06 职场文书
特种设备安全管理制度
2015/08/06 职场文书
大学生创业计划书
2019/06/24 职场文书
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL
Java实现房屋出租系统详解
2021/10/05 Java/Android