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 相关文章推荐
jQuery中的常用事件总结
Dec 27 Javascript
jquery1.5.1中根据元素ID获取元素对象的代码
Apr 02 Javascript
JS对象与JSON格式数据相互转换
Feb 20 Javascript
找出字符串中出现次数最多的字母和出现次数精简版
Nov 07 Javascript
Javascript连接多个数组不用concat来解决
Mar 24 Javascript
JavaScript数据结构之二叉树的计数算法示例
Apr 13 Javascript
详解vue-cli 构建Vue项目遇到的坑
Aug 30 Javascript
如何从零开始利用js手写一个Promise库详解
Apr 19 Javascript
Element UI框架中巧用树选择器的实现
Dec 12 Javascript
浅谈vue后台管理系统权限控制思考与实践
Dec 19 Javascript
jQuery实现的隔行变色功能【案例】
Feb 18 jQuery
vuex存取值和映射函数使用说明
Jul 24 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变量的方法
2015/06/26 PHP
smarty的section嵌套循环用法示例
2016/05/28 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
2017/07/03 PHP
js String对象中常用方法小结(字符串操作)
2012/01/27 Javascript
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
2013/11/18 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
如何解决vue与传统jquery插件冲突
2017/03/20 Javascript
详解vue mixins和extends的巧妙用法
2017/12/20 Javascript
微信小程序实现倒计时补零功能
2018/07/09 Javascript
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
微信小程序实现带参数的分享功能(两种方法)
2019/05/17 Javascript
react 中父组件与子组件双向绑定问题
2019/05/20 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
Python使用django获取用户IP地址的方法
2015/05/11 Python
解密Python中的描述符(descriptor)
2015/06/03 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
Python yield 使用方法浅析
2017/05/20 Python
对python中的pop函数和append函数详解
2018/05/04 Python
python看某个模块的版本方法
2018/10/16 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
2020/06/04 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
viagogo法国票务平台:演唱会、体育比赛、戏剧门票
2017/03/27 全球购物
中间件分为哪几类
2012/03/14 面试题
培训演讲稿范文
2014/01/12 职场文书
教师绩效工资方案
2014/02/01 职场文书
国庆节演讲稿
2014/05/27 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
国际贸易实训总结
2015/08/03 职场文书
利用python进行数据加载
2021/06/20 Python
Python实现科学占卜 让视频自动打码
2022/04/09 Python
详解flex:1什么意思
2022/07/23 HTML / CSS