gpt4 book ai didi

javascript - 使用 html5 音频中的文本链接打开/关闭 javascript 执行

转载 作者:行者123 更新时间:2023-11-28 17:46:32 25 4
gpt4 key购买 nike

我正在使用代码来突出显示根据“时间”阅读的单词,并且默认情况下它是打开的。我需要它在默认情况下保持打开状态,但在“文本链接”上添加一个功能,可以打开/关闭突出显示(因此单击时不会突出显示。因此,当我单击“禁用”一词时,它会禁用执行代码,并且单词“Disable”自动更改为单词“Enable”,其作用相反......等等。

这是代码片段:

var spns = document.getElementsByTagName("SPAN");
var audi = document.getElementById("adi");

audi.addEventListener("timeupdate", f1);

function f1(){
var i;
for (i = 0 ; i< spns.length ; i++){
var time = Number(spns[i].id.slice(2));
if(time < audi.currentTime){
if (i>0) spns[i -1].style.backgroundColor = "white";
spns[i].style.backgroundColor = "red";
}
}
}
<audio id = "adi" controls>
<source src="https://ia802508.us.archive.org/5/items/testmp3testfile/mpthreetest.mp3"></source>
</audio>

<div>
<pre>
<span id="ts0.5">Ok, we're trying this for a second time</span> , <span id="ts3">to test the ability...</span>
</pre>
</div>

最佳答案

我将使用 CSS 并根据父级的类来定位跨度。这使得逻辑更好、更简单。

var textHighlightOn = true,
btnToggle = document.getElementById('toggleTxt'),
textDiv = document.querySelector('.text-highlight')
spns = document.getElementsByTagName("SPAN"),
audi = document.getElementById("adi");

audi.addEventListener("timeupdate", f1);

function f1(){
var i;
for (i = 0 ; i< spns.length ; i++){
var time = Number(spns[i].id.slice(2));
if(time < audi.currentTime){

if (i>0) {

spns[i -1].classList.remove('active');
spns[i -1].classList.add('active-prev');

}

spns[i].classList.add('active');

}
}
}

btnToggle.addEventListener("click", function(){

if(textHighlightOn){
textDiv.classList.add('off');
} else {
textDiv.classList.remove('off');
}

this.innerHTML = 'Highlight ' + (textHighlightOn ? 'off ' : ' on');

textHighlightOn = !textHighlightOn;

});
body {
background: #008000;
}
.text-highlight span.active-prev {
background: #fff;
}
.text-highlight span.active {
background: #03a9f4;
}
.text-highlight.off span {
background: transparent;
}
<audio id="adi" controls>
<source src="https://ia802508.us.archive.org/5/items/testmp3testfile/mpthreetest.mp3"/>
</audio>

<button id="toggleTxt">Highlight on</button>

<div class="text-highlight">
<pre>
<span id="ts0.5">Ok, we're trying this for a second time</span> , <span id="ts3">to test the ability...</span>
</pre>
</div>

关于javascript - 使用 html5 音频中的文本链接打开/关闭 javascript 执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46602061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com