2016-05-17 23 views
0

ich für die Entwicklung neuer bin so gehen Sie einfach auf mir :)hinzufügen/entfernen Klasse Fade funktioniert nicht

Ich habe angefangen, einen Körper Hintergrund Schieber auf meiner E-Commerce-Plattform zu schaffen, die hoffentlich in der Lage, um schließlich blättern Sie durch eine Auswahl von Körperhintergrundbildern (noch nicht so weit).

Ich habe es geschafft, eine Seite zu erstellen, die durch das Entfernen und Hinzufügen von Klassen Körper Hintergrundbilder mit „Zurück“ und „Weiter“ Tasten schaltet aber die Überblendung nicht funktioniert, finden Sie unter:

https://zoeyplayground-com.zoeysite.com/lookbook

Hier ist mein Code:

HTML

<script> 
    jQuery(document).ready(function() { 
     jQuery(".next").click(function() { 
      jQuery("body").removeClass("bodybackground1").fadeOut('slow'); 
      jQuery("body").addClass("bodybackground2").fadeIn('slow'); 
     }); 
    }); 
</script> 

<script> 
    jQuery(document).ready(function() { 
     jQuery(".back").click(function() { 
      jQuery("body").removeClass("bodybackground2").fadeOut('slow'); 
      jQuery("body").addClass("bodybackground1").fadeIn('slow'); 
     }); 
    }); 
</script> 

<div id="toggle" width="100%"> 
<img src="/media/import/back.png" class="back"> 
<img src="/media/import/next.png" class="next"> 
</div> 

CSS

.bodybackground1 { 
    background: url('/media/import/background1.jpg') no-repeat center center fixed; 
    background-size: cover; 
    overflow: hidden; 
    transition: all 0.5s; 
} 

.bodybackground2 { 
    background: url('/media/import/background2.jpg') no-repeat center center fixed; 
    background-size: cover; 
    overflow: hidden; 
    transition: all 0.5s; 
} 

#toggle img { 
    margin-top: 400px; 
    display: inline; 
} 

#toggle .next { 
    float: right; 
} 

#toggle img:hover { 
    cursor: pointer; 
    opacity: 0.8; 
} 

erklären wäre in der Lage zu jemand bitte, warum die verblassen nicht funktioniert? Jede Anleitung oder Beratung wird geschätzt. Vielen Dank.

+1

Es Ideal vielleicht z-Index zu verwenden, dann, wenn Sie die Bilder in und aus dem Bild verblassen hinter schaffen, dass schönen Cross-Fade verblassen. Aber, wenn Sie 10 Minuten online verbringen, werden Sie etwas finden, das mit diesem bereits gebauten übereinstimmt. Ich hoffe das hilft. –

+1

Wenn Sie die CSS überprüfen die (Übergang: alle 0.5s;) sind durchgestrichen, so fügen Sie wichtige, um zu sehen, ob das hilft - Übergang: alle 0.5s! Wichtig; – Tasos

+0

Hallo Leute, danke für deine Kommentare. –

Antwort

0

Sie sind fast da. transition: all 0.5s; auf Ihrem .bodybackground* Klassen sollten sich um den Fade-Effekt kümmern. Es gibt nur 1 Problem, Ihre Übergangseigenschaft wird durch diesen #pix-fe Code überschrieben.

#pix-fe { 
... 
transition: opacity .2s ease; 
... 
} 

Sie sollten es überprüfen. Eine schnelle Lösung wäre die folgend in Ihrem CSS zu tun:

#pix-fe.bodybackground1 { 
    background: url('/media/import/background1.jpg') no-repeat center center fixed; 
    background-size: cover; 
    overflow: hidden; 
    transition: all 0.5s; 
} 

#pix-fe.bodybackground2 { 
    background: url('/media/import/background2.jpg') no-repeat center center fixed; 
    background-size: cover; 
    overflow: hidden; 
    transition: all 0.5s; 
} 
+0

Hallo Joel. Dies hat nicht wirklich funktioniert (vielleicht etwas mit der Plattform zu tun). Ich habe hinzugefügt, wichtig für den Übergang, aber dann hat es funktioniert, aber es ist nicht richtig Übergang. Was ist mit der jQuery fadeIn() und fadeOut(), ist das notwendig? Vielen Dank. –

+0

Ah ich benutzte Chrome Inspector, um dies zu testen und es hat gut funktioniert. Lass dich wissen, wenn ich eine bessere Lösung finde. Die jQuery-Überblendungen sind nicht notwendig, da Sie CSS3-Übergänge verwenden, um sie auszuführen. –

+0

@ matt136 Nur noch einmal versucht, ziemlich sicher, es sollte funktionieren. Sie können dies mit dem Chrome-Inspektor testen. Ich habe bemerkt, dass du den! Wichtigen Hack gesetzt hast, damit es jetzt funktioniert. Vielleicht möchtest du es entfernen und stattdessen Folgendes versuchen? 'body # pix-fe { Übergang: alle 0.5s Leichtigkeit; } ' Lassen Sie mich wissen, wenn es dieses Mal besser funktioniert. –