鼠标跟随运动效果

鼠标跟随运动效果展示
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、使用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);
}            

时间: 2024-07-30 22:42:00

鼠标跟随运动效果的相关文章

HTML+CSS鼠标悬停效果

HTML+CSS实现鼠标悬停效果 HTML: <link href="style.css" rel="stylesheet"> <a class="social" href="https://webbb.be" target="_blank"> <div class="front"> <i class="fa fa-facebook&q

简单的鼠标拖动效果

使用js实现简单的鼠标拖动效果,但此部分代码有个小小的BUG,后期改进好我会写进来,但基本的效果已经实现,请大家参考. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>鼠标移动</title> <style> #box{ width: 50px; height: 50px; position:

javascript运动系列第七篇——鼠标跟随运动

× 目录 [1]眼球转动 [2]苹果菜单 前面的话 运动除了直线运动和曲线运动两种运动形式外,还有一种运动形式是鼠标跟随运动,而这种跟随运动需要用到三角函数的相关内容或者需要进行比例运算.本文将以几个小实例来介绍角度运动的相关内容 眼球转动 在很多网页中,都存在着跟随运动,比如眼球转动.鼠标在网页中移动时,眼球也会跟着朝相应方向转动 上面是眼球转动的示意图,(x0,y0)是眼球的位置,而(x,y)是鼠标的位置.设直线与垂直方向的夹角为a,假设圆心点坐标为(0,0),可以得到以下公式 tan(a)

7种鼠标悬停效果,多样的图片说明展示

今天我们要为您展示如何创建一些简单又不失时尚的图片说明悬停效果.我们的想法应用悬停效果来显示图片对应的标题,作者和链接按钮.对于一些的效果,我们将使用3D变换.这样做的目的是保持奇妙的效果,并为许多不同的变化提供了灵感. 在线演示      下载源码 您可能感兴趣的相关文章 网站开发中很有用的 jQuery 效果[附源码] 分享35个让人惊讶的 CSS3 动画效果演示 十分惊艳的8个 HTML5 & JavaScript 特效 Web 开发中很实用的10个效果[源码下载] 12款经典的白富美型

通用元素跟随鼠标移动效果

封装鼠标指针定位是一件很有意义的事情,这样在日常开发中就不需要再为鼠标指针定位问题而犯愁了. 设计思路:能够根据传递的具体对象,以及相对鼠标指针的偏移值,即命令该对象能够跟随鼠标移动. JS代码: function getMousePos(o,x,y,event){ //o-->对象;x,y-->相对鼠标指针的偏移距离;event-->事件对象; var posX = 0,posY = 0; //临时变量 var event = event || window.event; //标准化事

鼠标跟随效果(杀马特风格)(非主流勿黑我)

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 6 <title>萤火虫阵列</title> 7 <meta name="description&

用ul li实现边框重合并附带鼠标经过效果

边框重合这个效果并不难,只是我们没有真正的动手做过而已,下面让我们来谈谈用ul li如何实现边框重合,并附带鼠标经过效果 1 <!DOCTYPE html> 2 <html lang="zh-CN"> 3 4 <head> 5 <title></title> 6 <style type="text/css"> 7 * { 8 margin: 0; 9 padding: 0; 10 } 11 12

30种奇妙的鼠标悬停效果【附源码下载】

Web 界面上交互的方式很多,只要你去探索,你会发现很多让你眼前一亮的想法.Codrops 最近发布了一组悬停效果,总共分为两组,多达30种不同的风格.为了让效果尽可能的平滑,最好不要在元素上使用变换以免影响布局.第二组效果中采用了 SVG 动画,这也是目前比较流行的方式. 温馨提示:为保证最佳的效果,请在 IE10+.Chrome.Firefox 和 Safari 等现代浏览器中浏览. 在线演示      源码下载 您可能感兴趣的相关文章 网站开发中很有用的 jQuery 效果[附源码] 分享

javascript html 鼠标放大镜效果

1.鼠标放大镜效果 鼠标放大镜效果,将鼠标移入到左图片,则可以在其右边看到放大的图片,且鼠标移动滑块的大小即为右图显示图片.实际效果如下图所示: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style media="screen"> #little_image { width: 400px