2016-01-06 66 views
1

得到這個腳本,它工作正常,問題是,它show's播放列表中的視頻,我已經試過visibility:hidden的;並顯示:無;它不工作,任何人都知道如何隱藏這個?廣東話隱藏播放列表的HTML視頻

var video_player = document.getElementById("video_player"); 
 
video = video_player.getElementsByTagName("video")[0], 
 
    video_links = video_player.getElementsByTagName("figcaption")[0], 
 
    source = video.getElementsByTagName("source"), 
 
    link_list = [], 
 
    vidDir = "http://demosthenes.info/assets/videos/", 
 
    currentVid = 0, 
 
    allLnks = video_links.children, 
 
    lnkNum = allLnks.length; 
 
video.removeAttribute("controls"); 
 
video.removeAttribute("poster"); 
 

 
(function() { 
 
    function playVid(index) { 
 
    video_links.children[index].classList.add("currentvid"); 
 
    source[1].src = vidDir + link_list[index] + ".webm"; 
 
    source[0].src = vidDir + link_list[index] + ".mp4"; 
 
    currentVid = index; 
 
    video.load(); 
 
    video.play(); 
 
    } 
 

 
    for (var i = 0; i < lnkNum; i++) { 
 
    var filename = allLnks[i].href; 
 
    link_list[i] = filename.match(/([^\/]+)(?=\.\w+$)/)[0]; 
 
    (function(index) { 
 
     allLnks[i].onclick = function(i) { 
 
     i.preventDefault(); 
 
     for (var i = 0; i < lnkNum; i++) { 
 
      allLnks[i].classList.remove("currentvid"); 
 
     } 
 
     playVid(index); 
 
     } 
 
    })(i); 
 
    } 
 
    video.addEventListener('ended', function() { 
 
    allLnks[currentVid].classList.remove("currentvid"); 
 
    if ((currentVid + 1) >= lnkNum) { 
 
     nextVid = 0 
 
    } else { 
 
     nextVid = currentVid + 1 
 
    } 
 
    playVid(nextVid); 
 
    }) 
 

 
    video.addEventListener('mouseenter', function() { 
 
    video.setAttribute("controls", "true"); 
 
    }) 
 

 
    video.addEventListener('mouseleave', function() { 
 
    video.removeAttribute("controls"); 
 
    }) 
 

 
    var indexOf = function(needle) { 
 
    if (typeof Array.prototype.indexOf === 'function') { 
 
     indexOf = Array.prototype.indexOf; 
 
    } else { 
 
     indexOf = function(needle) { 
 
     var i = -1, 
 
      index = -1; 
 
     for (i = 0; i < this.length; i++) { 
 
      if (this[i] === needle) { 
 
      index = i; 
 
      break; 
 
      } 
 
     } 
 
     return index; 
 
     }; 
 
    } 
 
    return indexOf.call(this, needle); 
 
    }; 
 
    var focusedLink = document.activeElement; 
 
    index = indexOf.call(allLnks, focusedLink); 
 

 
    document.addEventListener('keydown', function(e) { 
 
    if (index) { 
 
     var focusedElement = document.activeElement; 
 
     if (e.keyCode == 40 || e.keyCode == 39) { // down or right cursor 
 
     var nextNode = focusedElement.nextElementSibling; 
 
     if (nextNode) { 
 
      nextNode.focus(); 
 
     } else { 
 
      video_links.firstElementChild.focus(); 
 
     } 
 
     } 
 
     if (e.keyCode == 38 || e.keyCode == 37) { // up or left cursor 
 
     var previousNode = focusedElement.previousElementSibling; 
 
     if (previousNode) { 
 
      previousNode.focus(); 
 
     } else { 
 
      video_links.lastElementChild.focus(); 
 
     } 
 
     } 
 
    } 
 
    }); 
 

 
})();
#video_player { 
 
    display: table; 
 
    line-height: 0; 
 
    max-width: 100%; 
 
    margin: 0 auto; 
 
} 
 
#video_container { 
 
    position: relative; 
 
} 
 
#video_player div, 
 
#video_player figcaption { 
 
    display: table-cell; 
 
    vertical-align: top; 
 
} 
 
#video_container video { 
 
    position: absolute; 
 
    display: block; 
 
    width: 100%; 
 
    height: 100%; 
 
    top: 0; 
 
} 
 
#video_player figcaption { 
 
    width: 25%; 
 
} 
 
#video_player figcaption a { 
 
    display: block; 
 
} 
 
#video_player figcaption a { 
 
    opacity: .3; 
 
    transition: 1s opacity; 
 
} 
 
#video_player figcaption a img, 
 
