2011-06-30 10 views
3

私はHTMLの知識がほとんどないので、これはおそらく非常に些細な質問です。私は本当に助けていただければ幸いです!HTML5またはjQueryのインクリメンタルな箇条書きポイント?

私はLaTeXのビーマークラスでプレゼンテーションを作成していたときに非常に便利なコマンドがあります:

\begin{itemize} 
\item<x-> Alpha 
\item<x-> Beta 
\item<x-> Gamma 
\end{itemize} 

これは、例えばマウスクリックまたはPowerPointのように、前方/後方の矢印の後にインクリメンタルに表示される3つの箇条書きを作成します。

私は非常に長いリストのために.htmlファイルに同じ機能を持たせたいと思います。したがって、実際にはスライド環境では機能しませんが、スクロールするだけでブラウザでのみ機能します。

これをHTMl5やjQueryなどで簡単に実現する方法はありますか?グーグルは何千ものプレゼンテーションツールを投げつけています。どこから始めるべきかわかりません。 jQueryを使って

答えて

1

あなたがウィンドウにkeypressイベントをバインドし、次のリスト項目にキーが押されるたびに示すことができた:

var curIndex = 0; 
$(window).keypress(function() { 
    $("li").eq(curIndex).show(); 
    curIndex++; 
}); 

矢印キーだけでこの作業を行うためには、若干の変更があります(あなたの代わりにkeypressの​​を使用する必要があります)が必要:

var curIndex = 0; 
$(window).keydown(function(e) { 
    if(e.keyCode === 37) { 
     if(curIndex > 0) curIndex--; 
     $("li").eq(curIndex).hide(); 
    } 
    else if(e.keyCode === 39) { 
     $("li").eq(curIndex).show(); 
     if(curIndex < 3) curIndex++; 
    } 
}); 

あなたのHTMLリストは次のようになります:

CSSでli { display:none }のようなものを使用して、リスト項目をデフォルトで非表示にする必要があります。

また、上記の例では、最後の要素が表示されている場合を処理しないことに注意してください。この場合、何をする予定ですか?

これは実際に動作していることを示すexample fiddleです(フォーカスを与えるには「結果」フレームをクリックしてから、任意のキーを押してイベントハンドラを起動する必要があります)。

+0

ありがとうございます!それはまさに私が求めていた機能です。最後の項目が表示された後は、私はイベントは必要ありません。後ろに行くいくつかの機能はありますか?例えば ​​"1)2)3)"が左矢印などを押して "1)2)"に戻ると表示されている場合 – Elip

+0

これを行うバージョンがあります(左矢印/右矢印)。また、カウンタ変数を使用しません:) http://jsfiddle.net/CBknU/ – AKX

+0

@Elip - ここでは、左/右矢印キーの押下でのみ動作する例を示します。http://jsfiddle.net/ekHJH/ 8/ –