【发布时间】:2021-05-06 07:54:30
【问题描述】:
所以我想要实现的是构建一个 HTML 页面,它的背景从鼠标移动到相反的方向。问题是,我想创建一个双层图像,一个背景和一个前景。前景图像较小,而背景图像是全角的。到目前为止,这是我的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>trymoving</title>
<style type="text/css">
body
{
margin:0;
padding:0;
}
section
{
height:100vh;
background:url(background-image.png);
overflow:hidden;
}
.sec2 {
width: 100%;
position: relative;
top: 0;
left: 0;
background:url('foreground-image.png');
}
</style>
</head>
<body>
<section class="first">
<div class="sec2"></div>
</section>
<script>
const section = document.getElementsByTagName('section')[0];
section.addEventListener('mousemove', (e) =>{
const moveX = (e.pageX * -1 / 40);
const moveY = (e.pageY * -1 / 40);
section.style.backgroundPosition = moveX + 'px ' + moveY + 'px';
});
const section2 = document.getElementsByClassName('sec2')[0];
section2.addEventListener('mousemove', (e) =>{
const moveX = (e.pageX * -1 / 10);
const moveY = (e.pageY * -1 / 10);
section2.style.backgroundPosition = moveX + 'px ' + moveY + 'px';
});
</script>
</body>
</html>
我目前的问题是前景图像左对齐。我希望它在中间。另外,我想让它在多种屏幕尺寸上都具有响应性。
【问题讨论】:
-
能否请您在codesandbox.io 中提供您的代码?它使测试和尝试其他人变得更容易......
-
您好,感谢您的建议。这是链接:codesandbox.io/s/xenodochial-hawking-dr94t?file=/index.html 我想要实现的是bg 比fg 移动得慢,所以它创建的像3d 效果,用户可以看到不同的层。此外,鼠标悬停应该接管整个屏幕的效果,而不仅仅是光标移到屏幕上时。
标签: javascript html css web frontend