このフィドルを見てください:
http://jsfiddle.net/contendia/GBTAS/
アイデアは、js を実行できるときにのみタブを作成することで、非 js ユーザーにとって使いやすいページを維持することです。それ以外の場合は、ページを単なる div のスタックとして表示したいと考えています。タブのリストは、タブの数に応じて完全に自動化され、各タブには対応する divs id 属性に従って名前が付けられます。
すべてがうまく機能していますが、現在、クリックイベントを作り直して、タブをより一般的にナビゲートしようとしています。以前は、リスト アイテム タブ (li) の 1 つでクリック イベントを探し、必要なコードを実行してタブを変更しました。
しかし今、この関数をより一般的なものにして、ユーザーが実際のタブをターゲットにすることなく、タブ ID の 1 つに等しいハッシュ値を持つ任意のアンカーをクリックしたときに機能するようにしたいと考えています。アンカー内のハッシュをターゲットにして、タブ ID に対してテストする方法が正確にはわかりません。私が持っている関数は、FF と IE で、タブのクリックとアンカー リンクのクリックの両方で機能します (例: <a href="#tab1">Tab 1</a>
)。ただし、タブがビューポートよりも長い場合、タブの上部がウィンドウの上部までスクロールするため、タブ リンクが表示されなくなります。別のタブに移動するには、タブ リンクを手動でスクロールして表示に戻す必要があります。ページを元の位置に戻すために .scrollTo() を試しましたが、うまくいきませんでした。
これは .scrollTo の問題ですか、それともクリック機能についてすべて間違っていますか?
アイデアをいただければ幸いです。おまけ、アニメ化してくれたら最高。