layer彈出層中H5播放器全屏出錯解決 & 屬性poster底圖占滿video的方法

来源:http://www.cnblogs.com/imwtr/archive/2017/02/20/6421980.html
-Advertisement-
Play Games

1. 在layer彈窗組件中 如果使用了flash播放器,全屏是正常的 但若使用了HTML5的播放器,全屏失效 舉個慄子 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 <script ...


1.

在layer彈窗組件中

如果使用了flash播放器,全屏是正常的

但若使用了HTML5的播放器,全屏失效

 

舉個慄子

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4   <meta charset="utf-8">
 5   <title></title>
 6   <script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
 7   <script src="layer/layer.js"></script>
 8 
 9   <style>
10 
11   </style>
12 </head>
13 <body>
14 <h1>我是字</h1>
15 <div id="box">
16 <video id="video" controls preload="auto" width="400px" height="300px">
17   <source src="http://movie.ks.js.cn/flv/other/1_0.mp4" type="video/mp4">
18 </video>
19 </div>
20 
21 <script>
22 
23   layer.open({
24     type: 1,
25     title: false,
26     shadeClose: true,
27     area: ['400px', '350px'],
28     content: $('#box'),
29     success: function(layero){
30     }
31   });
32 
33 </script>
34 </body>
35 </html>
View Code

可以看到全屏不正常了

通過調試發現是這個class的處理影響了全屏的展示

 

所以,目前的解決辦法是在layer層創建之後,移除這個class即可(註意在success回調中置於下一輪事件迴圈)

layer.open({
    type: 1,
    title: false,
    shadeClose: true,
    area: ['400px', '350px'],
    content: $('#box'),
    success: function(layero){
      console.log(layero)

      // hack處理layer層中video播放器全屏樣式錯亂問題
      setTimeout(function() {
        // $(layero).removeClass('layer-anim');
      }, 0);
    }
  });

 

2.

video標簽的poster屬性指代視頻未播放前放置的一張圖片

如果video容器寬高小於等於poster圖的寬高,則圖片能充滿容器,反之容器左右就會預留黑色欄

除了手動更換一張大圖之外,可以結合CSS來控制,實現鋪滿

舉個慄子

<div id="box">
    <video id="video" controls preload="auto" width="700" height="300" poster="../poster.png" >
      <source src="http://movie.ks.js.cn/flv/other/1_0.mp4" type="video/mp4">
    </video>
</div>

現在圖片寬度比容器小,沒鋪滿,參考這裡的討論 可以用CSS讓其撐開(這裡相當於放大了,不想放大需自行更換大圖)

poster里放一個透明圖片(這裡使用了一個1px*1px的base64格式透明圖片),再用css定義video的background並將其覆蓋住

<div id="box">
    <video id="video" controls preload="auto" width="700" height="300" poster="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==" >
      <source src="http://movie.ks.js.cn/flv/other/1_0.mp4" type="video/mp4">
    </video>
</div>
video {
        background: transparent url('../poster.png') no-repeat 0 0; 
        -webkit-background-size: cover; 
           -moz-background-size: cover; 
             -o-background-size: cover; 
                background-size: cover; 
    }


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • IoC,控制反轉,是spring的核心,通俗點講就是我們不必再自己去用new創建對象了,通過l配置將類註入到IoC容器中,在啟動時,IoC容器去幫我們創建對象,並管理其依賴關係,這種實現方式叫做DI,依賴註入。為什麼我們要用IoC去幫我們管理對象呢,因為通常一個業務邏輯都是由多個對象合作完成工作的, ...
  • 白駒過隙,寒假已經餘額不足,回頭想想,也就是看了兩本書,做了幾個並不大的工程,看著QQ群裡面一些大神們聊天,時不時有的沒的還插幾句,一句話沒人理也是正常事情。有時候還幫同是菜鳥的網友解決問題,好不尷尬!在大神們的隻言片語中,也汲取出來一點對行業的認識,數電、模電和信號處理這幾門課沒有系統的學習沒有學 ...
  • 1.要求 1)輸入用戶名密碼 2)認證成功後顯示歡迎信息 3)輸錯三次後鎖定2.需求分析 1)用戶信息存儲在文件中(login/config/user_login.txt) 2)用戶輸入用戶名和密碼 3)判斷用戶名是否存在,存在則繼續,不存在則提示繼續輸入 4)判斷輸入的用戶名是否已經被鎖定,如果已... ...
  • 最近在做一個swing小項目,其中需要把存儲在硬碟中的圖片文件顯示出來,總結瞭如下方法: 1. Graphics g = getGraphics();String name = "E:/CapabilityModel/out.gif";Image img = Toolkit.getDefaultTo ...
  • 在上一篇日誌中將hibernate的會話工廠sessionFactory註入到了spring的容器中,但這樣還不夠,因為hibernate的增刪改查是要使用事務機制的, 所以還要在spring中配置事務管理,將hibernate管理事物的權利交給spring,這樣,在代碼中就無需手動管理事務了。 1 ...
  • 本文為學習筆記,學習課程為慕課網Java入門第三季中的集合框架部分,若需要研究文中的代碼,可前往下載。http://www.imooc.com/learn/110 1. List(Collection子介面) 1.1 實例化 List list = new ArrayList();  &e ...
  • 如何讓背景圖片拉伸填充,這個問題聽起來似乎很簡單。但是很遺憾的告訴大家。不是我們想的那麼簡單。 比如一個容器(body,div,span)中設定一個背景。這個背景的長寬值在css2.1之前是不能被修改的。 所以實際的結果是只能重覆顯示,所以出現了repeat,repeat-x,repeat-y,no ...
  • 【常用麵包屑】9種不同的麵包屑和分散式多步驟導航 實例代碼 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...