DIV向右移动,但在隐藏之前不会向左移动(向后移动)。请参阅底部的Codepen以进行试用。
我只在这里发布JavaScript代码..您可以在代码中找到CSS和HTML。
$(document.body).on('click','.rightnav.front', function () {
var x = $(this).parent().parent();
x.addClass('moveright')
.one('transitionend', function() {
x.removeClass('moveright')
})
.one('transitionend', function(){
x.addClass('moveleft');
})
.one('transitionend', function() {
x.addClass('hidden').addClass('offset');
$('.rightnav.front').removeClass('front');
var nextId = Number(x.attr('id')) + 1;
var nextWidget = $('#' + nextId);
nextWidget.removeClass('hidden');
nextWidget.children().find('.rightnav').addClass('front');
})
});
以下是实时测试的CodePen.IO链接:http://codepen.io/nygter/pen/QbpegM
答案 0 :(得分:1)
看看这个解决方案,也许(肯定)它不理想,但应该按预期工作。正如我在评论中提到的,我已将动画从 jQuery 移至@ keyframes
。
魔术来自:
.widget.moveright{
left:450px;
margin-left:-100px;
opacity:0.5;
}
和
x.addClass('moveright')
.one('transitionend', function() {
x.removeClass('moveright')
})
.one('transitionend', function(){
x.addClass('moveleft');
}) //...
转化为:
@keyframes moveright{
50% {
left:450px;
margin-left:-100px;
opacity:0.5;
}
100% {
opacity: 0;
}
}
.widget.moveright{
animation: moveright 1s ease;
-webkit-animation: moveright 1s ease;
}
和
x.addClass('moveright')
.one('animationend', function() {
$(this)
.removeClass('moveright')
.addClass('hidden offset');
//...
在Codepen见到它。 要了解CSS动画take a look。