Das ist eigentlich ziemlich einfach. Alles was Sie tun müssen, ist das CSS zu ändern.
Hier ist eine Geige mit einer sehr einfachen Überblendanimation: http://jsfiddle.net/elthrasher/sNpjH/
Um daraus eine gleitende Animation zu machen, musste ich zuerst mein Element in eine Box legen (das ist der Foliencontainer), dann ein weiteres Element hinzufügen, um das verlassene zu ersetzen, nur weil ich dachte, es würde schön aussehen. Nehmen Sie es heraus und das Beispiel wird immer noch funktionieren.
Ich habe das Animations-CSS von "Überblenden" in "Folie" geändert, aber bitte beachten Sie, dass dies die Namen sind, die ich ihm gegeben habe. Ich hätte eine Folienanimation mit dem Namen "Fade" oder irgendetwas anderes schreiben können.
Der wichtige Teil ist, was in der CSS ist. Hier ist das Original-Fade-CSS:
.fade-hide, .fade-show {
-webkit-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
-moz-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
-o-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.5s;
}
.fade-hide {
opacity:1;
}
.fade-hide.fade-hide-active {
opacity:0;
}
.fade-show {
opacity:0;
}
.fade-show.fade-show-active {
opacity:1;
}
Dieser Code ändert die Deckkraft des Elements von 0 (vollständig transparent) auf 1 (vollständig undurchsichtig) und wieder zurück. Die Lösung besteht darin, die Deckkraft in Ruhe zu lassen und stattdessen die Oberseite zu ändern (oder nach links, wenn Sie sich von links nach rechts bewegen möchten).
.slide-hide, .slide-show {
-webkit-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.5s;
-moz-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.5s;
-o-transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.5s;
transition:all cubic-bezier(0.250, 0.460, 0.450, 0.940) 1.5s;
}
.slide-hide {
position: relative;
top: 0;
}
.slide-hide.slide-hide-active {
position: absolute;
top: -100px;
}
.slide-show {
position: absolute;
top: 100px;
}
.slide-show.slide-show-active {
position: relative;
top: 0px;
}
Ich wechsle auch von der relativen zur absoluten Positionierung, sodass jeweils nur eines der Elemente Platz im Container einnimmt.
Hier ist das fertige Produkt: http://jsfiddle.net/elthrasher/Uz2Dk/ . Hoffe das hilft!