HTML5 Video // Ẩn hoàn toàn các điều khiển


84

Làm cách nào để ẩn hoàn toàn các điều khiển video HTML5?

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

false không hoạt động - điều này được thực hiện như thế nào?

Chúc mừng.

Câu trả lời:


185

Như thế này:

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

controlslà một thuộc tính boolean :

Lưu ý: Các giá trị "true" và "false" không được phép trên các thuộc tính boolean. Để thể hiện một giá trị sai, thuộc tính phải được bỏ qua hoàn toàn.


Vì vậy, về mặt kỹ thuật điều này hoạt động; và tôi đoán, là câu trả lời. Tuy nhiên; loại bỏ 'Điều khiển' trong đánh dấu Video HTML5, giết video trên iPad; vì vậy tôi cần một giải pháp khác.
Terry Hall


3
Bạn có thể thử tải thẻ bao gồm thuộc tính control và xóa nó sau khi tải trang bằng một số javascript: var video = document.getElementById ('myvideo'); video.control = false;
user3072843

44
The values "true" and "false" are not allowed on boolean attributes. nói về khó hiểu.
wholeNotLizards

@jammypeach Các thuộc tính này là boolean bởi vì họ có hai trạng thái: họ tồn tại hoặc họ không
robertc

44

Bạn có thể ẩn các điều khiển bằng cách sử dụng CSS Pseudo Selectors như Demo: 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>


Điều này hoạt động tốt cho Chrome nhưng không phải Firefox. Bạn có giải pháp cho nhiều trình duyệt không?
TinyTiger

Cần phải loại bỏ chúng bằng CSS hoặc JavaScript vì tôi hack một cái gì đó với nhau và không thể chỉnh sửa trực tiếp mã thẻ video
TinyTiger

Xin chào Benny cho Mozilla. Bạn cần thêm css có tiền tố của nhà cung cấp cho tất cả chúng như "-moz-media-control-play-button". Cảm ơn
AbidCharlotte49er

1
Đã thử thêm các tiền tố nhưng nó không hoạt động. Dưới đây là một updateed JSfiddle và đây là CSS Tôi sử dụngvideo::-webkit-media-controls, video::-moz-media-controls, video::-o-media-controls, video::-ms-media-controls { display: none !important; }
TinyTiger

Benny, tôi đã kiểm tra trong tài liệu Mozilla thì CSS giả có tiền tố của nhà cung cấp không khả dụng. Bạn có thể xử lý điều này qua JavaScript. Vui lòng xem đoạn mã của tôi. ở trên . Tôi đã chỉnh sửa giải pháp ban đầu của mình. "Đối với Firefox, chúng ta phải xử lý nó trong JavaScript" Cám ơn Chúc may mắn
AbidCharlotte49er

35

Một giải pháp đơn giản là - chỉ cần bỏ qua các tương tác của người dùng :-)

video {
  pointer-events: none;
}

4
Điều này hoạt động ngoại trừ việc các điều khiển được hiển thị khi tải ban đầu.
m4n0

7

Trước hết, hãy xóa thuộc tính "điều khiển" của video.
Đối với iOS, chúng tôi có thể ẩn nút phát bản dựng của video bằng cách thêm bộ chọn giả CSS sau:

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

3

Phương pháp này đã hoạt động trong trường hợp của tôi.

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>

Tôi đồng ý. Giải pháp đơn giản nhất là không bao giờ đặt thuộc tính bắt đầu bằng.
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); 
}

<! - làm từ văn bản hoàn chỉnh <script src = 'phương tiện truyền thông-player.js'> </ script> và đặt trong cùng một thư mục ->
user6884687
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.