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 相关文章推荐
LBS blog sql注射漏洞[All version]-官方已有补丁
Aug 26 Javascript
Javascript 函数对象的多重身份
Jun 28 Javascript
JS案例分享之金额小写转大写
May 15 Javascript
JavaScript实现将xml转换成html table表格的方法
Apr 17 Javascript
js实现卡片式项目管理界面UI设计效果
Dec 08 Javascript
JS跨域解决方案之使用CORS实现跨域
Apr 14 Javascript
javascript url几种编码方式详解
Jun 06 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
Jul 26 Javascript
javascript中的replace函数(带注释demo)
Jan 07 Javascript
vue中的provide/inject的学习使用
May 09 Javascript
JS 数组和对象的深拷贝操作示例
Jun 06 Javascript
node.js +mongdb实现登录功能
Jun 18 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
PHP获取网站域名和地址的代码
2008/08/17 PHP
php cli换行示例
2014/04/22 PHP
Nginx下配置codeigniter框架方法
2015/04/07 PHP
php实现的验证码文件类实例
2015/06/18 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
php中Ioc(控制反转)和Di(依赖注入)
2017/05/07 PHP
模仿百度三维地图的js数据分享
2011/05/12 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
angularJS 如何读写缓冲的方法(推荐)
2016/08/06 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
解决vue-cli创建项目的loader问题
2018/03/13 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
2019/11/04 Javascript
js最全的数组的降维5种办法(小结)
2020/04/28 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
详解Node.JS模块 process
2020/08/31 Javascript
Python translator使用实例
2008/09/06 Python
使用python获取CPU和内存信息的思路与实现(linux系统)
2014/01/03 Python
利用Python的Twisted框架实现webshell密码扫描器的教程
2015/04/16 Python
Python操作MongoDB详解及实例
2017/05/18 Python
python 定时器,轮询定时器的实例
2019/02/20 Python
Windows下Anaconda和PyCharm的安装与使用详解
2020/04/23 Python
css3 自定义字体font-face使用介绍
2014/05/14 HTML / CSS
CSS3哪些新特性值得称赞
2016/03/02 HTML / CSS
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
如何将整数int转换成字串String
2014/03/21 面试题
业务主管岗位职责
2013/11/20 职场文书
物流专业大学生职业生涯规划书范文
2014/01/15 职场文书
初一家长会邀请函
2014/01/31 职场文书
应聘销售主管的求职信
2014/04/26 职场文书
教师教育心得体会
2016/01/19 职场文书
mybatis-plus模糊查询指定字段
2022/04/28 Java/Android
插件导致ECharts被全量引入的坑示例解析
2022/09/23 Javascript