-
ID:uyBgsj さんの質問

はじめまして、質問させて下さい。

Webサイトをコーディングしています。
boxの高さを揃えてfloatさせても崩れないjQueryプラグインを使っています。

使っているプラグインはmatchHeight.jsです
https://github.com/liabru/jquery-match-height

このjsを使っているページにアンカーリンクをすると、意図したところに移動してくれません。
たぶんアンカーリンク先に飛んだあとに高さを揃えてしまうからずれてしまうのだと思いますが、対処法がわかりません。

知恵を貸していただけないでしょうか
よろしくお願いします

みんなの回答 3 件

ID:gJeKP/ さんの回答

JSで高さを揃えた後アンカーへ移動させる

ID:uyBgsj

回答有り難うございます。
高さを揃えた後、アンカーへ移動させる方法をご教授いただけないでしょうか?

ID:gJeKP/

アンカー先にIDを設定せずJSで取得できるID以外のプロパティを使ってmatchHeightが完了後にhashを受け取って移動させるだけ。

ID:uyBgsj

回答ありがとうございました。

ID:q04qAh さんの回答

もっともよい解決方法は、そのjQueryプラグインを使わないことだな。
今の時代、見た目に関わることはほとんどCSSだけで解決できるから、JSを使わないに越したことはない。ページのパフォーマンスも上がる。
それができないなら、そのjQueryプラグインが実行した後に、もう一度、JSからリンク先に移動させるというまどろっこしい記述をしないと、たぶん期待通りにはならない。そのプラグインを使うことによって、本来ブラウザが持っている機能を殺してしまうわけだから、ブラウザが担保していたその機能を自分で実装しないといけないという本末転倒な結果になるわけだ。

ID:uyBgsj

回答ありがとうございます。
使用しておりますCMSが弊社独自のCMSでして、そのプレビュー画面がIE7と同等なのです。それを無視して作ることができなくて、今回ご質問させていただきました。
また、私の知識も乏しく、理屈では「プラグインを実行させた後にリンク先に移動させる」ようなスクリプトを記述すれば良いことがわかるのですが、どうやって書いたら良いのかまったくわかりません。
どのように記述すれば意図した動きをするでしょうか?

ID:q04qAh

動くソースを代わりに書いてと言ってるのかな?
もし違うのなら、何が分からないか、何を教えて欲しいかを明確にしないと答えようがないよ。ほんとに質問の仕方もわからないくらい何もわからないのであれば、それは完全にあなたのキャパを超えています。あなたがやるべきことではありません。「JSが分からないならJSを使わない」これがあなたにとっての最適解です。

ID:XCXNA5

JSが分からないならJSを使わないってこの人頭硬いのかな? そんなことしてたらいつまでたっても技術力はあがらないでしょ。

ID:uyBgsj

回答ありがとうございました。

ID:q04qAh

>そんなことしてたらいつまでたっても技術力はあがらないでしょ。
趣味の話なら、そのとおりだね。でも、目の前の仕事をどうやってやっつけようかとしている人に、適当にWeb検索してごまかしなさいっていうのはおかしいよね。

ID:psjglX さんの回答

同一ページ内なら、アンカーリンクもブラウザ任せにしないでJSで処理する。別ページから飛んできた後なら対処しようがない。

ID:uyBgsj

回答ありがとうございます。
別ページから飛んできた後です。対処しようがないですか・・・。

ID:psjglX

厳密にはやれない事はない。ページを開いたらURLに # があるかチェックし、あれば # 以降のIDを取り出して matchHeight() を実行後にIDの offset().top を取得し scrollTop で移動すればいい。と思う。実際テストしたワケじゃないし、そのものズバリのコードを書いてやるほどヒマじゃないので、後は頑張れ。

ID:uyBgsj

ご返信ありがとうございます。
なんとか思い通りの動きができるようになりました。
offsetを知らなかったので大変参考になりました。
ありがとうございました。

最終更新日:2016-07-19 (2,694 views)

関連するトピックス

ページ上部に戻る