jQuery幻灯片动画div与切换按钮每隔一次而不是每次都有效

时间:2014-09-22 10:43:02

标签: javascript jquery html jquery-animate

我试图获得一个简单的侧面导航栏,您可以使用一个按钮隐藏和取消隐藏。

到目前为止,我有 worknig ,但只有其他所有点击,所以点击隐藏作品,然后什么也不做,下次点击取消隐藏,没有等等。但是我必须按钮设置为图像才能更改在每次点击,这是有效的。

到目前为止我所拥有的是......

HTML:

<div id="navBar-control">
    <a href="#" id="toggle-slide-button">
        <img src="http://i.imgur.com/8BMxPsC.png" width="50px" height="50px" />
    </a>
</div>    

<div id="navBar">
    <div class="navBtn navBtnText">
        Calculator
    </div>
    <div class="navBtn navBtnText">
        About
    </div>
    <div class="navBtn navBtnText">
        Other Services
    </div>
</div>

脚本:

var state = false;

$("#toggle-slide-button").click(function () {
    if (!state) {
        $('#navBar').animate({width: "toggle"}, 1000);
        $('#toggle-slide-button img').attr('src', 'http://i.imgur.com/K3MG7gT.png');

          state = true;
        }
    else {
          $('#mnavBar').animate({width: "toggle"}, 1000);
          $('#toggle-slide-button img').attr('src', 'http://i.imgur.com/8BMxPsC.png');

          state = false;
        }
});

如果重要的话,CSS:

#navBar{    
    background-color: #660000;
    height: 780x;
    width: 80px;
}

.navBtn{    
    background-color: #660000;
    color: white;
    width: 80px;
    height: 70px;
    cursor: pointer;
    border-bottom: 1px solid rgba(255,255,255,.2);
    opacity: 1;
    font-size: 12px;
    text-align: center;
}

.navBtnText {
    line-height: 120px;
    vertical-align: bottom;
}

.navBtn:hover{
   background-color:#990000;
}

#navBar-control {
    width: 50px;
    height: 100%;
    padding: 0 15px;
    background-color: #000;
}

小提琴:http://jsfiddle.net/GUjPA/91/

我一直把这个放在这个小提琴上:http://jsfiddle.net/GUjPA/13/这只有它在屏幕右边而不是左边的行为。我使用的脚本完全相同,除了侧栏的不同颜色和大小,它基本上完全相同。

2 个答案:

答案 0 :(得分:2)

你在这里犯了错误:

$('#mnavBar').animate({width: "toggle"}, 1000);

必须是

$('#navBar').animate({width: "toggle"}, 1000);

http://jsfiddle.net/GUjPA/94/此处有效

答案 1 :(得分:1)

var state = false;

$("#toggle-slide-button").click(function () {
    if (!state) {
      $('#navBar').animate({width: "toggle"}, 1000);
      $('#toggle-slide-button img').attr('src', 'http://i.imgur.com/K3MG7gT.png');

      state = true;
    }
    else {
      $('#navBar').animate({width: "toggle"}, 1000);
      $('#toggle-slide-button img').attr('src', 'http://i.imgur.com/8BMxPsC.png');

      state = false;
    }
});

试试这个:你在第二次调用#navbar时添加了m simplified in fiddle