2012-05-11 3 views
1

ie。我々は(全体ではなくページ上の)訪問者の画面上に最後本当に目に見えるlineIDを取得し、jQueryを使って、サーバーにこのIDを送信するためにどのようにテキストjqueryは、テキストのフォーカスと表示行にアクションを送信します

<div class="textline" id=line1>text line or line with image no reason</div> 
<div class="textline" id=line2>text line or line with image no reason</div> 
<div class="textline" id=line500>text line or line with image no reason</div> 

の多くの行を持つページがありますか? 1)初回送信 - ページが5秒以上にフォーカスされたとき(実際に閲覧されたとき)、訪問者の画面から最後に目に見えるlineIDを送信する必要があります。 2)ページがスクロールダウンされたときに最後に表示される行を送信する必要があります(少し時間切れと思う)

jqueryで可能ですか?どんな例?

+0

わかりませんが、ちょうどいいのですが、リサイズイベントをキャプチャする必要があります – Rodolfo

答えて

2

.textline要素のリストから最後の要素を取得します。

例:

$(".textline").last(); 

それとも、あなたはビューポートで画面上に見えるの最後の要素を選択したい場合、あなたはこのように、多くの複雑な何かをする必要があります:

$(".textline").each(function() { 
    var offset = $(this).offset().top - $(window).scrollTop(); 

    if(offset <= window.innerHeight - $(this).height){ 
     // it's the last visible line, do something with it. 
     // you can put a call to your server containing the 
     // line's current text with something like this: 
     // var curText = $(this).val(); 
    } 
} 
+0

2番目の答えでは、現在の行が最後に表示された行であることがわかりません。 – Rodolfo

0

これが最後の.textlineを選択:

$('.textline').last().text() 
関連する問題