通过使用 css2 “clip” 属性,添加一个额外的容器 div [使剪辑工作] 并稍微修改您的小提琴代码以依赖animate
而不是fadeIn
and fadeOut
,这种效果是可能的。但是,解决方案并不像您希望的那样简单,也不像您希望的那样干净。无论如何,它有效。
HTML:
<div style="position:relative;width:200px;height:100px;left:100px;">
<div style="position:absolute;clip:rect(0px,200px,100px,0px);overflow:none;width:200px;height:100px">
<div class="table-cont" style="display: none; position:absolute; background-color:#ABC;width:100%;height:100px;"></div>
<div class="table-coupons" style="display: none; position:absolute;top: 0px; background-color:#CBA;width:100%;height:100px;"></div>
</div>
</div>
JS:
$(document).ready(function() {
$('div.table-coupons').css({opacity:0,marginLeft:200});
calltable();
function calltable() {
$('div.table-coupons').css('display','block');
$('div.table-cont').css('display','block');
$('div.table-coupons').animate({opacity:0,marginLeft:200},{ duration: 300, queue: false,complete:function(){$(this).css('display', 'none')}});
$('div.table-cont').html('HELLO World! <a href="#" class="coupon_link">Next</a>');
$('div.table-cont').animate({opacity:1,marginLeft:0},{ duration: 300, queue: false });
$('a.coupon_link').click(function() { next_slide(); });
}
function next_slide() {
$('div.table-coupons').css('display','block');
$('div.table-cont').css('display','block');
$('div.table-cont').animate({opacity:0,marginLeft:-200},{ duration: 300, queue: false, complete:function(){$(this).css('display', 'none')}});
$('div.table-coupons').html('HELLO again! <a href="#" class="back_link">Back</a>');
$('div.table-coupons').animate({opacity:1,marginLeft:0},{ duration: 300, queue: false });
$('a.back_link').click(function() { back_slide(); });
}
function back_slide() {
calltable();
}
});
JSFiddle:http: //jsfiddle.net/97pcj/1/