jQuery无法切换工作

时间:2013-10-17 16:48:59

标签: javascript jquery

我有一天我无法直接思考。

基本上有一个div off屏幕,点击左边的幻灯片(工作正常),我需要它再次点击时滑出。

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,但只有在切换显示块/显示无效时才成功。

2 个答案:

答案 0 :(得分: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);
})

答案 1 :(得分: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);
   }
 })