J
j-l-n
Guest
Also wird bei dir das Video überhaupt nicht abgespielt? Du solltest es in 2 Versionen einbinden, einmal als *.ogg, und einmal als *.mp4...
Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature currently requires accessing the site using the built-in Safari browser.
<html>
<head>
<title>nach 50 Sekunden Banner einblenden</title>
<meta charset="UTF-8">
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<script>
$(document).ready(function(){
wp_cta_load_variation("159", "", "0");
showOn(50, document.getElementById("Testverkauf"));
});
</script>
<script>
function showOn(position, element){
function checkTime(){
var playTime = element.currentTime;
var min = position - 1;
var max = position + 1;
if(playTime > min && playTime < max){
$("#banner").fadeIn("slow", function(){
console.log("Banner eingeblendet bei " + playTime + " sek.");
});
window.clearInterval(callIntervall);
}
}
var callInterval = window.setInterval(checkTime, 500);
}
</script>
</head>
<body>
<script>
jQuery(document).ready(function () {
var vid = document.getElementById("Testverkauf");
var delay = 5;
function checkTime() {
var playTime = vid.currentTime;
if (playTime > delay) {
jQuery("#banner").fadeIn("slow", function () {
console.log("Banner eingeblendet bei " + playTime + " sek.");
});
window.clearInterval(callInterval);
}
}
var callInterval = window.setInterval(checkTime, 500);
});
</script>
<video class="wp-video-shortcode" id="Testverkauf" autoplay="true" preload="metadata" controls="controls" height="400" width="700">
<source type="video/mp4" src="http://wp.fb-media-store.de/wp-content/uploads/2014/08/test_VSL.mp4">
<a href="http://wp.fb-media-store.de/wp-content/uploads/2014/08/test_VSL.mp4"></a>
</video>
<div id="banner" style="display:none">
<a href="http://www.google.de/" target="blank" title="Zielseite">
<img src="http://wp.fb-media-store.de/wp-content/uploads/2014/08/CTA_1.jpg">
</a>
</div>
<html>
<head>
<title>nach 50 Sekunden Banner einblenden</title>
<meta charset="UTF-8">
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<script>
jQuery(document).ready(function () {
var vid = document.getElementById("Testverkauf");
var delay = 5;
function checkTime() {
var playTime = vid.currentTime;
if (playTime > delay) {
jQuery("#banner").fadeIn("slow", function () {
console.log("Banner eingeblendet bei " + playTime + " sek.");
});
window.clearInterval(callInterval);
}
}
var callInterval = window.setInterval(checkTime, 50000);
});
</script>
</head>
<body>
<video class="wp-video-shortcode" id="Testverkauf" width="700" height="400" preload="metadata" controls="controls">
<source type="video/mp4" src="http://wp.fb-media-store.de/wp-content/uploads/2014/08/test_VSL.mp4"/>
<a href="http://wp.fb-media-store.de/wp-content/uploads/2014/08/test_VSL.mp4"></a>
</video>
<div id="banner" style="display:none">
<a href="http://www.google.de" target="blank" title="Zielseite">
<img src="http://wp.fb-media-store.de/wp-content/uploads/2014/08/CTA_1.jpg">
</a>
</div>
</body>
</html>
Das wundert mich, denn ich hatte es getestet und da hat es funktioniert, auch mit Pause.der Button wird nach 50Sek. eingeblendet und zwar immer. D.h. wenn ich Pause drücke, 10 Sek. warte und dann wieder Play drücke, errscheint der Button bei 40 Sek. obwohl dieser eben erst bei 50 Sek. des Videos gezeigt werden soll...
var callInterval = window.setInterval(checkTime, 50000);
Die Zeit hier ist nicht die Verzögerungszeit für den Button, sondern die Zykluszeit, in der die Funktion checkTime() aufgerufen wird. Diese solltest Du bei 500ms lassen: var callInterval = window.setInterval(checkTime, 500);
Die Zeit, nach der der Button erscheint, wird hiermit eingestellt: var delay = 5;
Diese hatte ich verkleinert, um beim Testen nicht so lange warten zu müssen; Du musst sie dann auf den richtigen Wert 50 setzen.var playTime = vid.currentTime;
Anschließend prüft sie, ob die Zeit für das Einblenden des Buttons schon erreicht ist: if (playTime > delay)
und macht diesen sichtbar, wenn es der Fall ist. vid.currentTime;
berücksichtigt selbstverständlich die Pausetaste, d. h. wenn man diese drückt und das Video anhält, bleibt dieser Wert auch stehen.Gern geschehen - schön, dass es jetzt trotz einiger Verwirrungen endlich funktioniert.Ich danke dir und euch tausendfach!
DANKE
if (playTime > delay) {
wird das Banner auch eingeblendet, wenn man beispielsweise zu 1:00min springt.Ist das in deinem Sinne oder soll es nur explizit zum Zeitpunkt 0:50 eingeblendet werden?
if (playTime > delay) {
Genau. Ich kann dir jetzt auch nicht sagen, was davon sinnvoller ist, nur was du dazu ändern müsstest; und zwar wie in meinem Beispiel am Anfang:Mit explizit ist gemeint, dass der Button genau bei 50 Sek. errscheint, auch wenn der Nutzer schon zu 1Min. "vorrückt"?
//if (playTime > delay) { ersetzen durch:
var min = delay - 0.5;
var max = delay + 0.5;
if(playTime > min && playTime < max){
if(playTime === delay){
nicht funktioniert, da die Funktion alle 500ms und damit höchstwahrscheinlich nicht genau zu dem festgelegten Zeitpunkt aufgerufen wird, wird hier ein Toleranzbereich von 1s festgelegt und geprüft, ob sich die aktuelle Spielzeit des Videos exakt in diesem befindet.Ja, der Meinung bin ich auch. Und da ich mir gerade mein eigenes kleines "Framework" baue, fällt mir immer wieder auf, dass man gerade für den IE 8 oft Extralösungen braucht. Meistens gibt es die betreffenden Funktionen nämlich erst ab dem IE 9. Zu schade, dass es den aber nicht mehr für XP gab. Und das ist auch der einzige Grund, warum ich den IE 8 noch unterstütze...IE8 würde ich noch nicht hinten runter fallen lassen.