この問題は、フィドルで複製するのが少し複雑だと感じました。問題はhereです。私が固定部門にいる場合、スクロールトップを検出できません
ホームページでは、スクロールしてロゴをクリックするとうまくスクロールしますが、プロジェクトをクリックして同じことをしようとすると機能しません。私はそれがスクロールを検出することはできないと信じているプロジェクトがアクティブになっているので、含まれているdivが固定されているので、それは技術的には、
Javascriptを
$("a[href='#top']").click(function() {
$("html, body").animate({ scrollTop: 0 }, 700);
return false;
});
#project {
position:fixed;
left:0;
width:100%;
height:100%;
opacity:0;
top:100%;
background: #efefed;
-webkit-transition-duration: 0.3s;
-moz-transition-duration: 0.3s;
-ms-transition-duration: 0.3s;
-o-transition-duration: 0.3s;
transition-duration: 0.3s;
transition-timing-function: ease-out;
-webkit-transition-timing-function: ease-out;
}
body.projectLoaded {
overflow: hidden;
}
body.projectLoaded #project {
opacity:1;
top:0;
}
#project-container {
overflow: auto;
position: relative;
height: 100%;
padding-top: 60px;
}
CSSは、まだ私はそれを望むようにこのjavascript関数を作成する方法はありますか?それが構築されている方法を知っているのは難しいかもしれません。 #fixme
divでは、私はこれをやろうとしていたHow to make div fixed after you scroll to that div?と私は同じ理由で、なぜこれもうまくいかないと信じています。
更新: 解決策は、#プロジェクトコンテナをリスナーに追加することでした。ここで私はどうしますか?
var fixmeTop = $('.fixme').offset().top;
$(window).scroll(function() {
var currentScroll = $(window).scrollTop();
if (currentScroll >= fixmeTop) {
$('.fixme').css({
position: 'fixed',
top: '0',
left: '0'
});
} else {
$('.fixme').css({
position: 'static'
});
}
});
(window, "#project-container")
になりますか?
id project-containerに別のリスナーを登録できますか?私は '$(" project-container ")'を変更して完全にうまくいったので尋ねます。または、プロジェクトが開かれているかどうかを確認し、それに応じて行動します。 –
ありがとう、これは働いた! –