我正在开发一个 HTML 网站,其中包含由 JavaScript 脚本控制的嵌入式 YouTube 视频。
我有三个视频,它们在 Chrome 上都运行良好,但在 Safari 和 Firefox 上运行不佳。
最奇怪的是,我以相同的方式嵌入它们,在 Safari 和 Firefox 上,第一个视频工作正常,但当其他两个开始播放时,您只能听到音频。
您可以在这里访问该网站: https://matteo-stable-web-server.herokuapp.com/
在全屏桌面上,如果您点击右下角的箭头,您将看到第一个视频正在播放。 如果再次单击,您将在 Chrome 上看到第二个视频,但在 Safari 和 Firefox 上只能听到音频。
在检查页面时,我注意到由 YouTube API 在 div 元素内生成的 iFrame 元素与维度有一些差异。视频似乎正在播放,但它在其他地方。但这只是我的一种感觉(见下图)。
这是 HTML(class="firstVideo"是我们正在寻找的)
<body >
<nav role="navigation">
<div id="menuToggle">
<input type="checkbox" />
<span></span>
<span></span>
<span></span>
<ul id="menu">
<a href="./index.html"><li>Home</li></a>
<a href="#"><li>Come funziona</li></a>
<a href="./faq.html"><li>FAQ</li></a>
<a href="./blog.html"><li>Blog</li></a>
<a href="#"><li>Contatti</li></a>
<a href="./pdf/RegolamentoFlav.pdf" target="_blank"><li>Regolamento</li></a>
<a href="#"><li>Ringraziamenti</li></a>
</ul>
</ul>
</div>
</nav>
<div id="rotateRect" class="redRect rotateRectStart hideXS"></div>
<div id="nav">
<div id="leftArrow"><img src="img/arrow_right.png" alt="flav website controls"></div>
<div id="rightArrow"><img src="img/arrow_right.png" alt="flav website controls"></div>
</div>
<div class="containerTop">
<div id="backImg">
<div class="landscapeImg"></div>
<div class="firstImg"></div>
</div>
<div id="leftContainer">
<div class="splashLeft">
<img class="logoHome" src="img/logo_flav.svg" alt="flav app"><br>
<h5>Ciò che vuoi, dove vuoi, quando vuoi.</h5>
<h1>Richiedi, Offri…<br>GUADAGNA!</h1>
<h2>CON FLAV ESSERE DISPONIBILI RIPAGA. SEMPRE.</h2>
<a href="#"><img class="badge" src="img/app-store-badge.png" alt="download on the app store"></a>
<a href="#"><img class="badge" src="img/google-play-badge.png" alt="download on the google play store"></a>
<br><br>
<h6>CONTACT & FOLLOW US ON:</h6>
<a href="https://www.facebook.com/app.FLAV.it/"><img class="socialIcon" src="img/facebook.png" alt="flav facebook fanpage"></a>
<a href="https://www.instagram.com/flav.it/"><img class="socialIcon" src="img/instagram.png" alt="flav instagram fanpage"></a>
<a href="https://www.youtube.com/channel/UC5MeGaeI9boibIcUq0X4FXg"><img class="socialIcon" src="img/youtube.png" alt="flav youtube channel"></a>
<a href="mailto:info@flav.it?Subject=Information"><img class="socialIcon" src="img/mail.png" alt="flav mail"></a>
</div>
</div>
<div id="rightContainer">
<img class="iphoneSplash" src="img/iphoneSplash.png" alt="flav, ciò che vuoi quando vuoi dove vuoi">
</div>
<div id="firstLeftPart">
<img class="redLogo hideXS" src="img/logoRed.svg" alt="flav, ciò che vuoi quando vuoi dove vuoi"><br>
<div class="numberSect01">N° <span class="bigNum">01</span></div>
<h2 id="titleNumbFirst" class="titlePart01"><span class="numb hideXS">| 03</span><br>Fai la tua richiesta</h2>
<br>
<span class="subTitle">Chiedi ciò di cui hai bisogno.</span><br>
<p>
Ti serve qualcosa o hai bisogno di una mano?<br>Pubblica la tua richiesta scegliendo tra beni e servizi, seleziona la categoria, stabilisci luogo e ora.<br>Ricevi le risposte di utenti e professionisti direttamente nella App <br>e scegli l’utente che fa per te con l’offerta più conveniente.<br><br>Trovare ciò di cui hai bisogno non è mai stato cosi facile!<br><span class="downloadIt">Scarica FLAV!</span><br>
</p>
</div>
<div id="iphoneFirst">
<img class="whiteIphone" src="img/iphoneFirstPart.png" alt="flav, ciò che vuoi quando vuoi dove vuoi">
<div class="firstVideo" id="videoNumberOne"></div>
<a class="mLeft hideXS" href="#"><img class="badge" src="img/app-store-badge.png" alt="download on the app store"></a>
<a class="hideXS" href="#"><img class="badge" src="img/google-play-badge.png" alt="download on the google play store"></a>
</div>
<div id="secondRightPart">
<img class="redLogo hideXS" src="img/logo_flav.svg" alt="flav, ciò che vuoi quando vuoi dove vuoi"><br>
<div class="numberSect01">N° <span class="bigNum">02</span></div>
<h2 id="titleNumbFirst" class="titlePart01"><span class="numb hideXS">| 03</span><br>FAI IL TUO PREZZO</h2>
<br>
<span class="subTitle">Renditi disponibile.</span><br>
<p>
Vuoi rispondere a una richiesta? <br><br>Consulta le richieste della community.<br>Apri la mappa, scopri di cosa hanno bisogno le persone intorno a te<br>e fai il tuo prezzo.<br><br>Guadagnare non è mai stato cosi semplice!<br><span class="downloadIt">Scarica FLAV!</span><br>
</p>
</div>
<div id="iphoneSecond">
<img class="whiteIphone" src="img/iphoneFirstPart.png" alt="flav, ciò che vuoi quando vuoi dove vuoi">
<div class="firstVideo" id="videoNumberTwo"></div>
<a class="mLeft hideXS" href="#"><img class="badge" src="img/app-store-badge.png" alt="download on the app store"></a>
<a class="hideXS" href="#"><img class="badge" src="img/google-play-badge.png" alt="download on the google play store"></a>
</div>
<div id="thirdLeftPart">
<img class="redLogo hideXS" src="img/logoRed.svg" alt="flav, ciò che vuoi quando vuoi dove vuoi"><br>
<div class="numberSect01">N° <span class="bigNum">03</span></div>
<h2 id="titleNumbFirst" class="titlePart01"><span class="numb hideXS">| 03</span><br>FAI LA TUA OFFERTA</h2>
<br>
<span class="subTitle">Vendi, offri e guadagna.</span><br>
<p>
Vuoi vendere qualcosa? Vuoi incrementare la tua visibilità e i tuoi guadagni? <br><br>Pubblica la tua offerta di beni o servizi,<br> ricevi le risposte degli utenti e concorda ogni dettaglio in chat.<br> In modo facile e gratuito.<br>La chiave del successo è essere ovunque!<br><span class="downloadIt">Scarica FLAV!</span><br>
</p>
</div>
<div id="iphoneThird">
<img class="whiteIphone" src="img/iphoneFirstPart.png" alt="flav, ciò che vuoi quando vuoi dove vuoi">
<div class="firstVideo" id="videoNumberThree"></div>
</video>
<a class="mLeft hideXS" href="#"><img class="badge" src="img/app-store-badge.png" alt="download on the app store"></a>
<a class="hideXS" href="#"><img class="badge" src="img/google-play-badge.png" alt="download on the google play store"></a>
</div>
<div class="hideXL">
<a href="#"><img class="badge" src="img/app-store-badge.png" alt="download on the app store"></a>
<a href="#"><img class="badge" src="img/google-play-badge.png" alt="download on the google play store"></a>
<br><br>
<h6>CONTACT & FOLLOW US ON:</h6>
<a href="https://www.facebook.com/app.FLAV.it/"><img class="socialIcon" src="img/facebook.png" alt="flav facebook fanpage"></a>
<a href="https://www.instagram.com/flav.it/"><img class="socialIcon" src="img/instagram.png" alt="flav instagram fanpage"></a>
<a href="https://www.youtube.com/channel/UC5MeGaeI9boibIcUq0X4FXg"><img class="socialIcon" src="img/youtube.png" alt="flav youtube channel"></a>
<a href="mailto:info@flav.it?Subject=Information"><img class="socialIcon" src="img/mail.png" alt="flav mail"></a>
</div>
</div>
<script src="js/jquery-1.12.0.min.js"></script>
<script src="js/base.js"></script>
</body>
这是 JavaScript
var countSlide = 0;
//YOUTUBE START
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player1;
var player2;
var player3;
function onYouTubeIframeAPIReady() {
player1 = new YT.Player('videoNumberOne', {
videoId: 'Kifn_WVGReM',
events: {
'onReady': onPlayerReady
}
});
player2 = new YT.Player('videoNumberTwo', {
videoId: 'wa7aa5-GxW8',
events: {
'onReady': onPlayerReady
}
});
player3 = new YT.Player('videoNumberThree', {
videoId: 'YCIOKI0ZSTM',
events: {
'onReady': onPlayerReady
}
});
}
function onPlayerReady(event) {
event.target.setVolume(50);
//event.target.pauseVideo();
}
//YOUTUBE END
// $( document ).ready(function() {
// });
function pauseAndReset(video) {
video.pauseVideo();
video.seekTo(0);
}
//SLIDE ROUTINE
$("#rightArrow").click(function(){
if (countSlide < 3) {
countSlide++;
}
if (countSlide == 1){
toBottom();
player1.playVideo();
}
else if (countSlide == 2) {
toTop();
pauseAndReset(player1);
player2.playVideo();
}
else if (countSlide == 3) {
setTimeout(toSndBottom,25);
setTimeout(toTop,50);
setTimeout(toSndBottom,70);
pauseAndReset(player2);
player3.playVideo();
}
else if (countSlide >= 3) {
//Go Back to Homepage
}
});
$("#leftArrow").click(function(){
if (countSlide > 0) {
countSlide--;
}
if (countSlide == 0){
toStart();
pauseAndReset(player1);
}
else if (countSlide == 1) {
toBottom();
pauseAndReset(player2);
player1.playVideo();
}
else if (countSlide == 2) {
toSndTop();
pauseAndReset(player3);
player2.playVideo();
}
});
//SLIDE ROUTINE ENDS
$(".redLogo").click(function(){
toStart();
countSlide = 0;
$("#firstLeftPart").css("marginLeft", "-105%");
$("#iphoneFirst").css("marginLeft", "152%");
$("#secondRightPart").css("marginLeft", "-105%");
$("#iphoneSecond").css("marginLeft", "152%");
$("#thirdLeftPart").css("marginLeft", "-105%");
$("#iphoneThird").css("marginLeft", "152%");
});
function toStart () {
$("#rotateRect").addClass('rotateRectStart');
$("#rotateRect").removeClass('rotateRectBottom');
$("#rotateRect").removeClass('rotateRectTop');
$(".iphoneSplash").css("marginLeft", "0%");
$(".splashLeft").css("marginLeft", "0%");
$(".landscapeImg").fadeIn('fast');
$(".firstImg").fadeOut('slow');
$("#firstLeftPart").css("marginLeft", "-105%");
$("#iphoneFirst").css("marginLeft", "152%");
}
function toTop () {
$("#rotateRect").removeClass('rotateRectStart');
$("#rotateRect").removeClass('rotateRectBottom');
$("#rotateRect").addClass('rotateRectTop');
$("#firstLeftPart").css("marginLeft", "-105%");
$("#iphoneFirst").css("marginLeft", "152%");
$("#secondRightPart").css("marginLeft", "5%");
$("#iphoneSecond").css("marginLeft", "52%");
}
function toBottom () {
$("#rotateRect").removeClass('rotateRectStart');
$("#rotateRect").removeClass('rotateRectTop');
$("#rotateRect").addClass('rotateRectBottom');
$(".iphoneSplash").css("marginLeft", "200%");
$(".splashLeft").css("marginLeft", "-200%");
$(".landscapeImg").fadeOut('fast');
$(".firstImg").fadeIn('slow');
$("#firstLeftPart").css("marginLeft", "5%");
$("#iphoneFirst").css("marginLeft", "52%");
$("#secondRightPart").css("marginLeft", "-105%");
$("#iphoneSecond").css("marginLeft", "152%");
}
function toSndBottom () {
$("#rotateRect").removeClass('rotateRectTop');
$("#rotateRect").addClass('rotateRectBottom');
$("#thirdLeftPart").css("marginLeft", "5%");
$("#iphoneThird").css("marginLeft", "52%");
$("#secondRightPart").css("marginLeft", "-105%");
$("#iphoneSecond").css("marginLeft", "152%");
}
function toSndTop () {
$("#rotateRect").removeClass('rotateRectBottom');
$("#rotateRect").addClass('rotateRectTop');
$("#secondRightPart").css("marginLeft", "5%");
$("#iphoneSecond").css("marginLeft", "52%");
$("#thirdLeftPart").css("marginLeft", "-105%");
$("#iphoneThird").css("marginLeft", "152%");
}
我对这个很迷茫。 提前谢谢大家! 干杯!
最佳答案
这就是问题所在。
Firefox 曾经拥有页面的这种美妙的“3d View ”,因此您可以准确地看到它在哪里 - 不幸的是,他们在几个版本前就去掉了它 - 这只是一个猜测,但我认为这就是你的方式正在使用边距将 div“移开”,这可能会使 firefox/safari 混淆(或者它们的布局算法略有不同)——CSS 的问题是,有些东西可以被不同的浏览器解释不同,而且它们都是认为他们是正确的!!虽然,我认为那只发生在 Netscape vs IE 时代
关于javascript - HTML JavaScript - div 元素在 Chrome 和 Safari/Firefox 之间的工作方式不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39274592/