#javascript
#javascript
Вопрос:
Позвольте мне объяснить. Там будет файл с большим количеством текста, и в нем должны быть тайм-ауты. Как видно ниже, когда пользовательский таймер достигает определенного времени, он изменяет текст на время чтения внутри <-- -->
.
<-- 05m:06s-->
hello
<-- 05m:12s -->
world!
Я не прошу исходный код или вас сделать это за меня, я просто хотел бы знать, возможно ли это, и некоторые указания для достижения этого.
Комментарии:
1. Не совсем понятно, о чем вы спрашиваете. Почему бы вам не попробовать добавить больше примеров? Даже псевдокод мог бы помочь 🙂
2. Текст содержит
<-- -->
теги. Между ними есть время, когда он запускается, так что: если таймер показывает 05: 06 (5 минут и 6 секунд), то он изменяет текст после<-- time -->
тега. В текстовом файле их много, поэтому мне нужно было бы создать JS для чтения текстового файла.3. Хорошим подходом было бы использовать Ajax и позволить php проверять файл и возвращать данные в javascript (который позаботится об использовании этих данных).
Ответ №1:
Вот кое-что, с чего вы можете начать. Я решил включить информацию о времени отображения в текст внутри <li>
элементов. Каждый раз, когда вы обновляете таймер, проверяйте время в <li>
элементах и, если они совпадают, записывайте их текст.
HTML:
<div id="time"></div>
<div id="text"></div>
<div id="info">
<ul>
<li name="0h 0m 6s">something at 6s</li>
<li name="0h 0m 8s">something at 8s</li>
<li name="0h 0m 2s">something at 2s</li>
<li name="0h 0m 10s">something at 10s</li>
</ul>
</div>
JS:
$(function(){
var startDate = new Date($.now());
$('#time').html("0h 0m 0s");
var secondCounter = 0;
window.setInterval(function(){
secondCounter ;
var timerStr = "";
$('#time').html(Math.floor(secondCounter/3600) "h " Math.floor(secondCounter/60) "m " secondCounter%60 "s");
$('#info ul li').each(function(event){
if($('#time').html() == $(this).attr("name")){
$('#text').html($(this).html());
}
});
}, 1000);
});