質問: 今、タグをクリック後、ページ移動した後に特定の要素まで移動させるというのに挑戦してるのですが、なかなかうまくいきません。以下ナビだとします。 (「href="URL/#~~~"」とすれば、ページ移動と同時にその要素に移動はできますが、URLに/#~~~とついてしまい、都合が悪いです。) ``` あああ いいい ううう ``` 上のリンククリックで、「同じURL」に飛んだ後に、それぞれのIDごとに違う要素に移動というのをやりたいです。 理想は、例えばあああをクリックして、別ページに移動した瞬間に「id="Link1"」がついてる要素に移動するという感じです。 ``` $('#link1').click(function() { $("html,body").animate({scrollTop:$('#Link1').offset().top}); }); ``` ネットで調べながらjqueryで今やってみたのですが、上記のコードではanimeteせずでした。 settimeでもやっても上手くいかず、根本的に知識が足りてないなと思いここでの質問に至りました。どうか宜しくお願いします。
回答: 別ページであることが発覚したのでそれ用に考え直してみました。 ``があるページの処理 ``` $('#link1').click(function(e) { document.cookie = 'hiddenhash=Link1'; // cookieにhiddenhashという名前で飛びたい要素の名前を保存しておく }); ``` リンク先のページ ``` $(function() { var cookies = document.cookie.split(";"); // cookie文字列を;区切りで取得 var map = {}; for(var index in cookies) { var cookie = cookies[index].trim(); // 両端の空白を削除 var pair = cookie.split("="); // cookieを=で分割 map[pair[0]] = pair[1]; // cookieの値を連想配列に格納 } // cookieの中にhiddenhashがあったら、該当の位置までスクロール if("hiddenhash" in map && map["hiddenhash"].length > 0) { $("html,body").animate({scrollTop:$('#' + map["hiddenhash"]).offset().top}); } document.cookie = 'hiddenhash='; // cookieのhiddenhashを削除しておく }); ```