jQuery Scrollify を使用したサイトの改修を行っています。
SP(767px以下)の時にスクロールを通常に戻したいです。
js
1 if($(window).innerWidth() <= 767){ 2 //ここに書いた処理はスマホ閲覧時のみ有効となる 3 $.scrollify.disable(); 4 5 };
このコードでスクロールが通常にできましたが、
TOPページのメニューの切り替えとメニューのカレント表示に連動しており
ファーストビューのフルスクリーンのロゴとナビが
スクロール後のTOP部分にfixするナビのままでカレント表示されなくなってしまいまいた。
コードを全部表示することができませんが、
jsのみでわかる方いたら
ご教授いただけないでしょうか?
js
1$(function() { 2 var current; 3 $.scrollify({ 4 section : ".u-panel", 5 sectionName : "section-name", 6 easing: "swing", 7 scrollSpeed: 700, 8 scrollbars: true, 9 updateHash: false, 10 before:function(i,box){ 11 current = i 12 $('.c-topbar__nav .active').removeClass('active'); 13 $('.c-topbar__nav').find('li').eq(i).addClass('active'); 14 if($('.c-topbar__nav li:first-child').hasClass('active')){ 15 $('.c-topbar').removeClass('-fixed'); 16 } else { 17 $('.c-topbar').addClass('-fixed'); 18 $('.c-topbar').css('{opacity:0;}'); 19 } 20 }, 21 afterRender:function(){ 22 $('.c-topbar__nav li').each(function(i){ 23 $(this).on('click',function(){ 24 $.scrollify.stop().move(i); 25 }); 26 }); 27 $('.c-topbar__nav li:first-child').addClass('active'); 28 if($('.c-topbar__nav li:first-child').hasClass('active')){ 29 $('.c-topbar').removeClass('-fixed'); 30 } else { 31 $('.c-topbar').addClass('-fixed'); 32 } 33 }, 34 }); 35 $('a[href^="#"]').each(function(i){ 36 $(this).on('click',function(){ 37 $.scrollify.move(i); 38 }); 39 }); 40 if($(window).innerWidth() <= 767){ 41 //ここに書いた処理はスマホ閲覧時のみ有効となる 42 $.scrollify.disable(); 43 44 }; 45}); 46
【追記】
とりあえず、if($(window).innerWidth() <= 767){} の中に下記のコードを入れてヘッダーの切替(フルスクリーンのロゴとナビを画面上部固定の追従メニューにする)ができました。
js
1$('.c-topbar').removeClass('-fixed'); 2// スマホのロゴナビ切替 3 $(function () { 4 $(window).scroll(function () { 5 6 if ($(this).scrollTop() > 10) { 7 $('.c-topbar').addClass('-fixed'); 8 } else { 9 $('.c-topbar').removeClass('-fixed'); 10 } 11 }); 12 });
後はメニューのカレント表示です。(対象のセクションまでスクロールしたら、liにclass="active"を与える)
こちらの方法と、もっといいやり方がわかる方いたらご教授ください。
よろしくお願いいたします。
あなたの回答
tips
プレビュー