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 相关文章推荐
javascript事件问题
Sep 05 Javascript
jquery 模拟类搜索框自动完成搜索提示功能(改进)
May 24 Javascript
javascript中substr,substring,slice.splice的区别说明
Nov 25 Javascript
js 程序执行与顺序实现详解
May 13 Javascript
jquery+easeing实现仿flash的载入动画
Mar 10 Javascript
js实现超简单的展开、折叠目录代码
Aug 28 Javascript
详解js中的apply与call的用法
Jul 30 Javascript
bootstrap使用validate实现简单校验功能
Dec 02 Javascript
Bootstrap CSS布局之图像
Dec 17 Javascript
create-react-app使用antd按需加载的样式无效问题的解决
Feb 26 Javascript
JS实现的tab切换并显示相应内容模块功能示例
Aug 03 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
Jul 19 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 Header用于页面跳转要注意的几个问题总结
2008/10/03 PHP
PHP教程 变量定义
2009/10/23 PHP
PHP面向对象精要总结
2014/11/07 PHP
php生成高清缩略图实例详解
2015/12/07 PHP
WordPress开发中的get_post_custom()函数使用解析
2016/01/04 PHP
php计算多个集合的笛卡尔积实例详解
2017/02/16 PHP
[JS]点出统计器
2020/10/11 Javascript
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
jquery中ajax学习笔记4
2011/10/16 Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
2013/12/12 Javascript
Bootstrap每天必学之折叠(Collapse)插件
2016/04/25 Javascript
详解微信小程序开发—你期待的分享功能来了,微信小程序序新增5大功能
2016/12/23 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
2019/01/08 Javascript
javascript实现点击星星小游戏
2019/12/24 Javascript
python利用elaphe制作二维条形码实现代码
2012/05/25 Python
Python Web框架Flask中使用新浪SAE云存储实例
2015/02/08 Python
Python 数据结构之旋转链表
2017/02/25 Python
如何高效使用Python字典的方法详解
2017/08/31 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
Python多层装饰器用法实例分析
2018/02/09 Python
如何实现删除numpy.array中的行或列
2018/05/08 Python
python pandas生成时间列表
2019/06/29 Python
python celery分布式任务队列的使用详解
2019/07/08 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
2019/08/26 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
详解Python中Pyyaml模块的使用
2020/10/08 Python
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
兰蔻法国官方网站:Lancôme法国
2020/02/22 全球购物
关于奉献的演讲稿
2014/05/21 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
Python字符串格式化方式
2022/04/07 Python
第四次工业革命,打工人与机器人的竞争
2022/04/21 数码科技
Win11怎么解除儿童账号限制?Win11解除微软儿童账号限制方法
2022/07/07 数码科技