2017-05-27 49 views
0

我試圖在div變得可見時刷新html頁面...不確定我出錯的位置。 divslide.js在設定的時間將顯示樣式從none切換到inline。我希望帶有最終id的div來刷新頁面,以便通過每個div循環。更改可視性更改後的位置

下面是HTML ...

<div id="video" class="mySlides"><video autoplay><source src="icx.mp4" 
type="video/mp4"></video></div> 
<div id="widescreen" class="mySlides"> 
<!--<div id="written"><video autoplay><source src="written.mp4" 
type="video/mp4"></video></div> 
<div id="tbd"><video autoplay><source src="tbd.mp4" type="video/mp4"> 
</video></div> 
<div id="tbd"><video autoplay><source src="tbd.mp4" type="video/mp4"> 
</video></div> 
<div id="tbd"><video autoplay><source src="tbd.mp4" type="video/mp4"> 
</video></div> 
<div id="tbd"><video autoplay><source src="tbd.mp4" type="video/mp4"> 
</video></div> 
<div id="tbd"><video autoplay><source src="tbd.mp4" type="video/mp4"> 
</video></div> 
<div id="tbd"><video autoplay><source src="tbd.mp4" type="video/mp4"> 
</video></div> 
<div id="tbd"><video autoplay><source src="tbd.mp4" type="video/mp4"> 
</video></div> 
<div id="tbd"><video autoplay><source src="tbd.mp4" type="video/mp4"> 
</video></div> 
<div id="tbd"><video autoplay><source src="tbd.mp4" type="video/mp4"> 
</video></div> 
<div id="tbd"><video autoplay><source src="tbd.mp4" type="video/mp4"> 
</video></div> 
<div id="tbd"><video autoplay><source src="tbd.mp4" type="video/mp4"> 
</video></div>--> 
</div> 

<div id="final" class="mySlides"></div> 

我有聯繫的jQuery 3.1.1,我試圖用...

if($('#final').is(':visible')) 
{ 
location.reload(); 
} 

似乎很簡單,但它不工作。

+0

爲什麼刷新頁面,發佈您的JS的循環請刷新頁面是堅果,只需重新啓動循環。 –

回答

0

重新開始幻燈片的方式是......好吧......堅果。

沒有你的js的那個部分這裏基本上是你想要做的。

HTML

​​

CSS

div { 
    height: 100px; 
    width: 300px; 
    display: none; 
} 
#div1 { 
    background-color: red; 
    display: block; 
} 
#div2 { 
    background-color: blue; 
} 
#div3 { 
    background-color: orange; 
} 
#div4 { 
    background-color: green; 
} 

jQuery的

// Create an array of the video divs. 
var videos = [ 
    "div1", 
    "div2", 
    "div3", 
    "div4" 
] 
var videos = [ 
    ["div1", 4000], 
    ["div2", 6000], 
    ["div3", 11000], 
    ["div4", 5900], 
] 

// Initate a counter at 1 because you're going to show the first video by default. 
var counter = 1; 
setInterval(function(){ 
    // Hide all the video divs 
    $(".video").hide(); 
    // Show the video div based on the counter 
    $("#" + videos[counter][0]).show(); 
    // Reset the video to the beginning 
    $("#video" + [counter]).load(); 
    // Play the video 
    $("#video" + [counter]).play(); 

    //Increment the counter if there are still more divs to show, otherwise reset it to 0 
    counter == videos.length-1 ? counter = 0 : counter++; 
}, videos[counter][1]); 

的jsfiddle顯示它在行動:https://jsfiddle.net/nky4n2cx/

+0

謝謝你......這絕對是一種更好的方法。但是,如何讓它顯示整個視頻而不是使用3000?此外,我試圖讓視頻重新開始而不是循環。這就是我試圖刷新頁面的原因。我不希望視頻在可見時播放,我希望它們從一開始就運行。 – KevMoe

+0

我在我的答案中編輯了代碼,以顯示如何製作區間變量,您只需要知道每個視頻的毫秒數,然後將其添加到數組中。我還添加了如何使用基本HTML5視頻元素在幻燈片更改時從頭開始播放視頻。應該工作,我不知道任何免費的視頻流服務來測試它。 –

+0

再次感謝...陣列正在工作,因爲它正在循環每個基於設定的時間。但是現在,當我嘗試加載視頻時,它不會識別索引。 – KevMoe