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 相关文章推荐
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
Oct 01 Javascript
AngularJS基础学习笔记之控制器
May 10 Javascript
jQuery+HTML5加入购物车代码分享
Oct 29 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
Dec 05 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
Jan 31 Javascript
node中modules.exports与exports导出的区别
Jun 08 Javascript
vue forEach循环数组拿到自己想要的数据方法
Sep 21 Javascript
ES6基础之展开语法(Spread syntax)
Feb 21 Javascript
javascript实现弹出层效果
Dec 10 Javascript
VueCli4项目配置反向代理proxy的方法步骤
May 17 Javascript
如何在vue 中引入使用jquery
Nov 10 jQuery
如何在JavaScript中使用localStorage详情
Feb 04 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
ZF等常用php框架中存在的问题
2008/01/10 PHP
php HtmlReplace输入过滤安全函数
2010/07/03 PHP
兼容ie6浏览器的php下载文件代码分享
2014/07/14 PHP
php递归删除指定文件夹的方法小结
2015/04/20 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
用JS实现3D球状标签云示例代码
2013/12/01 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
Javascript中使用parseInt函数需要注意的问题
2015/04/02 Javascript
有关easyui-layout中的收缩层无法显示标题的解决办法
2016/05/10 Javascript
用原生js统计文本行数的简单示例
2016/08/19 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
2017/01/23 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
2017/02/14 Javascript
Bootstrap警告(Alerts)的实现方法
2017/03/22 Javascript
基于vue-cli配置lib-flexible + rem实现移动端自适应
2017/12/26 Javascript
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
Python+django实现文件上传
2016/01/17 Python
python不换行之end=与逗号的意思及用途
2017/11/21 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
Python装饰器基础概念与用法详解
2018/12/22 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
python安装第三方库如xlrd的方法
2020/10/31 Python
将不规则的Python多维数组拉平到一维的方法实现
2021/01/11 Python
html5定位并在百度地图上显示的示例
2014/04/27 HTML / CSS
英国文胸专家:AmpleBosom.com
2018/02/06 全球购物
厨房工作人员岗位职责
2013/11/15 职场文书
《谁的本领大》教后反思
2014/04/25 职场文书
管理提升方案
2014/06/04 职场文书
应届大专生求职信
2014/06/26 职场文书
庆祝教师节演讲稿
2014/09/03 职场文书
学生检讨书范文
2014/10/30 职场文书
财务工作失职检讨书
2014/11/21 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
行政上诉状范文
2015/05/23 职场文书
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
2022/04/21 Python