2012-02-11 95 views
0

http://jsfiddle.net/fVKDy/11/DIV動畫滑動問題

我正在修復此動畫,如果可能的話。第一部分完美地工作,DIV幻燈片向左滑動顯示更多內容。反過來並不是因爲內容DIV沒有正確顯示,而且下面的DIV也沒有向下滑動。

任何幫助表示讚賞。

正是這種討論從昨日延續Animating a DIV automatically

 $(function() { 
$(".left_slide").click(function() { 
    $("#inner_container").stop(true, true).animate({ left: -400 }, 500, function(){ 
     $(".block1").stop(true, true).animate({height: "1px"},1000); 
    }) 
}); 
}); 
$(function() {  
$(".right_slide").click(function() { 
    $("#inner_container").stop(true, true).animate({ left: 0 }, 500, function(){ 
     $(".block1").stop(true, true).animate({height: "1px"},1000); 
    }) 
}); 
}); 

CSS

#blog_slide_container { 
position: relative; 
overflow: hidden; 
width: 400px; 
z-index: 5; 
border: 1px solid #000; 
} 

#inner_container{ 
position: relative; 
width: 2000px; 
} 

.block1 { 
position: relative; 
display: inline-block; 
vertical-align: top; 
top: 0px; 
left: 0px; 
width: 400px; 
z-index: 6; 
background-color: #333; 
color: #FFF; 
} 
.block2 { 
position: relative; 
display: inline-block; 
vertical-align: top; 
top: 0px; 
left: 0px; 
width: 400px; 
z-index: 6; 
background-color: #333; 
color: #FFF; 
} 
#bottom_container { 
position: relative; 
float: left; 
width: 100%; 
height: 280px; 
z-index: 3; 
background-color: #000; 
} 

回答

1

試試這個fiddle

$(function() { 
    var block1_h = 0; 
    $(".left_slide").click(function() { 
     $("#inner_container").stop(true, true).animate({ 
      left: -400 
     }, 500, function() { 
      block1_h = $(".block1").stop(true, true).animate({ 
       height: "1px" 
      }, 1000).height(); 
     }) 
    }); 
    $(".right_slide").click(function() { 
     $(".block1").stop(true, true).animate({ 
      height: block1_h 
     }, 1000, function() { 
      $("#inner_container").stop(true, true).animate({ 
       left: 0 
      }, 500); 
     }); 
    }); 
}); 

我只是不停的原始.block1高度變量。這樣我可以完全顛倒動畫的順序。

+0

你不需要存儲在瓦爾的高度,你可以在這種情況下,使用「開關」 - > HTTP://的jsfiddle。 net/fVKDy/13 - danwit – danwit 2012-02-11 22:32:52

+0

問題是'toggle'在動畫完成時隱藏了div,從而使'#inner_container'的'left:-400px'移動了'block2'在視線之外(因爲'block1'是不再顯示400px)。我認爲保存'高度'比調整'#inner_container'的左側回到0更快,然後回到-400'.right_side'點擊 – ori 2012-02-11 22:44:44

+0

我剛剛意識到我的小提琴壞了。我忘了將外部容器切換回'left:0' ..該死的鉻重漆算法:) – danwit 2012-02-11 22:52:16