这实际上很容易做到。你所要做的就是改变css。
这是一个非常简单的淡入淡出动画的小提琴:http: //jsfiddle.net/elthrasher/sNpjH/
为了让它变成一个滑动动画,我首先必须把我的元素放在一个盒子里(那是滑动容器),然后我添加了另一个元素来替换那个离开的元素,只是因为我觉得它看起来不错。把它拿出来,这个例子仍然有效。
我将动画 css 从 'fade' 更改为 'slide' 但请注意这些是我给它起的名字。我本可以编写名为“fade”的幻灯片动画 css 或其他任何东西。
重要的部分是css中的内容。这是原始的“淡入淡出” 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;
}
此代码将元素的不透明度从 0(完全透明)更改为 1(完全不透明)然后再变回来。解决方案是单独保留不透明度,而是更改顶部(或左侧,如果您想左右移动)。
.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;
}
我也在从相对定位更改为绝对定位,因此一次只有一个元素占用容器中的空间。
这是成品:http: //jsfiddle.net/elthrasher/Uz2Dk/。希望这可以帮助!