0

我有一个 jQuery 代码,当用户单击<h2>标题时,它会打开一个div包含其内容的内容。

html代码:

<div class="content1">
    <h2 class="vertical"> open text box</h2>
</div>
<div class="content1-text" >
        Text box
   <div id="back1" style="float:right;">HOME</div>
</div>

CSS代码:

.content1-text {
   padding: 20px;
   width: 920px;
   min-height: 560px;
   height: auto;
   background: #61752d;
   margin: 0;
   position: absolute;
   display: none;
}

jQuery代码:

$('.content1').click(function () {
    if($('.content1').is(':visible')){
            $('.content1-text').toggle('slide', {
                direction: 'left'
            }, 1000);
    }
    else{
        $('#back1').toggle('slide', {
            direction: 'left'
        }, 1000, function(){ $('#content1-text').fadeIn();});
    }
});

现在的问题是,当用户单击打开的文本框时,它会打开该框,但是当用户单击HOME时,它不会像开始时那样向后滑动...

我试图让它从左向右滑动。当它从右向左关闭时。

我试图在网上找到它,但没有任何运气。

我的 JsFiddle在这里

4

3 回答 3

2

我认为您确实需要查看工具方法http://api.jquery.com/toggle/

你可以这样做:

$('.content1').click(function () {
    $('.content1-text').toggle("slow");
});
$('#back1').click(function () {
    $('.content1-text').toggle("slow");
});

查看演示http://jsfiddle.net/PBm88/11/

编辑

在获得预期结果的更多细节之后,您可以执行一个基于classname启用相关容器的幻灯片动画的功能:

$('.vertical').click(function () {
  var id=$(this).parent().attr('class'),
      slid='.'+id+'-text';
  $(slid).show().animate({
      width:'920px',
      opacity: '1'
  },2000)
});
$('.back').click(function () {
    $(this).parent().animate({
      width:'0px',
      opacity: '0'
    }, 
    {duration:2000,
     complete: function() {
         $( this ).hide();
        }
     });
});

新演示http://jsfiddle.net/PBm88/59/

于 2013-11-12T15:17:11.710 回答
0

您没有主页按钮的点击处理程序

尝试

$('.content1').click(function () {
        $('.content1-text').toggle('slide', {
            direction: 'left'
        }, 1000);
});

$('#back1').click(function(){
        $('.content1-text').toggle('slide', {
            direction: 'left'
        }, 1000);
})

演示:小提琴

于 2013-11-12T15:13:03.800 回答
0

http://jsfiddle.net/PBm88/13/

改用这个 jQuery:

$(document).ready(function() {
        $('#button, #back1').click(function() {
            $('#box').toggleClass('visible');
        });
    });

CSS:

.visible { display: block; }

还用三个 ID 修改了 HTML。

在 CSS 中做任何动画。修改你认为合适的。

于 2013-11-12T15:11:59.867 回答