2013-10-17 90 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); 
    } 
})