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 25 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
Dec 29 Javascript
javascripit实现密码强度检测代码分享
Dec 12 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
Jan 27 Javascript
location.hash保存页面状态的技巧
Apr 28 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
Aug 05 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
Mar 24 jQuery
vue 解决循环引用组件报错的问题
Sep 06 Javascript
java和js实现的洗牌小程序
Sep 30 Javascript
使用Vue调取接口,并渲染数据的示例代码
Oct 28 Javascript
写给新手同学的vuex快速上手指北小结
Apr 14 Javascript
JS highcharts实现动态曲线代码示例
Oct 16 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
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
针对初学PHP者的疑难问答(1)
2006/10/09 PHP
php实现在线生成条形码示例分享(条形码生成器)
2013/12/30 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
js验证表单大全
2006/11/25 Javascript
javascript引用对象的方法代码
2007/08/13 Javascript
Javascript中的相等与不等运算
2010/04/25 Javascript
5款JavaScript代码压缩工具推荐
2014/07/07 Javascript
javascript实现控制浏览器全屏
2015/03/30 Javascript
jquery超简单实现手风琴效果的方法
2015/06/05 Javascript
JS实现转动随机数抽奖特效代码
2020/04/16 Javascript
javascript检测flash插件是否被禁用的方法
2016/01/14 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
常用的JQuery函数及功能小结
2016/03/24 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
解决Angular.Js与Django标签冲突的方案
2016/12/20 Javascript
详解jQuery中关于Ajax的几个常用的函数
2017/07/17 jQuery
JS实现的JSON序列化操作简单示例
2018/07/02 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
vue移动端弹起蒙层滑动禁止底部滑动操作
2020/07/22 Javascript
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
用python 实现在不确定行数情况下多行输入方法
2019/01/28 Python
给Python学习者的文件读写指南(含基础与进阶)
2020/01/29 Python
Python阶乘求和的代码详解
2020/02/14 Python
Pycharm自动添加文件头注释和函数注释参数的方法
2020/10/23 Python
美国知名的网上鞋类及相关服装零售商:Shoes.com
2017/05/06 全球购物
如何向接受结构参数的函数传入常数值
2016/02/17 面试题
革命先烈的英雄事迹材料
2014/02/15 职场文书
教师暑期培训感言
2014/08/15 职场文书
单位一把手群众路线四风问题整改措施
2014/09/25 职场文书
业务员工作态度散漫检讨书
2014/11/02 职场文书
英文升职感谢信
2015/01/23 职场文书
Windows安装Anaconda3的方法及使用过程详解
2021/06/11 Python