2017-01-25 48 views
3

私は通常のスクロールのページを持っています。私はfullpage.jsを初期化しているモーダルをポップするアンカーがページにあります。これまでのところうまく動作しますが、ユーザーが閉じるアイコンをクリックすると、モーダルウィンドウを閉じ、fullpage.jsを一時停止または停止して、ユーザーがアンカーを再度クリックしない限り、全ページのスクロール効果が無効になります。私は、これを行うにはdestroyメソッドを使用しようとしましたが、fullpageは一度しか初期化することができないので、ユーザーがアンカーを2回クリックしたときにはフルページが再初期化されず、このエラーがスローされます。FullPage:Fullpage.jsのみ一度初期化して、それを何度もやっています!破壊せずに全ページを一時停止または停止する

$('.js-show-modal').on('click', function() { 
    var modal = $(this).attr('data-modal'); 
    $('.modal[data-modal="' + modal + '"]').show(); 
    $('#fullpage').fullpage({ 
    fixedElements: '.site-header', 
    css3: true, 
    navigation: true, 
    navigationPosition: 'right' 
    }); 
}); 

$('.js-close-modal').on('click', function(e) { 
    e.preventDefault(); 
    $.fn.fullpage.destroy(); 
    $(this).closest('.modal').hide(); 
}); 
+0

あなたが別のdiv要素をクリックすると、 '$ .fn.fullpage.reBuildを()を実行し、テストを実行することができます;'代わりにREINITしようとするの? – Sam0

+0

ありがとう@ Sam0私はそれを試しましたが、期待通りに動作しません。 fullpageのインスタンスはすでに破壊されているので、rebuild()は何もしません。私はrebuild()はAjax呼び出しのようなものだと思っています。しかし、インスタンスを破棄して再作成する必要はありません。 – Cook88

答えて

0

$.fn.fullpage.destroy('all');を試しましたか? これは、fullPage.jsを完全に破壊するために必要なものです。それ以外の場合は、fullPage.jsによって作成されたイベントだけが破棄されます。 the docs上の情報については

//destroying all Javascript events created by fullPage.js (scrolls, hashchange in the URL...) 
$.fn.fullpage.destroy(); 

//destroying all Javascript events and any modification done by fullPage.js over your original HTML markup. 
$.fn.fullpage.destroy('all'); 
+0

アルヴァロと修正!ありがとう! – Cook88

関連する問題