2013-10-17 124 views
0

我有一種我不能直截了當的感覺。jQuery無法切換到工作狀態

基本上有一個div關閉屏幕,點擊幻燈片從左邊(得到的工作正常),我需要它滑出時再次點擊。

CSS

平板電腦彈出的絕對定位旋轉體內,所以我不能用display:none來隱藏轉子覆蓋和切換通過。

HTML

<div class="rotator-overlay"> 
<div class="tablet-flyout">+</div> 
</div> 

jQuery的

$('.tablet-flyout').click(function() { 
      $('.rotator-overlay').animate({ left: '0' }, 500); 
    }) 

我用slideToggle之前,但只有通過顯示塊/顯示無切換時取得了成功。

+0

有一個的slideToggle()方法,你可以用它代替生命和seperately切換:http://api.jquery.com/slideToggle/ –

+1

我提到我用的slideToggle但它沒有工作 – user934902

+2

的slideToggle()在這裏不工作,因爲他正在左/右移動元素,而不是顯示/隱藏。 – SuckerForMayhem

回答

3

您應該將div狀態保存在一個變量中,然後在click函數中檢查它。因此,如果div不在屏幕上,請將其滑入,否則將其滑出。

如果您不想爲此使用變量,則始終可以檢查$('.rotator-overlay').css('left')並根據您獲得的值執行相應的操作。

像這樣的東西(我把-200爲例):

$('.travel-search-tablet-flyout').click(function() { 
    if ($('.rotator-overlay').css('left') == 0) 
     $('.rotator-overlay').animate({ left: '-200' }, 500); 
    else 
     $('.rotator-overlay').animate({ left: '0' }, 500); 
}) 
0

請檢查您要滑動部件的左側,使用if語句來來回切換。

$('.travel-search-tablet-flyout').click(function() { 
    if ($('.rotator-overlay').css('left') == 0) { 
    // Slide the other way here, opposite 
    // $('.rotator-overlay').animate({ left: '????' }, 500); 
    } else { 
    // Your original animate 
    $('.rotator-overlay').animate({ left: '0' }, 500); 
    } 
})