2017-09-03 6 views
1

Je travaille sur une fonction jQuery qui permutera des vidéos cliquées avec une div de texte spécifique à la vidéo sur laquelle vous avez cliqué. Pour obtenir l'effet swap, je veux appliquer une classe css avec un -10 z-index au div vidéo cliqué. ToggleClass fonctionne une fois et ne reviendra pas (c'est-à-dire, replacez la vidéo div devant le texte).jQuery toggleClass pour la réorganisation de z-index ne fonctionne qu'une seule fois

HTML

<!DOCTYPE html> 
    <html> 
    <head> 
    <link rel="stylesheet" type="text/css" href="style.css"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
    </head> 
    <body> 
    <div class = "container"> 
     <div id="box1" class = "box"> 
       <div id="text1" class="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ut suscipit magna, ac imperdiet diam. Pellentesque quis tellus et nisi luctus efficitur vitae in quam. In maximus aliquam dui sed vulputate. Duis sed urna in ipsum efficitur ultricies at sit amet ligula. Curabitur feugiat placerat velit a mollis. Phasellus ac mollis metus. Pellentesque condimentum urna eu ex vulputate semper. Fusce pulvinar, dui id convallis aliquam, elit lectus convallis tellus, sit amet semper lectus nisl vehicula enim. Curabitur est augue, pharetra non orci vitae, rutrum fermentum nunc. Curabitur a tempor elit, et fermentum erat. Etiam iaculis nulla vitae nisl pretium venenatis. Maecenas convallis placerat vestibulum. Duis vel interdum quam. Nunc ultricies elit ut dolor bibendum commodo. Nam mollis diam tellus, non imperdiet purus facilisis in.Aliquam vitae malesuada lacus, a eleifend justo. Mauris in condimentum nisi, vel pulvinar magna. Suspendisse nibh augue, scelerisque in suscipit id, interdum sed arcu. Cras semper varius ante. Integer mollis, tellus quis interdum porttitor, ipsum dui venenatis elit, ut luctus magna est eu ex. Praesent pretium purus nisi. Duis pharetra aliquet diam, sed tincidunt enim. Mauris nunc sapien, mattis sed tincidunt sed, bibendum id eros. Pellentesque velit arcu, viverra id ipsum vel, venenatis hendrerit purus. Ut auctor quis ligula non laoreet. Proin id porta sapien. Nunc et felis id augue ultricies sollicitudin eget pellentesque justo. Etiam magna neque, tincidunt a quam in, varius suscipit quam. Cras tincidunt feugiat ex sit amet interdum. Aliquam sagittis turpis eu pulvinar convallis. Donec imperdiet euismod nisl et faucibus.</div> 
       <div id="video1" class="video"> <video loop muted><source src=assets/IMG_1353.MOV></video></div> 
     </div> 
    <div id = "box2" class="box"> 
       <div id="text2" class="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ut suscipit magna, ac imperdiet diam. Pellentesque quis tellus et nisi luctus efficitur vitae in quam. In maximus aliquam dui sed vulputate. Duis sed urna in ipsum efficitur ultricies at sit amet ligula. Curabitur feugiat placerat velit a mollis. Phasellus ac mollis metus. Pellentesque condimentum urna eu ex vulputate semper. Fusce pulvinar, dui id convallis aliquam, elit lectus convallis tellus, sit amet semper lectus nisl vehicula enim. Curabitur est augue, pharetra non orci vitae, rutrum fermentum nunc. Curabitur a tempor elit, et fermentum erat. Etiam iaculis nulla vitae nisl pretium venenatis. Maecenas convallis placerat vestibulum. Duis vel interdum quam. Nunc ultricies elit ut dolor bibendum commodo. Nam mollis diam tellus, non imperdiet purus facilisis in.Aliquam vitae malesuada lacus, a eleifend justo. Mauris in condimentum nisi, vel pulvinar magna. Suspendisse nibh augue, scelerisque in suscipit id, interdum sed arcu. Cras semper varius ante. Integer mollis, tellus quis interdum porttitor, ipsum dui venenatis elit, ut luctus magna est eu ex. Praesent pretium purus nisi. Duis pharetra aliquet diam, sed tincidunt enim. Mauris nunc sapien, mattis sed tincidunt sed, bibendum id eros. Pellentesque velit arcu, viverra id ipsum vel, venenatis hendrerit purus. Ut auctor quis ligula non laoreet. Proin id porta sapien. Nunc et felis id augue ultricies sollicitudin eget pellentesque justo. Etiam magna neque, tincidunt a quam in, varius suscipit quam. Cras tincidunt feugiat ex sit amet interdum. Aliquam sagittis turpis eu pulvinar convallis. Donec imperdiet euismod nisl et faucibus.</div> 
       <div id="video2" class="video" > <video loop muted><source src="http://clips.vorwaerts-gmbh.de/VfE_html5.mp4"/></video></div> 
    </div> 
    </div> 
    </body> 
    <script> 
    $(document).ready(function(){ 
     $(".box").find(".video").click(function() { 
      $(this).toggleClass("toggle"); 
     }); 
    }); 
    </script> 
    <script> 
    $(document).ready(function() { 
     $(".video").hover(function() { 
      $(this).children("video")[0].play(); 
     }, function() { 
      var el = $(this).children("video")[0]; 
      el.pause(); 
     }); 
    }); 
    </script> 
    </html> 

CSS

.container { 
    margin: 10%; 
} 

.box { 
    background-color: blue; 
} 

#box1 { 
    border: dotted; 
    width: 700px; 
    height: 700px; 
} 

#box2 { 
    border: dotted; 
    width: 700px; 
    height: 700px; 
} 

.toggle { 
    z-index: -10; 
} 

.text { 
    font-size: large; 
    width: 700px; 
    position: absolute; 
    z-index: 0; 
} 

.video { 
    position: absolute; 
} 

video { 
    width: 700px; 
} 
+0

Ajoutez un fichier console.log (quelque chose) à cet événement click sur .video, je pense que vous pouvez cliquer sur text1 lorsque vous pensez que vous cliquez sur video1 la deuxième fois. – deg

Répondre

0
$(document).ready(function(){ 
    $(".box").find(".video").click(function() { 
     $(this).toggleClass("toggle"); 
    }); 
    $(".box").find(".text").click(function() { 
     $(this).siblings(".video").toggleClass("toggle"); 
    }); 
}); 

vous cliquez probablement sur la div texte, donc il n'y a pas de clic enregistré sur la div vidéo que vous avez envoyé à l'arrière.

+0

Ah oui cela fonctionne parfaitement !!!!! Je vous remercie! – jehm