Javascript 移动多个div的x和y';在js中,鼠标x上的s,y
我的目标是制作一个网页,其中包含文本等的多个div在鼠标x和y上移动。它应该看起来像鼠标x和y上的视差效果。我遇到的所有视差插件都是基于图像的,所以它们不能与div一起工作。 我自己写了一个小js,但是div在页面上跳来跳去,没有css能把它们保持在原位。也许有更多js经验的人知道我如何解决这个问题。下面是代码。希望能收到你们所有人的来信 HTML: JS:Javascript 移动多个div的x和y';在js中,鼠标x上的s,y,javascript,jquery,css,mouseevent,parallax,Javascript,Jquery,Css,Mouseevent,Parallax,我的目标是制作一个网页,其中包含文本等的多个div在鼠标x和y上移动。它应该看起来像鼠标x和y上的视差效果。我遇到的所有视差插件都是基于图像的,所以它们不能与div一起工作。 我自己写了一个小js,但是div在页面上跳来跳去,没有css能把它们保持在原位。也许有更多js经验的人知道我如何解决这个问题。下面是代码。希望能收到你们所有人的来信 HTML: JS: position:absolute从元素的正常流中删除一个元素,这会导致其他所有元素发生移动。另外,在渲染后设置宽度会导致一些偏移,因为这
position:absolute
从元素的正常流中删除一个元素,这会导致其他所有元素发生移动。另外,在渲染后设置宽度会导致一些偏移,因为这里您也在操作显示#visie
的高度
试试这个:
$('#scene').mousemove(function(e){
var x = -(e.pageX + this.offsetLeft) / 20;
var y = -(e.pageY + this.offsetTop) / 20;
var h = document.getElementById('home');
h.style.position = "relative";
h.style.left = x+'px';
h.style.top = y+'px';
});
这里也有:
在这里,它们都在移动:我猜你指的是#visie
当你在#场景
上移动?这是因为position:absolute
将其从正常流程中移除。谢谢!!这就是我需要的。如果你感兴趣的话,我会在完成后发布url。当然,我很想看看视差文本框是如何工作的:)@Bart nice!谢谢你让我知道它是如何进行的:D让它在手机上工作将是我要做的第一件事。可能会根据屏幕大小禁用全屏分页。你打算在页眉上加上视差效果吗?不,我在名为#intro的div上用的是视差,基本上是除菜单之外的所有tekst和页眉,在背景上用的是相反的方向。但毕竟,我们设法制作了一种固定页面,这样我们就可以最大限度地控制文本在图像上的定位。这也是我们使用全页滚动和“滑动”文本块的原因。ps我删除了我以前的帖子,因为当我用谷歌搜索网站名称时,它是谷歌搜索的头号热门
.container{
margin-right: 20%;
margin-top: 200px;
margin-bottom: 200px;
margin-left: 20%;
font-size: 16px;
background-color: yellow;
}
.kop{
font-family: GTWBold;
}
.brood{
font-family: GTWMedium;
}
#home{
margin-top: 20px;
}
#visie{
margin-right: 40%;
}
$('#scene2').mousemove(function(e){
var x = -(e.pageX + this.offsetLeft) / 20;
var y = -(e.pageY + this.offsetTop) / 20;
var h = document.getElementById('home');
h.style.position = "absolute";
h.style.left = x+'px';
h.style.top = y+'px';
h.style.width = "500px";
});
$('#scene').mousemove(function(e){
var x = -(e.pageX + this.offsetLeft) / 20;
var y = -(e.pageY + this.offsetTop) / 20;
var h = document.getElementById('home');
h.style.position = "relative";
h.style.left = x+'px';
h.style.top = y+'px';
});