根据鼠标移动用translate3d改变div位置

Change div position with translate3d according to the mouse movement

我想用csstransform translate3d根据鼠标移动实现subtil div位置变化的效果。 类似于本网站主页部分的几何图形: http://riccardozanutta.com/

我试过这个:

$(window).mousemove(function(event) {
  $(".home-img").css({"left" : event.pageX, "top" : event.pageY});
});

单个图像绝对定位并且它有效(图像根据鼠标移动改变位置),但是当我尝试使用 class .basic-skill[= 制作 3 divs 动画时14=]

$(window).mousemove(function(event) {
  $(".basic-skill").css({"left" : event.pageX, "top" : event.pageY});
});

它们超出视口(相对定位时)或相互重叠(绝对定位时)。

此外,我不知道如何将移动限制为最大 5 px,而不是让它在整个视口移动。

非常感谢您的指导!

解决您关于最大 5px 位移的问题,您可以将 X 和 Y 坐标乘以 0.1 之类的系数以减少移动量。像这样:

$(".basic-skill").css({"left" : event.pageX * 0.1, "top" : event.pageY * 0.1});

编辑: 除了使用 topleft,您可以使用 margin-topmargin-left 静态 top 和 CSS 中的 left 值。 JSFiddle

CSS

position: absolute;
top: 50px;
left: 50px;

JS

$("#two").css({"margin-left" : -(event.pageX * 0.1), "margin-top" : -(event.pageY * 0.1)});

编辑 2: 增强 Fiddle:https://jsfiddle.net/qcoy5xpg/2/

但这只是一个简单快捷的方法。在您提供的演示页面中,他在 SVG 元素上使用了 CSS 动画。这就是为什么它看起来很优雅,如果我可以的话 (ea​​sings)