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 iframe中打开文件,并检测iframe存在否
Dec 28 Javascript
深入分析js中的constructor和prototype
Apr 07 Javascript
封装了jQuery的Ajax请求全局配置
Feb 05 Javascript
文字垂直滚动之javascript代码
Jul 29 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
Dec 15 Javascript
基于JS实现省市联动效果代码分享
Jun 06 Javascript
JS实现关闭当前页而不弹出提示框的方法
Jun 22 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
Aug 12 Javascript
js实现登录与注册界面
Nov 01 Javascript
JS实现select选中option触发事件操作示例
Jul 13 Javascript
javascript实现抢购倒计时程序
Aug 26 Javascript
js实现浏览器打印功能的示例代码
Jul 15 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开发中四种查询返回结果分析
2011/01/02 PHP
PHP自动识别字符集并完成转码详解
2013/08/02 PHP
php自定义urlencode,urldecode函数实例
2015/03/24 PHP
thinkPHP5分页功能实现方法分析
2017/10/25 PHP
解决laravel(5.5)访问public报错的问题
2019/10/12 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
2010/08/13 Javascript
js中判断文本框是否为空的两种方法
2011/07/31 Javascript
javascript中为某个元素指定事件的三种方式
2014/08/07 Javascript
js父页面中使用子页面的方法
2016/01/09 Javascript
jQuery插件实现文字无缝向上滚动效果代码
2016/02/25 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
jquery单击文字或图片内容放大并居中显示
2017/06/23 jQuery
JS路由跳转的简单实现代码
2017/09/21 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
浅谈vue中关于checkbox数据绑定v-model指令的个人理解
2018/11/14 Javascript
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
python实现异步回调机制代码分享
2014/01/10 Python
在Python中处理列表之reverse()方法的使用教程
2015/05/21 Python
详解python时间模块中的datetime模块
2016/01/13 Python
Python 中迭代器与生成器实例详解
2017/03/29 Python
python删除服务器文件代码示例
2018/02/09 Python
python3.7.0的安装步骤
2018/08/27 Python
python中的tcp示例详解
2018/12/09 Python
python 双循环遍历list 变量判断代码
2020/05/04 Python
详解Python模块化编程与装饰器
2021/01/16 Python
css3的transition效果和transfor效果示例介绍
2013/10/30 HTML / CSS
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
必须要使用游标的SQL语句有那些
2012/05/07 面试题
军校大学生个人的自我评价
2014/02/17 职场文书
校园联欢晚会主持词
2014/03/17 职场文书
静心口服夜广告词
2014/03/20 职场文书
班风学风建设方案
2014/05/06 职场文书
Win11 Beta 预览版 22621.575 和 22622.575更新补丁KB5016694发布(附更新内容大全)
2022/08/14 数码科技