私はスクロールすると別のセクションにスムーズに移動します(jqueryのアニメーションスクロールトップを使用)ので、別のサイトにスクロールすることはできません。さて、私がしたいのは、セクション2にスクロールすると、要素がいくつかのアニメーションで表示され、それを放置すると消えてしまうことです...スクロールされていないアニメーション - JQuery
私はこれを行いましたが、ページと私はすでにそのセクションに入っています。それ以外の場合は動作しません。 $(window).scrollTop()を呼び出すと、scrollTopが即座に返されるため、スクロールアニメーションが終了するまで実際には750msを待つ必要があるため、それはうまくいかないと思います。私はsetTimeOutと他のものを使用しようとしましたが、動作させることができませんでした。
function animacionObjetosDeSections() {
$(window).scroll(function() {
//each height of the sections
var altoSection2 = $('#section2').offset().top;
var altoSection3 = $('#section3').offset().top;
//if scrolltop is the same to the height of section2, it displays the animation, else it returns to original state
if ($(window).scrollTop() == altoSection2) {
$('.view-of-page').animate({left: '2%'},600);
$('.page-info h2').animate({opacity: 1}, 650);
} else {
$('.view-of-page').animate({left: '-50%'},600);
$('.page-info h2').animate({opacity: 0}, 650);
}
});
}
EDIT:ここ
はコードであるが、それは動作しますが、それぞれのために、それは30のスクロールイベントのように認識してスクロール知っていると私はそれらの30回のイベントを待たなければなりません*機能を再現させるために750ms。
CODE:
function animacionObjetosDeSections() {
$(window).scroll(function() {
setTimeout(function() {
//each height of the sections
var altoSection2 = $('#section2').offset().top;
var altoSection3 = $('#section3').offset().top;
//if scrolltop is the same to the height of section2, it displays the animation, else it returns to original state
if ($(window).scrollTop() == altoSection2) {
alert("hola");
$('#section2 .view-of-page').animate({left: '2%'},600);
$('#section2 .page-info h2').animate({opacity: 1}, 650);
} else {
$('#section2 .view-of-page').animate({left: '-50%'},600);
$('#section2 .page-info h2').animate({opacity: 0}, 650);
}
},701);
});
}
しかし、私は垂直にではなく水平にスライドしたいです。そして、私はそれがscrollTop()を取得する時間を遅らせるのと同じ問題のために動作しないと思う –