附加打开/关闭箭头的基本显示/隐藏Div

时间:2012-09-05 19:05:17

标签: jquery hide show

尝试打开/关闭div,方向箭头在打开和关闭时更改,但在关闭和打开时保持与div连接。

http://jsfiddle.net/siiimple/GqJj8/8/

理想情况下,我希望它在关闭(快速)时向左滑动,然后向右打开。关闭时,关闭“ - ”将变为“+”。

感谢您的帮助:)

4 个答案:

答案 0 :(得分:3)

离开了crowjonah的解决方案,并提出了一些我认为更符合您规范的内容。

在这里查看:

http://jsfiddle.net/VLNDL/

首先,稍微重组div,使扩展/收缩按钮成为滑动div的同伴;所以它在过渡期间一直保持着它:

<div id="intro-wrap">
<div class="open-intro">+</div>
<div class="close-intro">-</div>
<div id="contentWrap">
    <h1 class="main-header">Here is a Title</h1>
    <p class="main-desc">You can write whatever you want about yourself here. You can say you're a superhuman alien ant, arrived from the nether regions of Dwarf-Ant-Dom.</p>
</div>

然后重构CSS:1。使它更简单,2:围绕块,相对,浮点和绝对更改,以便按钮被“固定”到相对div,就是这样:

    #intro-wrap {
    position: relative;
    z-index: 1;
    border-left: 25px solid rgba(0,0,0,.2);
    width: 200px;
}
#contentWrap{
    background: rgba(0,0,0,.8);
    padding: 15px 40px 25px 30px;
}

#intro-wrap h1 {
    font-family: "PT Sans Narrow";
    font-size: 25px;
    color: #fff;
    font-weight: 700;
    margin-bottom: 0px !important;
    padding-bottom: 10px;
}

#intro-wrap p {
    line-height: 19px;
    color: #999;
}
.open-intro,
.close-intro {
    position:absolute;
    left:200px;
    cursor: pointer;
    width: 25px;
    height: 25px;
    z-index: 50;
    padding-left:15px;
}
.open-intro {
    display: none;
    background: yellow 
}
.close-intro {
    background: red; 
}

我在js中唯一改变的是我禁用了不透明度动画,但你可以把它带回来 - 我只是不会用它来定位#intro-wrap,你应该用它来定位contentWrap:

    $('.open-intro').click(function() {
    $('#intro-wrap').animate({
    //opacity: 1,
    left: '0',
  }, 500, function() {
    // Animation complete.
  });
    $('.open-intro').hide();
    $('.close-intro').show();
});


$('.close-intro').click(function() {
    $('#intro-wrap').animate({
    //opacity: 0.25,
    left: '-225',
  }, 400, function() {
    // Animation complete.
  });
    $('.open-intro').show();
    $('.close-intro').hide();
});

Ĵ

答案 1 :(得分:0)

http://jsfiddle.net/harmeet_jaipur/ETx7P/

您可以通过slideUp / slideDown轻松完成此操作。

或者你也可以试试这个:

http://jsfiddle.net/harmeet_jaipur/7sRRG/1/

答案 2 :(得分:0)

我通常创建一个包含向上和向下箭头的精灵表,然后为每个具有不同背景位置的类创建。在切换时,只需将类分配给箭头,如果它打开或关闭。

此外,更新的小提琴对我来说根本不起作用。

答案 3 :(得分:0)

左右滑动的简单方法是使用jQuery UI! 只需在jQuery本身之后添加<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>并使用此示例中显示的函数(我分叉Harmeets):http://jsfiddle.net/qEBnG/1/(编辑:更好:http://jsfiddle.net/qEBnG/2/

然后用你的选择器和参数填写函数调用:

$('.open-button').click(function() {
    $('#content').show("slide", { direction: "left" }, 500);
    $('.open-button').hide();
    $('.close-button').show();
});

$('.close-button').click(function() {
    $('#content').hide("slide", { direction: "left" }, 100);
    $('.open-button').show();
    $('.close-button').hide();
});​

如果您愿意,可以稍微修改CSS以使+和 - 按钮相互替换。

正如josh所指出的,你不一定只想为一个小用途加载整个jQuery UI库,在这种情况下你可以使用jQuery的animate函数。这是a fiddle,这里有一些代码(坚持现有的点击功能):

$('#content').animate({
    opacity: 1,
    left: '-900', //to close. use 0 to open
}, 500, function() {}); //500 is the speed. lower is quicker