【问题标题】:Loader in HTML5 video not working in SafariHTML5 视频中的加载程序在 Safari 中不起作用
【发布时间】:2017-02-20 10:13:46
【问题描述】:

我正在尝试在使用jquery 加载视频时添加preloader。问题是它在除Safari 之外的所有浏览器中都有效。

JSFIDDLE

这里是代码。

 $('#video_id').on('loadstart', function(event) {
   $(this).addClass('loading');
 });
 $('#video_id').on('canplay', function(event) {
   $(this).removeClass('loading');
   $(this).attr('poster', '');
 });
video.loading {
  background: black url(http://www.drivethrurpg.com/shared_images/ajax-loader.gif) center center no-repeat;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<video controls="" poster="http://www.drivethrurpg.com/shared_images/ajax-loader.gif">
  <source src="https://www.w3schools.com/html/movie.mp4" type="video/mp4">

</video>

【问题讨论】:

    标签: jquery html css safari


    【解决方案1】:

    首先,video-元素没有#video_id-id。其次,您正在使用带有加载程序的海报,这意味着如果占位符显示在其上方,则不会看到背景图像。我在 safari 中看到加载海报。

    我用视频上的正确 id 更新了代码。

     $('#video_id').on('loadstart', function(event) {
       $(this).addClass('loading');
     });
     $('#video_id').on('canplay', function(event) {
       $(this).removeClass('loading');
       $(this).attr('poster', '');
     });
    video.loading {
      background: black url(http://www.drivethrurpg.com/shared_images/ajax-loader.gif) center center no-repeat;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <video id="video_id" controls="" poster="http://www.drivethrurpg.com/shared_images/ajax-loader.gif">
      <source src="https://www.w3schools.com/html/movie.mp4" type="video/mp4">
    
    </video>

    【讨论】:

    • 感谢您的回复并纠正我的错误,但代码仍然无法在 Safari 中运行
    • 什么不起作用?海报和背景图片都适合我。我正在使用Safari 10.0.3。你说的是 iOS 还是 macOS 上的 Safari?
    • Safari 5.1.7 in IOS。
    • 这可能是问题所在:stackoverflow.com/questions/10235919/…您的视频元素在您注册事件处理程序之前已经触发了canplay事件
    猜你喜欢
    • 2016-02-23
    • 2015-10-19
    • 2015-02-20
    • 2016-01-22
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    相关资源
    最近更新 更多