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 相关文章推荐
根据分辩率调用不同的CSS.
Jan 08 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
Jan 15 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
Oct 17 Javascript
深入理解jQuery中的事件冒泡
May 24 Javascript
Angular2使用Angular-CLI快速搭建工程(二)
May 21 Javascript
angular.extend方法的具体使用
Sep 14 Javascript
JS Testing Properties 判断属性是否在对象里的方法
Oct 01 Javascript
webpack打包js文件及部署的实现方法
Dec 18 Javascript
js中split()方法得到的数组长度问题
Jul 19 Javascript
javacript replace 正则取字符串中的值并替换【推荐】
Sep 13 Javascript
使用 Element UI Table 的 slot-scope方法
Oct 10 Javascript
vue学习笔记之作用域插槽实例分析
Feb 01 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导出csv数据在浏览器中输出提供下载或保存到文件的示例
2014/04/24 PHP
PHPStorm 2020.1 调试 Nodejs的多种方法详解
2020/09/17 NodeJs
javascript 特殊字符串
2009/02/25 Javascript
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
用jquery ajax获取网站Alexa排名的代码
2009/12/12 Javascript
事件模型在各浏览器中存在差异
2010/10/20 Javascript
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
2011/01/12 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
2014/01/14 Javascript
jquery分页插件jpaginate在IE中不兼容问题
2014/04/22 Javascript
JavaScript导出Excel实例详解
2014/11/25 Javascript
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
2015/08/21 NodeJs
jQuery Select下拉框操作小结(推荐)
2016/07/22 Javascript
JS实现的点击表头排序功能示例
2017/03/27 Javascript
vue router仿天猫底部导航栏功能
2017/10/18 Javascript
webpack中使用iconfont字体图标的方法
2018/02/22 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
微信小程序实现获取小程序码和二维码java接口开发
2019/03/29 Javascript
JavaScript 扩展运算符用法实例小结【基于ES6】
2019/06/17 Javascript
JQuery使用数组遍历跳出each循环
2020/09/01 jQuery
Python里隐藏的“禅”
2014/06/16 Python
Python中统计函数运行耗时的方法
2015/05/05 Python
Python实现识别手写数字大纲
2018/01/29 Python
Python Unittest根据不同测试环境跳过用例的方法
2018/12/16 Python
eclipse创建python项目步骤详解
2019/05/10 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
解决Python3下map函数的显示问题
2019/12/04 Python
Pycharm小白级简单使用教程
2020/01/08 Python
keras用auc做metrics以及早停实例
2020/07/02 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
Desigual英国官网:在线购买原创服装
2018/03/09 全球购物
会计与审计专业自荐信范文
2014/03/15 职场文书
商场主管竞聘书
2014/03/31 职场文书
员工规章制度范本
2015/08/07 职场文书
Python基础之进程详解
2021/05/21 Python
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL
浅谈Redis缓冲区机制
2022/06/05 Redis