Javascript 跟随光标的汉堡菜单动画(tweenmax)

Javascript 跟随光标的汉堡菜单动画(tweenmax),javascript,animation,menu,gsap,Javascript,Animation,Menu,Gsap,这是我发现的一个演示: 我说的是汉堡菜单上的这种效果,一旦你进入它的区域,它就会跟随光标(并随光标移动)大约20像素 显然在源代码中找到了一些代码: HTML: 但我并不是真的想偷它 我想知道这个效果是否有一个特定的名称 我真丢脸! 再次搜索后找到它 如果有人想使用它: $(“#容器”).mouseleave(函数(e){ TweenMax.to(这个,0.3,{高度:150,宽度:150}); TweenMax.to('.circle,.hamburger',0.3,{比例:1,x:0,y

这是我发现的一个演示:

我说的是汉堡菜单上的这种效果,一旦你进入它的区域,它就会跟随光标(并随光标移动)大约20像素

显然在源代码中找到了一些代码:

HTML:

但我并不是真的想偷它

我想知道这个效果是否有一个特定的名称

我真丢脸! 再次搜索后找到它

如果有人想使用它:

$(“#容器”).mouseleave(函数(e){
TweenMax.to(这个,0.3,{高度:150,宽度:150});
TweenMax.to('.circle,.hamburger',0.3,{比例:1,x:0,y:0});
});
$(“#容器”).mouseenter(函数(e){
TweenMax.to(这个,0.3,{高度:200,宽度:200});
TweenMax.to('.circle',0.3,{比例:1.3});
});
$(“#容器”).mousemove(函数(e){
视差(e);
});
函数视差(e){
视差(e,'圆',80);
视差(如“汉堡包”,40);
}
功能视差(e、目标、运动){
var$this=$(“#容器”);
var relX=e.pageX-$this.offset().left;
var relen=e.pageY-$this.offset().top;
TweenMax.至(目标,0.3{
x:(relX-$this.width()/2)/$this.width()*移动,
y:(依靠-$this.height()/2)/$this.height()*移动,
ease:Power2.easeOut
});
}
#容器{
显示器:flex;
位置:相对位置;
高度:150像素;
宽度:150px;
证明内容:中心;
对齐项目:居中;
}
.圆圈{
位置:绝对位置;
高度:50px;
宽度:50px;
边框:实心2倍灰色;
边界半径:100%;
}
格林先生{
背景:绿色;
}

=
   <div id="burger-wrapper" style="transform: matrix(1, 0, 0, 1, 0, 0); transform-origin: 0px 0px 0px;">
    <div id="burger-circle" style="transform: matrix(1, 0, 0, 1, 0, 0);"></div>
 <div id="menu-burger" style="transform: matrix(1, 0, 0, 1, 0, 0);">
          <span></span>
          <span></span>
      </div>
  </div>
    //Parallax Burger Menu
    $('#burger-wrapper').mouseleave(function(e){
        TweenMax.to(this, 0.3, {scale: 1});
        TweenMax.to('#burger-circle, #menu-burger', 0.3,{scale:1, x: 0, y: 0});           
    });     
    $('#burger-wrapper').mouseenter(function(e){
        TweenMax.to(this, 0.3, {transformOrigin: '0 0', scale: 1});
        TweenMax.to('#burger-circle', 0.3,{scale: 1.3});
    });     
    $('#burger-wrapper').mousemove(function(e){   
        callParallax(e);
    });     
    function callParallax(e){
        parallaxIt(e, '#burger-circle', 60);
        parallaxIt(e, '#menu-burger', 40);
    }       
    function parallaxIt(e, target, movement){
        var $this = $('#burger-wrapper');
        var boundingRect = $this[0].getBoundingClientRect();
        var relX = e.pageX - boundingRect.left;
        var relY = e.pageY - boundingRect.top;
        var scrollTop = window.pageYOffset || document.documentElement.scrollTop;

        TweenMax.to(target, 0.3, {
            x: (relX - boundingRect.width/2) / boundingRect.width * movement,
            y: (relY - boundingRect.height/2 - scrollTop) / boundingRect.width * movement,
            ease: Power2.easeOut
        });
    }