- ベストアンサー
jQueryのスライドするナビゲーションについて
- jQueryのスライドするナビゲーションについて調査しました。問題なく動作するが、別のスクリプトを使用するとアンカーが読み込まれず、ブラウザの更新をするとスライドがTOPに戻る現象が発生します。対処法を教えていただけないでしょうか。
- jQueryを使用したスライドするナビゲーションについての質問です。別のスクリプトを使用してコンテンツを移動させると、アンカーが読み込まれず、ブラウザの更新をするとスライドがTOPに戻ってしまいます。対処法を教えてください。
- jQueryで作成したスライドするナビゲーションについての質問です。別のスクリプトを使用してコンテンツを移動させると、アンカーが読み込まれず、ブラウザの更新をするとスライドがTOPに戻ってしまいます。解決策を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
最初のご質問が『両方使っている』ようなご質問でしたが、どのように両立させているの不明でした。 (そのままだと、ドキュメント全体が横スライドするので、メニュー部分が表示されなくなってしまう) 対策としては、メニューをフロートさせて常に表示しておくか、 webSiteScrollingの方をdiv内などでスクロールするようにするか、 あるいは横に長~~~いメニューにしてあるのか・・・・ (笑) いずれにしろ、更新ボタンを押すと最初のソースがリロードされるので、それまでの状態を継続したいのであれば、その状態をどこかに記憶させておく必要があります。(HTMLドキュメント内はクリアされてしまうので、それ以外に) 前回、回答者様の案はリンク機能を利用して、ロケーションのハッシュ部分(#以降)に記録しておくという方法でした。 しかし、(前回、質問者様もお気付きのように)ハッシュ部が更新されないので、その記録が残らないということが起きています。 具体的には、webSiteScrollingのスクリプトの方でアンカータグのリンク機能ををキャンセルしてしまっていることが原因と言えます。 webSiteScrollingのスクリプトの event.preventDefault(); がその部分に当たっていますが、そこを削除するとメニューの方は問題なくなるものの、多分、event.preventDefault();のスクロールの動きが一瞬おかしくなる可能性があります。(うまく行くかも知れません) どのような形で両者を実装しているのかが不明なのでわかりませんが、ハッシュ部分に記録しておく代わりに、クッキーに表示中のメニュー位置を記録しておくなどの方法に変えれば可能になると思います。 (クッキーだと「拒否」設定をしているユーザもいますが…) クッキーの使用方法の解説サイト (なんか、escape、unescapeを使っているとこしか見つからなかった…) http://ash.jp/~hasimoto/zakki/new_jsck.htm http://www.red.oit-net.jp/tatsuya/java/cookie.htm (エンコードはencodeURIComponent() などを) jqueryを利用しているのだから、cookie.js を利用した方が簡単かも知れません。 http://www.softel.co.jp/blogs/tech/archives/1135
お礼
ご回答ありがとうございます! event.preventDefault();を削除してみたら、 URLにアンカーがつくようになりました!! メニュー部分は、CSSでfixedで固定していて、 コンテンツ自体を横スクロールさせるようにしています。 たった一行がじゃましていたとは。。 とにかく思うように全て実現することができました!!! クッキーの使用についても今後のため チェックしておきます! 本当にありがとうございました!