私は画像に視差を加えるためのコードを単純化しました。中央の視差画像
スクロールを開始すると、先頭の値が正しくありません。距離が大きすぎると私はウェブサイトのトップに戻ってくるときに、画像は最初のように中央に配置されていません。
正しいトップ値を計算するにはどうすればよいですか?
$(document).ready(function(){
\t var scrolledDefault = $(window).height()/2 - ($('.img__moi').height()/2) + 25;
\t $('.img__moi').css('top', scrolledDefault);
\t $(window).scroll(function(e){
\t \t parallax('.img__moi', '0.2');
\t });
\t function parallax(element, vitesse){
\t \t var scrolled = $(window).scrollTop() + ($(window).height()/2) - ($(element).height()/2) + 25;
\t \t console.info(scrolled*vitesse);
\t \t $(element).css('top',-(scrolled*vitesse)+'px');
\t }
});
body{
background-color:#cccccc;
height:3000px;
}
.align__text{
position:absolute;
top:calc(50% + 30px);
left:calc(25% + 20px);
width:70%;
-webkit-transform:translateY(-50%);
transform:translateY(-50%);
z-index:2;
}
.header__top{
background-color:$blanc;
padding:5px 0px;
height:50px;
position:fixed;
top:0;
left:0;
right:0;
z-index:9999999;
}
.img__moi{
float:left;
width:25%;
position:absolute;
margin-left:50px;
z-index:2;
transition:all 300ms ease;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<header>
<div class="header__top"></div>
<img src="http://img15.hostingpics.net/pics/317625pexelsphoto.jpg" class="img__moi">
\t \t \t <div class="align__text">
\t \t \t \t <h1>The title here<br/> Two line</h1>
\t \t \t </div>
</header>
ありがとうございました。 これは私が見つけた解決策よりも優れています! –
私の担当者に1kマークを渡すことを許可してくれてありがとう! :) – Sam0