追随型メニュー+スムーススクロールの併用時における問題の解決例(制作会社/運営者向け)
少し前までは全面Flash構築サイトなんて当たり前のように見かけていたのですが、今は気づけばjQueryが用いられることが多くなってまいりました。最近のweb制作でも、「ここにこの動きをつけたいんだよね」なんて依頼が日常茶飯事であります。
jQueryの良いところはやっぱり更新のしやすさ。Flashでの作業過程を考えると、制作視点ではこれが一番大きいです。テキストのコピぺはもちろん容易ですし、ちゃんとSEO対応ができます。後はユーザー視点で待ち時間がほぼない、動作が軽い、iOSで閲覧可、ブックマークできる、などが挙げられます。
そこで今回は、最近携わった案件で発見した、色々と応用の効きそうなJSの小ネタを一つご紹介したいと思います。
スクロールに追随メニュー+アンカースクロール
ユーザーがサイトを閲覧する際、ウィンドウをスクロールさせるのに合わせてグローバルナビも同じ位置に固定させ、一緒に追随させるようなサイトが数年前から増え始めました。現在でもその機能を採用しているサイトは多く見られ、特にランディングページではよく使われているように思います。縦長で文章量が多いサイトでは便利ですよね。
また、それと併用して多く使われているのがアンカーリンクに対するページ内スクロールです。この機能はさらに多くのサイトが採用していますよね。もはや使っていないサイトはないのでは?と思うほどに…
ただ、これらを併用した際「ページ内スクロールをしたとき、止まってほしい位置に止まってくれない」ということ、ありませんか?
今回はこれらの機能を併用するとよく起きる問題に対しての解決例をご紹介します。
まず、上記で述べた問題の原因は「メニューの縦幅分が計算されていない」ことです。これにより、アンカーリンクでスクロールしてきたメニュ-が指定の位置で止まらず、コンテンツに被ってしまいます。
ここでスムーススクロールjQueryのソースの記述例をお見せします。
$(function(){ $('a[href^=#]').click(function(){ var speed = 1800; var href= $(this).attr("href"); var target = $(href == "#" || href == "" ? 'html' : href); var position = target.offset().top; $("html, body").animate({scrollTop:position}, speed, "swing"); return false; }); });
このソースの中でポジションの値を格納しているのが下記の部分!
$(function(){ $('a[href^=#]').click(function(){ var speed = 1800; var href= $(this).attr("href"); var target = $(href == "#" || href == "" ? 'html' : href); 【ココ】→ var position = target.offset().top; $("html, body").animate({scrollTop:position}, speed, "swing"); return false; }); });
要は、ここからメニュー分の縦幅分を差し引いて記述すれば良いわけです。仮にメニュ-の縦幅が200pxだった場合、上記の記述を下記のように修正します。
$(function(){ $('a[href^=#]').click(function(){ var speed = 1800; var href= $(this).attr("href"); var target = $(href == "#" || href == "" ? 'html' : href); 【ココ】→ var position = target.offset().top-200; $("html, body").animate({scrollTop:position}, speed, "swing"); return false; }); });
target.offset().topに-200を追加してあげるだけ!いざクリックしてみると指定の位置でちゃんと停止するので見ていて気持ちよいですね!
私もまだまだ勉強中の身ではありますが、jQueryは本当に色々なことができて便利で面白いです。
EC-CUBE公式アドバイザーが、ツール選びからサイト制作、マーケティング・セキュリティの領域までアドバイスいたします。ご相談窓口はこちら
最後に
皆さんも色々なプラグインをちょっとしたカスタマイズで便利に使っていきましょう!
他の記事もご覧ください
-
ネットショップ開業に必要な8つのステップ
オンラインショッピングの比率が高まる中、ネットショップを開業してみようと思う個人事業主・フリーランスの方も多いのではないでしょうか? しかし実際に開業を検討すると、ネットショップの開業手続きは手間がかかりそう ネットショップをオープンするまでに何をする必要があるかわからない そんな不安のある方も多いかと思います。今回の記事ではネットショップ開業の手続き、販売開始までにやるべきことを8つのステップでわかりやすく解説します。これからネットショップを開業するか検討したい、という会社員の方にも参考になれば幸いです。
-
ECサイトの構築ガイド/作り方と手順や費用もご紹介
「これからECサイトを構築することになったが、何から手をつけたらよいかわからない」「ECサイトをリニューアルすることになったが、どのパッケージを使えばベストなのかわからない」「ASPカート、パッケージ、オープンソース、フルスクラッチの違いや特徴がいまいち理解できていない」とお悩みのご担当者は多いのではないでしょうか?この記事ではECサイト制作・構築のステップ、よくある困りごとと対策などを解説していきます。ECサイトをこれから立ち上げる予定の方、リニューアルを検討している方にとって何かひとつでもお役に立てば幸いです。
-
ECサイトのリニューアルを成功させるコツ!手順、タイミング、注意すべき点を解説
ある調査結果では、80%の企業が現在使っているECプラットフォームに不満を感じているようです。そこで今回の記事では、ECサイトをリニューアルするタイミング、リニューアルの手順、注意すべきことや成功のポイントを解説していきます。「これからECサイトをリニューアルしたいが、失敗したくない・回り道をしたくない」と考えている方のヒントになれば幸いです。