我如何隐藏我的自定义html5视频控件时,用户是不活跃的
How can I hide my custom html5 video controls when the user is inactive?
我有一些自定义html5视频控件,我想在用户观看视频时隐藏它们。我将等待两秒钟,如果他们没有移动鼠标,我将隐藏控件,然后当他们再次移动鼠标时,我将显示控件。
有什么切实可行的方法来做到这一点?
将
mousemove
事件与setTimeout
一起使用
mouse
移动清除setTimeout
var elem = document.getElementById('controls');
var timeout;
var duration = 3000;
document.addEventListener('mousemove', function() {
elem.textContent = 'Mouse is moving!'
clearTimeout(timeout);
timeout = setTimeout(function() {
elem.textContent = 'Mouse Has stopped!'
}, duration)
});
<div id="controls">Mouse Has stopped!</div>
<小提琴演示/h2>
使用controls
属性
var video = document.getElementById('videoElem');
var timeout;
var duration = 500;
document.addEventListener('mousemove', function() {
video.setAttribute("controls", "controls");
clearTimeout(timeout);
timeout = setTimeout(function() {
video.removeAttribute("controls");
}, duration)
});
html {
padding: 20px 0;
background-color: #efefef;
}
body {
width: 400px;
padding: 40px;
margin: 0 auto;
background: #fff;
box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5);
}
video {
width: 400px;
display: block;
}
<video preload controls id="videoElem">
<source id="mp4" src="http://grochtdreis.de/fuer-jsfiddle/video/sintel_trailer-480.mp4" type="video/mp4">
</video>
<小提琴演示/h2>
我最终使用了timeupdate事件:
var counts = 0
function hideOnIdle (video) {
if (video.paused === true) return controls.classList.remove('hidden')
if (counts > 7) {
controls.classList.add('hidden')
counts = 0
}
counts += 1
}
document.addEventListener('mousemove', function (event) {
controls.classList.remove('hidden')
counts = 0
}, false)
相关文章:
- 如何在ASP中为用户控件添加Javascript对象网
- 当用户点击音频控件时,无法接收点击事件
- jQuery根据用户选择启用/禁用asp.net控件
- Web用户控件中Javascript的ReferenceError
- 调用按钮单击事件 ajax 加载的用户控件
- 用户控件内的 ASP 列表视图.如何在用户控件完全加载后触发 javascript
- jQuery:从用户控件中捕获点击事件
- 使用JavaScript将日期/时间添加到我的asp.net用户控件中
- 用户控件中的 RegisterStartupScript
- 从自定义用户控件更新contenttemplate下页面中控件的id
- 如何通过客户端获取用户控件属性
- 请帮助我理解 .ascx Web 用户控件中的此脚本
- 如何使用 <%=Control.ClientId%> 访问 javascript 中用户控件中的控件
- 如何在对用户控件执行操作后调用 Web 服务
- Asp.Net 将多个窗体添加到一个窗体时,用户控件无法正常工作
- 使用 AJAX 和 __doPostBack 在数据网格中 Asp.net 用户控件
- 从 aspx 页中的用户控件访问 ID
- Jquery 函数不会在用户控件 asp.net 触发
- 如何从用户控件调用父页面中的 javascript 函数
- 从 JQuery 添加 asp.net 自定义用户控件