JS初心者のものです。
スマートフォンでのslideDownとslideUpに関して質問させてください。
現在スクロールすると途中からナビゲーションがslideDownで出てくるサイトを作っています。 ( minedenim.jp のようなサイトです。 )
基本的に1ページで、ナビゲーションにアンカーリンクをつけてその指定場所にスムーススクロールするといったよくあるサイトです。
一部下層ページがあり、下層ページのナビゲーションをTOPトップページのアンカーリンクを指定したところにすると、
PCだとアンカーリンクも効いてナビゲーションがきちんとslideDownで表示されるのですが、
SPから確認するとナビゲーションがslideDownで表示され、slideUpでナビゲーションが戻り、それから再度slideDownでナビゲーションが表示されることが結構あります。(ならないときもあります。)
ここで詰まってしまい解決できないため質問させていただきました。
おそらく書き方が悪いと思いますので、皆様のお力を貸していただきたく思います。
JSは</body>直前で読み込ませております。
ソースコード一式を下記に記載させていただきますので、お力添えをいただけますと非常に助かります。
何卒宜しくお願い致します。
// ===================================================================== // ============================== PC/SP 共通 ============================== // ===================================================================== $(function(){ // biggerlink $('#projects .article').biggerlink(); // matchHeight $('.js-matchHeight').matchHeight(); // smooth scroll $('a[href^=#]').click(function(){ var speed = 1000; var href= $(this).attr("href"); var target = $(href == "#" || href == "" ? 'html' : href); var position = target.offset().top; $("html, body").animate({scrollTop:position}, speed, "easeInOutQuad"); return false; }); }); // PC/SP条件分岐 var windowWidth = $(window).width(); var windowSm = 824; if (windowWidth <= windowSm) { // ========================================= // ========== 横幅824px以下に行う処理を書く ========= // ========================================= $(function(){ // 途中ヘッダー出現 $(window).on("load scroll", function () { if ($(this).scrollTop() > 35) { $(".cb-header").slideDown(); } else { $(".cb-header").slideUp(); } }); }); } else { // ============================================= // ========== 横幅825px超のときに行う処理を書く ========== // ============================================= $(function(){ // 途中ヘッダー出現 $(window).on("load scroll", function () { if ($(this).scrollTop() > 92) { $(".cb-header").slideDown(); } else { $(".cb-header").slideUp(); } }); // firefox用 ヘッダー固定 $(window).load(function (){ if(top.location.href.match(/\#projects$/)){ top.location.href = "index.html#projects", $(".cb-header").slideDown(); } else if(top.location.href.match(/\#people$/)){ top.location.href = "index.html#people" } else if(top.location.href.match(/\#company$/)){ top.location.href = "index.html#company" } }); }); }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/08/08 08:00
2017/08/08 08:06
退会済みユーザー
2017/08/08 08:22
2017/08/08 08:31
退会済みユーザー
2017/08/08 09:27 編集
退会済みユーザー
2017/08/08 08:40
2017/08/08 09:07
退会済みユーザー
2017/08/08 09:26
退会済みユーザー
2017/08/08 09:34 編集
2017/08/08 09:38
退会済みユーザー
2017/08/08 10:04
退会済みユーザー
2017/08/24 05:04