HTML5ビデオ//コントロールを完全に非表示


84

HTML5ビデオコントロールを完全に非表示にするにはどうすればよいですか?

<video width="300" height="200" controls="false" autoplay="autoplay">
<source src="video/supercoolvideo.mp4" type="video/mp4" />
</video> 

falseは機能しませんでした-これはどのように行われますか?

乾杯。

回答:


185

このような:

<video width="300" height="200" autoplay="autoplay">
  <source src="video/supercoolvideo.mp4" type="video/mp4" />
</video>

controlsあるブール属性

注:値「true」および「false」は、ブール属性では許可されていません。誤った値を表すには、属性を完全に省略する必要があります。


したがって、技術的にはこれは機能します。そして、私は推測します、答えです。しかし; HTML5ビデオマークアップ内の「コントロール」を削除すると、iPad上のビデオが強制終了されます。そのため、別の解決策が必要です。
テリーホール


3
コントロール属性を含むタグをロードし、JavaScriptを使用してページロード後に削除することができます。varvideo= document.getElementById( 'myvideo'); video.control = false;
user3072843 2015年

44
The values "true" and "false" are not allowed on boolean attributes。紛らわしいことについて話します。
totalnotLizards 2015年

@jammypeach属性には、存在するか存在しないかの2つの状態があるため、ブール値になります
robertc 2015年

44

デモのようなCSS疑似セレクターを使用してコントロールを非表示にすることができますhttps//jsfiddle.net/g1rsasa3

//For Firefox we have to handle it in JavaScript 
var vids = $("video"); 
$.each(vids, function(){
       this.controls = false; 
}); 
//Loop though all Video tags and set Controls as false

$("video").click(function() {
  //console.log(this); 
  if (this.paused) {
    this.play();
  } else {
    this.pause();
  }
});
video::-webkit-media-controls {
  display: none;
}

/* Could Use thise as well for Individual Controls */
video::-webkit-media-controls-play-button {}

video::-webkit-media-controls-volume-slider {}

video::-webkit-media-controls-mute-button {}

video::-webkit-media-controls-timeline {}

video::-webkit-media-controls-current-time-display {}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
<!-- Hiding HTML5 Video Controls using CSS Pseudo selectors -->

<video width="800" autoplay controls="false">
  <source src="http://clips.vorwaerts-gmbh.de/VfE_html5.mp4" type="video/mp4">
</video>


これはChromeには適していますが、Firefoxには適していません。クロスブラウザソリューションはありますか?
TinyTiger 2017年

私は何かを一緒にハッキングしていて、ビデオタグコードを直接編集できないため、CSSまたはJavaScriptでそれらを削除する必要があります
TinyTiger 2017年

MozillaのBennyさん。「-moz-media-controls-play-button」のように、それらすべてにベンダープレフィックス付きのcssを追加する必要があります。ありがとう
AbidCharlotte49er 2017年

1
プレフィックスを追加しようとしましたが、機能しませんでした。これが更新されたJSfiddleで、これが私が使用したCSSですvideo::-webkit-media-controls, video::-moz-media-controls, video::-o-media-controls, video::-ms-media-controls { display: none !important; }
TinyTiger 2017年

ベニー、私はMozillaドキュメントをチェックインしました。これらのベンダープレフィックス付きの疑似CSSは利用できません。これはJavaScriptで処理できます。私のコードスニペットをご覧ください。上記。元のソリューションを編集しました。「Firefoxの場合、JavaScriptで処理する必要があります」幸運を祈ります
AbidCharlotte49er 2017年

35

簡単な解決策は–ユーザーの操作を無視するだけです:-)

video {
  pointer-events: none;
}

4
これは、コントロールが初期ロード時に表示されることを除いて機能します。
m4n0

7

まず、動画の「コントロール」属性を削除します。
iOSの場合、次のCSS疑似セレクターを追加することで、ビデオの組み込みの再生ボタンを非表示にできます。

video::-webkit-media-controls-start-playback-button {
    display: none;
}

3

私の場合、この方法はうまくいきました。

video=getElementsByTagName('video');
function removeControls(video){
  video.removeAttribute('controls');
}
window.onload=removeControls(video);

1
<video width="320" height="240" autoplay="autoplay">
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
  Your browser does not support the video tag.
</video>

同意する。最も簡単な解決策は、最初から属性を配置しないことです。
PRMan

0
document.addEventListener("DOMContentLoaded", function() { initialiseMediaPlayer(); }, false);


function initialiseMediaPlayer() {

    mediaPlayer = document.getElementById('media-video');

    mediaPlayer.controls = false;

    mediaPlayer.addEventListener('volumechange', function(e) { 
        // Update the button to be mute/unmute
        if (mediaPlayer.muted) changeButtonType(muteBtn, 'unmute');
        else changeButtonType(muteBtn, 'mute');
    }, false);  
    mediaPlayer.addEventListener('ended', function() { this.pause(); }, false); 
}

<!-完全なテキスト<script src = 'media-player.js'> </ script>から作成し、同じディレクトリに配置します->
user6884687 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.