私は、ユーザーが最後のスライドに当たったときに内容を自動的にスクロールします。次に、ユーザは、バックアップswiperの内容と一部からスクロールした場合、私はそれは、ウィンドウの最上部までスクロールしたいビューにあるdivが表示されているかどうか確認します。表示されている場合は、ウィンドウの上部に移動します。
heroSwiper.on('onReachEnd', function(){
setTimeout(function(){
$('html,body').animate({
scrollTop: $(".section").offset().top
});
heroSwiper.lockSwipes();
heroSwiper.disableMousewheelControl();
}, 100);
});
heroMediaSwiper.on('onReachEnd', function(){
setTimeout(function(){
$('html,body').animate({
scrollTop: $(".section").offset().top
});
heroMediaSwiper.lockSwipes();
heroMediaSwiper.disableMousewheelControl();
}, 100);
});
:この部分はことを行います。 理論的には、フルスクリーンのスワイパーまたはメインコンテンツのいずれかが表示されます。
$(window).scroll(function(){
setTimeout(function(){
if ($('#hero').isOnScreen(0.3, 0.3) == true) {
$('html,body').animate({
scrollTop: $("#hero").offset().top
heroSwiper.slideTo(0);
heroSwiper.enableMousewheelControl();
heroSwiper.unlockSwipes();
heroMediaSwiper.slideTo(0);
heroMediaSwiper.enableMousewheelControl();
heroMediaSwiper.unlockSwipes();
});
};
}, 100);
});
瞬間、それはまっすぐにバックアップするメインコンテンツにスクロールダウン:ヒーローバナーの一部が表示されている場合
このは、ウィンドウの上部にユーザーを取得することになっていますページの上部に移動します。
$.fn.isOnScreen = function(){
var win = $(window);
var viewport = {
top : win.scrollTop(),
left : win.scrollLeft()
};
viewport.right = viewport.left + win.width();
viewport.bottom = viewport.top + win.height();
var bounds = this.offset();
bounds.right = bounds.left + this.outerWidth();
bounds.bottom = bounds.top + this.outerHeight();
return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom));
};
それともこれを行うためのより良い方法があるならば、私に知らせてください!!:
これは、何かが表示されているかどうかを確認するためのスクリプトです
あなたのタイムアウトは矛盾していると思います。 timeout変数/オブジェクトを設定してみてください。タイムアウトを呼び出す前に、変数/オブジェクトをクリアしてください。 – Hoyen
@Hoyen申し訳ありませんが、私はまったくフォローしていません。答えとして入れることができますか(それも受け入れることができます)。 – Rob