js鼠标跟随运动效果


Posted in Javascript onMarch 11, 2017

本文实例为大家分享了js鼠标跟随效果展示的具体代码,供大家参考,具体内容如下

1、使用命令创建基本结构ul.cursorPlay#cursorPlay>li*12>a>img+div>span
2、给span标签添加字段
3、设置基本的样式

  • cursorPlay的宽度 992px,高度600px
  • cursorPlay li背景为白色,内边距为8px,外边距5px,显示浮动为左浮动
  • cursorPlay li a,cursorPlay li a img显示为块状并且为相对布局
  • cursorPlay li a添加overflow:hidden
  • 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、使用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 相关文章推荐
用js做一个小游戏平台 (一)
Dec 29 Javascript
用方法封装javascript的new操作符(一)
Dec 25 Javascript
ExtJS4 组件化编程,动态加载,面向对象,Direct
May 12 Javascript
JQuery对class属性的操作实现按钮开关效果
Oct 11 Javascript
函数window.open实现关闭所有的子窗口
Aug 03 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
Dec 08 Javascript
简单谈谈关于 npm 5.0 的新坑
Jun 08 Javascript
React利用插件和不用插件实现双向绑定的方法详解
Jul 03 Javascript
sublime text配置node.js调试(图文教程)
Nov 23 Javascript
微信小程序版翻牌小游戏
Jan 26 Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
Mar 04 Javascript
JavaScript封装单向链表的示例代码
Sep 17 Javascript
详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现
Mar 11 #Javascript
基于Node.js的WebSocket通信实现
Mar 11 #Javascript
js原生Ajax的封装和原理详解
Mar 11 #Javascript
ThinkPHP+jquery实现“加载更多”功能代码
Mar 11 #Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
Mar 10 #Javascript
基于Bootstrap框架实现图片切换
Mar 10 #Javascript
angularjs ui-router中路由的二级嵌套
Mar 10 #Javascript
You might like
PHP取二进制文件头快速判断文件类型的实现代码
2013/08/05 PHP
PHP实现股票趋势图和柱形图
2015/02/07 PHP
脚本吧 - 幻宇工作室用到js,超强推荐base.js
2006/12/23 Javascript
JS动态获取当前时间,并写到特定的区域
2013/05/03 Javascript
javascript禁制后退键(Backspace)实例代码
2013/11/15 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
2015/10/27 Javascript
实例详解JavaScript获取链接参数的方法
2016/01/01 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
详解用node编写自己的cli工具
2017/05/23 Javascript
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
Python中使用PyQt把网页转换成PDF操作代码实例
2015/04/23 Python
教你用Type Hint提高Python程序开发效率
2016/08/08 Python
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
Python实现备份MySQL数据库的方法示例
2018/01/11 Python
python破解zip加密文件的方法
2018/05/31 Python
Python将8位的图片转为24位的图片实现方法
2018/10/24 Python
Django中在xadmin中集成DjangoUeditor过程详解
2019/07/24 Python
Python如何使用函数做字典的值
2019/11/30 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
tensorflow 获取checkpoint中的变量列表实例
2020/02/11 Python
解决pyCharm中 module 调用失败的问题
2020/02/12 Python
PyQt5中向单元格添加控件的方法示例
2020/03/24 Python
python中前缀运算符 *和 **的用法示例详解
2020/05/28 Python
python 爬取免费简历模板网站的示例
2020/09/27 Python
小学教师的个人自我鉴定
2013/10/24 职场文书
车间操作工岗位职责
2013/12/19 职场文书
大学生通用个人的自我评价
2014/02/10 职场文书
企业法人授权委托书
2014/09/25 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
普通党员个人整改措施
2014/10/27 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书