Un p contient de nombreux sous-p, et les images d'arrière-plan des sous-p sont rassemblées pour former une image entière ; pour l'effet de rassemblement, j'ai ajouté un effet d'inversion de l'axe y 3D. Pourquoi y a-t-il un petit écart dans le. milieu lors de l'épissage ? Logiquement parlant, c'est le rassemblement La fin devrait être comme ça
Le résultat est comme ça
.pic{largeur : 1000px;hauteur : 655px;position : absolue;gauche : 0;droite : 0;haut : 0;bas : 0;marge : auto;arrière-plan : beige;transform-style : préserver - 3D;perspective : 500px;}
.item{position: absolute;}
<p class="pic"></p><script>
for (var i=0;i<240;i++){
$('<p class="item"></p>').css({
'width':1000/24+'px',
'height':655/10+'px',
'background-image':'url(images/meinv.jpg)'
}).appendTo('.pic');
}
$('.item').each(function(index){
var x=index%24;
var y=parseInt(index/24);
var randomX=Math.random()*800-400;
var randomY=Math.random()*800-400;
$(this).css({'background-position':-x*(1000/24)+"px "+-y*(655/10)+"px",'left':x*(1000/24),'top':y*(655/10), 'transform':"translate("+x*randomX+"px,"+y*randomY+"px) rotate(360deg) scale(0.2) "}).hide()
});
var bol=true;
$('.pic').click(function (){
if (bol) {
$('.item').each(function(){
var random=Math.random()*3+2;
$(this).fadeIn().css({'transform':'translate(0) rotate(0deg) scale(1) ','transition':'all '+random+'s ease-in-out'})
})
}else{
console.log(1)
$('.item').each(function(index){
var x=index%24;
var y=parseInt(index/24);
var randomX=Math.random()*800-400;
var randomY=Math.random()*800-400;
$(this).css({'left':x*(1000/24),'top':y*(655/10), 'transform':"translate("+x*randomX+"px,"+y*randomY+"px) rotate(360deg) scale(0.2) rotateY(180deg)"}).fadeOut()
})
}
bol=!bol
})
</script>
Assurez-vous que la vue du navigateur n'est pas zoomée ! ctrl + 0 essayez.