У меня есть div (transcript_container), который содержит субтитры к воспроизведению аудио. Каждый субтитр синхронизирован со звуком.
Высота div 200px. Когда список субтитров длиннее 200 пикселей, текст автоматически прокручивается вверх, так что выделенный субтитр оказывается сверху и всегда виден в контейнере div. Это прекрасно работает во всех браузерах, кроме Firefox.
Это HTML:
<div style="display:table; margin-left:auto; margin-right:auto;">
<div style="display:table-row;">
<div class="transcript_container" id="transcript_container">
<div style="height:200px; overflow:-moz-scrollbars-vertical;"> (I had to add this div with the overflow for firefox otherwise the text wouldn't be contained in the div in firefox)
Subtitles......
...............
</div>
</div>
</div>
</div>
Это CSS:
.transcript_container{
display:table-cell;
width: 500px;
height:200px;
border: 1px solid #999;
-webkit-border-radius: 5px 5px 5px 5px;
-moz-border-radius: 5px 5px 5px 5px;
border-radius: 5px 5px 5px 5px;
text-align:left;
color:#036;
margin-left:auto;
margin-right:auto;
overflow:scroll;
}
Это скрипт jQuery:
jQuery('.subtitle_highlight').each(function(){
if (jQuery(this).offset().top - jQuery('#transcript_container').offset().top > 200){
jQuery('#transcript_container').animate({scrollTop: jQuery('#transcript_container').scrollTop() + 200 + 'px'}, 300);
}
});
Пример:
----------------------------------------DIV: Transcript_Container------
subtitle 1
subtitle 2
subtitle 3
----------------------------------------------End of DIV---------------
subtitle 4 (hidden area)
subtitle 5
subtitle 6
Когда субтитр 3 выделен, субтитр 4 прокручивается до верхней части DIV и становится видимым. Синхронизация продолжается с субтитрами 4, 5 и 6. В firefox субтитры 4 не перемещаются в верхнюю часть div, когда они выделены, а остаются скрытыми.
Как я могу сделать его совместимым с Firefox? Есть ли альтернатива ScrollTop, которая могла бы работать со всеми браузерами?
jQuery('#transcript_container').scrollTop() + 200 + 'px'
на `200 + 'px'` - person Vinc199789   schedule 25.10.2015('body')
или('window')
- person Vinc199789   schedule 27.10.2015div
, вам нужно было добавить специально для firefox. Дайте этому div с этим идентификаторомid="transcript_container"
padding-top
из0
по умолчанию. Если вы хотите переместить субтитры, дайтеpadding-top
значение `‹0' - person Vinc199789   schedule 27.10.2015