スクリプトは視差効果に関して機能しますが、一度ページがスクロールされると 'logo' divがすぐに左に飛び出し、これを修正する方法がわかりません。可能であれば、私は紛争の原因を知りたいと思います。視差要素の位置ずれを防止するにはどうすればよいですか?
*このスクリプトは、htmlの下に記載されています。あなたがスクロールするとき
html {
overflow:
}
body {
overflow-y: auto;
overflow-x: hidden;
height: 100vh;
margin: 0; /* remove default margin */
}
div#container{
height: 100%;
margin: 0;
}
div#static_nav {
width: 100%;
height: 2em;
padding-top: 10px;
position: fixed;
z-index: 999;
}
.static_nav_full {
background-color: #3A3D3F;
transition: background-color 2s;
opacity: .90;
}
.navbar{
font-family: 'Source Sans Pro', sans-serif;
padding-right: 20px;
background-color: transparent;
text-align: right;
}
div#static_nav a{
color: white;
text-decoration: none;
padding-right: 20px;
}
div#block_one, div#block_two, div#block_three,
div#block_four{
height: 100vh;
z-index: 1;
}
div#block_one{
background-image: url(https://images5.alphacoders.com/439/thumb-1920-439361.jpg);
background-size: cover;
background-attachment: fixed;
transition: all 0.2s ease;
}
div#logo{
background-image: url(https://cdn.pixabay.com/photo/2016/06/13/16/35/indian-1454621_1280.png);
background-size: contain;
background-position: center;
background-repeat: no-repeat;
background-attachment: fixed;
height: 100%;
}
div#block_five{
height: 30vh;
background-color: #F5F5F5;
}
<!DOCTYPE html>
<html lang = "en">
<meta charset = "utf-8" />
<head>
<link rel = "stylesheet" type = "text/css" href = "tof_css.css" />
<script src ="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Lato|Kanit|Heebo|Source+Sans+Pro:200">
<script src="finaljs.js"></script>
<script src="smthscrll.js"></script>
</head>
<body>
<div id = "container">
<header>
<div id = "static_nav">
<nav class = "navbar">
<a href = "#block_one">Home</a>
<a href = "#block_two">About</a>
<a href = "#block_four">People</a>
<a href = "#block_five">Contact</a>
<a href = "">Log In</a>
</nav>
</div>
</header>
<div id = "block_one">
<div id = "logo">
</div>
</div>
<div id = "block_two">
</div>
<div id = "block_three">
</div>
<div id = "block_four">
</div>
<div id = "block_five">
</div>
</div>
<script type="text/javascript">
(function() {
var documentEl = $(document),
blockone = $('#block_one');
logo = $('#logo');
documentEl.on('scroll', function() {
var currScrollPos = documentEl.scrollTop();
blockone.css('background-position', '0 ' + -currScrollPos/4 + 'px');
logo.css('background-position', '0 ' + -currScrollPos/2 + 'px');
});
})();
</script>
</body>
</html>
位置を操作するためにジャンプします。 (左は0に設定され、スクロール関連の先頭に設定されます)。 –