2011-12-07 9 views
1

私のウェブページでは、中央に縦のアコーディオンを使用していくつかのコンテンツをリストしています。ページが読み込まれると、アコーディオンが途中にあります。しかし、ユーザーがアコーディオンタブをクリックすると、ページ全体がスクロールアップし、アコーディオンタブがブラウザの上部に表示されます。どうすればこの反応を避けることができますか?私は、ユーザーが自動的にスクロールすることなく、ページの部分自体にとどまりたいと思っています。解決策はありますか?ブラウザの自動スクロールをdiv IDに削除するにはどうすればよいですか?

ユーザーがアコーディオンタブをクリックすると、ページURLは http://web.com/#tab_1になります。しかし、私は機能するためにIDが必要なので、アコーディオンからIDを取り除くことはできません。他の解決策?それはあなたのクリックハンドラでは、あなたの問題

+0

使用でpreventDefaultまたはReturn Falseを追加します! – adeneo

+0

これはアコーデオンのソースです:http://webdevtuts.s3.amazonaws.com/uploads/demo/vertical_accordion/index.html – user632347

+0

あなたの質問にいくつかのコードを追加してください。誰も他の人に迷惑をかけたり、例のページからコードをどのように実装したかを考えないでください。 –

答えて

1

を修正します

+0

アコーディオンはjqueryを使用していません。そのcss3を使用しています。ここにデモのリンクがあります:http://webdevtuts.s3.amazonaws.com/uploads/demo/vertical_accordion/index.htmlとドキュメント:http://www.webdevtuts.net/css/create-a-vertical-accordion- slider-using-pure-css3-and-html/ – user632347

+0

なぜCSSタグではなく、あなたの質問にJavaとjQueryタグを使用したのですか? – adeneo

+0

あなたの質問にはなぜコードはありませんでしたか? – Interrobang

0

onclick使用preventDefault、あなたは(つまり、アンカーにスクロール)のリンクをクリックするために、デフォルトのアクションを防ぐ必要があります。私はあなたのアコーディオンが設定されているのか分からないので、いくつかの擬似コード:

$("#accordion a").click(function(e)) { 
    e.preventDefault(); // This prevents the scrolling from occuring 
    $("#accordion").activate($(this).attr('id')); 
}); 
0

私は事実を回避する簡単なCSSベースの方法があるとは思わない:ターゲット擬似セレクタは、デフォルトが付属していますが、問題の要素にスクロールするURLフラグメントリンクのブラウザ動作。他にも示唆しているように、これをJSで追加する必要があります。

0

私があなたの問題を正しく理解しているのは、ページがクリックでトップに行くということです。個人的に私はいつもこれを追加して自動スクロールを止めます。

は、クリックハンドラのスクリプト

<%--Magic Script that maintains position on partial rendering and click--%> 
<script type="text/javascript"> 
    window.scrollTo = function (x, y) { 
     return true; 
    } 
</script> 
関連する問題