33 lines
938 B
JavaScript
33 lines
938 B
JavaScript
|
function hasAudio (video) {
|
||
|
return video.mozHasAudio ||
|
||
|
Boolean(video.webkitAudioDecodedByteCount) ||
|
||
|
Boolean(video.audioTracks && video.audioTracks.length);
|
||
|
}
|
||
|
|
||
|
function setVideoInGIFMode(video) {
|
||
|
if (!hasAudio(video)) {
|
||
|
if (typeof video.loop == 'boolean' && video.duration < 3.0) {
|
||
|
video.classList.add("video-gif-mode");
|
||
|
video.loop = true;
|
||
|
video.controls = false;
|
||
|
video.addEventListener("mouseover", () => {
|
||
|
video.play();
|
||
|
})
|
||
|
video.addEventListener("mouseleave", () => {
|
||
|
video.pause();
|
||
|
})
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
|
||
|
var items = document.getElementsByTagName("video")
|
||
|
for (var i = 0; i < items.length; i++) {
|
||
|
if (items[i].duration) {
|
||
|
setVideoInGIFMode(items[i]);
|
||
|
} else {
|
||
|
items[i].addEventListener("loadeddata", function() {
|
||
|
setVideoInGIFMode(this);
|
||
|
});
|
||
|
}
|
||
|
}
|