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的asp.net树实现代码
Nov 30 Javascript
基于jQuery实现的水平和垂直居中的div窗口
Aug 08 Javascript
Jquery上传插件 uploadify v3.1使用说明
Jun 18 Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
Jun 24 Javascript
jQuery中slideUp()方法用法分析
Dec 24 Javascript
javascript判断图片是否加载完成的方法推荐
May 13 Javascript
jQuery soColorPacker 网页拾色器
Jun 22 Javascript
常用Javascript函数与原型功能收藏(必看篇)
Oct 09 Javascript
vue.js入门(3)——详解组件通信
Dec 02 Javascript
Vue分页组件实例代码
Apr 17 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
Nov 20 Javascript
JavaScript生成一个不重复的ID的方法示例
Sep 16 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的错误信息
2006/10/09 PHP
php中常用编辑器推荐
2007/01/02 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
ThinkPHP里用U方法调用js文件实例
2015/06/18 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
AJAX的使用方法详解
2017/04/29 PHP
Ajax局部更新导致JS事件重复触发问题的解决方法
2014/10/14 Javascript
使用jQuery监听DOM元素大小变化
2016/02/24 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
2016/06/07 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
2017/08/24 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
2017/10/14 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
2018/01/30 Javascript
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
vue实现列表滚动的过渡动画
2020/06/29 Javascript
jQuery实现动态操作table行
2020/11/23 jQuery
JavaScript实现雪花飘落效果
2020/12/27 Javascript
[02:36]DOTA2上海特锦赛 回忆电竞生涯的重要瞬间
2016/03/25 DOTA
python实现的阳历转阴历(农历)算法
2014/04/25 Python
对Python字符串中的换行符和制表符介绍
2018/05/03 Python
利用Python半自动化生成Nessus报告的方法
2019/03/19 Python
python制作填词游戏步骤详解
2019/05/05 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
Python搭建代理IP池实现获取IP的方法
2019/10/27 Python
pytorch实现线性拟合方式
2020/01/15 Python
利用Python制作动态排名图的实现代码
2020/04/09 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
2020/07/03 Python
python解包用法详解
2021/02/17 Python
椰子猫砂:CatSpot
2018/08/27 全球购物
下面关于"联合"的题目的输出是什么
2013/08/06 面试题
介绍信模板
2015/01/31 职场文书
2016新春团拜会致辞
2015/08/01 职场文书
【海涛解说】史上最给力比赛,挑战DOTA极限
2022/04/01 DOTA