javascript - 一次向上滚动一个 div(包含一个表格)一行

标签 javascript jquery html css scroll

我有一张包含歌词的表格。歌曲平均有 30 行左右,但我不希望它们一次全部显示在页面下方,因此我将表格放在属性 overflow:scroll 的 div 中。

我想做两件事:一次在 div 中显示 4 或 5 行(表格行),随着歌曲的进行,div 向下滚动,因此当前播放的行位于 div 的顶部。

我猜代码将使用属性 scrollTop 和 offsetHeight,但我不知道如何将它们放在一起。

这是表格: jsFiddle

<div id="divlyrics" class="lyrics">
 <table>  
     <tr id="row_0">
    <td>
     <p id="lyric_0" class="lyric_line">
Song lyrics line 1<br>
     </p>
    </td>
   </tr>     
   <tr id="row_1">
    <td>
     <p id="lyric_1" class="lyric_line">
Song lyrics line 2<br>
     </p>
    </td>
   </tr>
   <tr id="row_2">
    <td>
     <p id="lyric_2" class="lyric_line">
Song lyrics line 3<br>
     </p>
    </td>
   </tr>
   <tr id="row_3">
    <td>
     <p id="lyric_3" class="lyric_line">
Song lyrics line 4<br>
     </p>
    </td>
   </tr>   
   <tr id="row_4">
    <td>
     <p id="lyric_4" class="lyric_line">
Song lyrics line 5<br>
     </p>
    </td>
   </tr>   
   <tr id="row_5">
    <td>
     <p id="lyric_5" class="lyric_line">
Song lyrics line 6<br>
     </p>
    </td>
   </tr>
  </table>
 </div>

CSS:

.lyrics{
 font-family:Arial;
 overflow:scroll;
}

.lyric_line{
 border:solid 1px;
 text-align:center;    
}

(真实的表格至少有 2 行:1 行仅显示“Line x”,另一行显示 3 种不同形式的歌词:歌曲的原始语言、音译和另一种语言的翻译)。

最佳答案

function doScroll(){
   $('#divlyrics').scrollTop($('#divlyrics').scrollTop() + 10);
}

setInterval(doScroll, 500);

工作示例 http://jsfiddle.net/wrGnu/7/

关于javascript - 一次向上滚动一个 div(包含一个表格)一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11714478/

相关文章:

javascript - 在CKEditor对话框中动态添加UI元素

Javascript 检查是否填写了所需数据

javascript - 如何在 document.ready 中访问我的表单值

javascript - 获取带有延迟对象的异步请求的请求参数

javascript - 使用带有计时器的javascript隐藏/显示div

javascript - 添加类以滚动链接并在单击时添加相同的类

javascript - php $_REQUEST[ ] 不起作用

javascript - 限制安卓设备的字段输入

html - 在图像上定位

html - 打印时如何在链接后显示 href 的页码