figure video { 
 
    width: 100%; 
 
    height: 100%; 
 
} 
 
#video_player figcaption a.currentvid, 
 
#video_player figcaption a:hover, 
 
#video_player figcaption a:focus { 
 
    opacity: 1; 
 
}
<figure id="video_player"> 
 
    <div id="video_container"> 
 
    <video controls poster="vid-glacier.jpg" autostart> 
 
     <source src="http://thenewcode.com/assets/videos/glacier.webm" type="video/webm" autostart> 
 
     <source src="http://thenewcode.com/assets/videos/glacier.mp4" type="video/mp4" autostart> 
 
    </video> 
 
    </div> 
 
    <figcaption> 
 
    <a href="http://thenewcode.com/assets/videos/lake.mp4" class="currentvid"> 
 
     <img src="http://demosthenes.info/assets/images/vid-glacier.jpg" alt="Athabasca Glacier"> 
 
    </a> 
 
    <a href="http://thenewcode.com/assets/videos/mountain.mp4"> 
 
     <img src="http://demosthenes.info/assets/images/vid-glacier.jpg" alt="Athabasca Glacier"> 
 
    </a> 
 
    <a href="http://thenewcode.com/assets/videos/glacier.mp4"> 
 
     <img src="http://demosthenes.info/assets/images/vid-glacier.jpg" alt="Athabasca Glacier"> 
 
    </a> 
 
    </figcaption> 
 
</figure>

在此先感謝

+0

嘗試使用參數'!important'。 –

+0

多數民衆贊成的事,展位的知名度和展示工作,但知名度留下的空白,並顯示隱藏的一切 – razstec

+0

只使用一個,如果你使用的知名度和要刪除的空白高度更改爲0。 –

回答

1

好的,這個CSS應該適合你。我已經標記了所有重要的項目。但在我們做到這一點之前,讓我們看看有什麼不對。這是你有什麼:

#video_container video {position: absolute; top: 0;} 
#video_player figcaption {width: 25%;} 

position,其top,代碼重寫了所有形式的隱藏播放列表。即使#video_player figcaption設置爲display: none;visibility: hidden;這對隱藏,因爲width: 25%;播放列表中沒有任何影響。寬度覆蓋了display/visibility,我們都知道display: none;應該覆蓋所有內容。但寬度仍然可見,因爲position: absolute;#video_container video說:「我不在乎什麼都說,你留下來」。這些東西已經修復。下面使用正確的CSS。

#video_player {display: table; 
       margin: auto; 
       background: #000000; 
       width: 500px; /*The space you want occupied.*/ 
} 

#video_container {position: relative;} 

#video_player div, #video_player figcaption {display: table-cell; vertical-align: top;} 

#video_container video {display: block; 
         width: 100%; /*How big you want the video to be.*/ 
         height: ---; /*Whatever you want*/ 
         /*width: 350px;*/ /*Use with visible playlist.*/ 
         /*height: 100%;*/ /*Use with visible playlist.*/ 
} 

#video_player figcaption {display: none; /*Hides the playlist from view.*/ 
} 

#video_player figcaption a {display: block; opacity: .3; transition: 1s opacity;} 
#video_player figcaption a img {width: 100%;} 
#video_player figcaption a.currentvid, #video_player figcaption a:hover, #video_player figcaption a:focus {opacity: 1;} 
+0

完美,謝謝。 :) – razstec

+0

你非常歡迎。 –

0

新話題:要隱藏當前的視頻,看看#video_player figcaption a.currentvid ... a:focus。更改opacity: 1;opacity: 0;,加visibility: hidden;(這將隱藏區域,但不刪除它佔據的空間),或添加display: none;(這是最好的解決方案)。如果您想讓播放列表出現在多個頁面上,請確保每次都將class="currentvid"置於正確的<a>之內。


舊帖子:你需要添加display: none;display: none !important;#video_container。問題是你可能會。要讓display: none;正常工作,請將#video_container移動到#video_container video以下。如果你希望一切都保持在原來的位置,那麼使用display:none!important;`這將覆蓋其他所有內容並隱藏你的視頻。

#video_container { 
    position: relative; 
    display: none !important; 
} 
+0

但我不想隱藏視頻我想隱藏播放列表,figcaption部分沒有隱藏視頻 – razstec

+0

哦,對不起。閱讀錯誤的問題。我用一些正確的解決方案更新了上面的帖子。 –

+0

但如果我添加顯示:無;視頻disapear,播放列表部分不會在任何頁面中看到,只是指定腳本視頻播放循環沒有更多。我只需要在figcaption中的列表中顯示video_container。 – razstec