我正在尝试使用.Blur()在5秒后失去焦点但是使用setTimeout和setInterval不能使用我正在使用的代码。
我正在使用VideoJS来获取视频中的时间,在1到10秒之间,ID为“butt6”的按钮应该更改为有效的聚焦。
我遇到的问题是在5秒后无法聚焦。
在代码中,我有1到10秒,并且我已经将setTimeout设置为5秒来测试它是否正常工作但它不是并且我当前依赖于elseif .blur()来10秒钟后失去焦点。
我已经在互联网上搜寻试图寻找可能有类似问题的其他人,但到目前为止我尝试过的所有内容都没有关注按钮或根本没有关注。
代码如下:
var myPlayer = document.getElementById('my_video_1');
var myFunc = function(){
var whereYouAt = myPlayer.currentTime;
if (whereYouAt > 1 && whereYouAt <= 10){
var linkToFocus = document.getElementById('butt6');
linkToFocus.focus();
setTimeout(function(){ linktoFocus.blur(); }, 5000);
}
elseif (whereYouAt > 11){
linkToFocus.blur();
}
myPlayer.addEventListener('timeupdate',myFunc,false);
答案 0 :(得分:2)
我认为问题是if
继续执行并关注setTimeout
之后。这应该解决:
var myPlayer = document.getElementById('my_video_1');
var hasFocus = false;
var myFunc = function(){
var whereYouAt = myPlayer.currentTime;
if (whereYouAt > 1 && whereYouAt <= 10 && !hasFocus){
var linkToFocus = document.getElementById('butt6');
linkToFocus.focus();
hasFocus = true;
setTimeout(function(){ linktoFocus.blur(); }, 5000);
}
}
myPlayer.addEventListener('timeupdate',myFunc,false);
答案 1 :(得分:0)
感谢您对Tiago的建议,并对延迟回复表示歉意 不幸的是,'setTimeout'不起作用,但是使用.blur()我设法将焦点从按钮上移开并用CSS中的伪类进行格式化以进行转换。
我的最终代码如下所示。
.btn-sq {
width: 90px !important;
height: 90px !important;
font-size: 14px;
background-color:rgba(255,255,255,1);
margin: 5px;
color:#000;
white-space: normal;
-o-transition:color .2s ease-out, background-color .2s ease-in;
-ms-transition:color .2s ease-out, background-color .2s ease-in;
-moz-transition:color .2s ease-out, background-color .2s ease-in;
-webkit-transition:color .2s ease-out, background-color .2s ease-in;
transition:color .2s ease-out, background-color .2s ease-in;
}
.btn-sq:hover {
width: 90px !important;
height: 90px !important;
font-size: 14px;
background-color:#C10000;
margin: 5px;
color:#fff;
white-space: normal;
-o-transition:color .2s ease-out, background-color .2s ease-in;
-ms-transition:color .2s ease-out, background-color .2s ease-in;
-moz-transition:color .2s ease-out, background-color .2s ease-in;
-webkit-transition:color .2s ease-out, background-color .2s ease-in;
transition:color .2s ease-out, background-color .2s ease-in;
}
.btn-sq:focus {
width: 90px !important;
height: 90px !important;
font-size: 14px;
background-color:#C10000;
margin: 5px;
color:#fff;
white-space: normal;
-o-transition:color .2s ease-out, background-color .2s ease-in;
-ms-transition:color .2s ease-out, background-color .2s ease-in;
-moz-transition:color .2s ease-out, background-color .2s ease-in;
-webkit-transition:color .2s ease-out, background-color .2s ease-in;
transition:color .2s ease-out, background-color .2s ease-in;
}
<script>
var myPlayer = document.getElementById('my_video_1');
var myFunc = function(){
var whereYouAt = myPlayer.currentTime;
if (whereYouAt > 1 && whereYouAt <= 10){
var linkToFocus = document.getElementById('butt1');
linkToFocus.focus();
setInterval(function(){ linktoFocus.blur(); }, 4000);
}
else if (whereYouAt > 11){
var linkToFocus = document.getElementById('butt1');
linkToFocus.blur();
}
}
myPlayer.addEventListener('timeupdate',myFunc,false);
</script>