javascript - 当用户处于非事件状态时,如何隐藏自定义 html5 视频控件?

标签 javascript html

我有一些自定义 html5 视频控件,我想在用户观看视频时隐藏它们。我会等待两秒钟,如果他们没有移动鼠标,我将隐藏控件,然后当他们再次移动鼠标时我将显示控件。

什么是实用且有效的方法来做到这一点?

最佳答案

Use mousemove event with setTimeout

如果鼠标正在移动,则清除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>

Fiddle Demo

<小时/>

使用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>

Fiddle Demo

关于javascript - 当用户处于非事件状态时,如何隐藏自定义 html5 视频控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38155584/

相关文章:

html - 每个单元格 HTML 表格的最小高度

javascript - 如何使用 Javascript 和 HTML 将链接嵌入到表中的值中

javascript - HTML5 Canvas 调整到父级

javascript - React-chart-editor 中 <FontSelector 中的自定义选项

javascript - 使用 Karma/Istanbul 设置目标代码覆盖率

javascript - 数据通过 _.each 函数后出现意外结果

javascript - 使用 jquery 计算 'table' 标签的数量

javascript - 我需要在 webgl 中创建平滑的 alpha 过渡

html - css html 百分比调整图像大小

javascript - 可以将 ChartRangeFilter 添加到气泡图中吗?