如何用按钮隐藏和显示div?如何在显示div时为按钮添加效果?

时间:2014-07-23 03:33:51

标签: jquery html css show-hide effect

我想用按钮隐藏和显示div,但是当我点击按钮时,它只能显示div,但无法隐藏。

这是我的小提琴

http://jsfiddle.net/4vaxE/24/

我的编码

<div class="buttons" style="background-color: rgba(0,0,0,.8);">
<a class="button" id="showdiv1">Div 1</a>
<a class="button" id="showdiv2">Div 2</a>
<a class="button" id="showdiv3">Div 3</a>
<a class="button" id="showdiv4">Div 4</a>
</div>

<div id="div1">1</div>
<div id="div2">2</div>
<div id="div3">3</div>
<div id="div4">4</div>

CSS

.button {
    cursor:pointer;
    display:inline-block;
    margin:10px;
    clip: rect(auto,auto,auto,auto);
}

#div1 {
    background:aqua;
    padding:20px;
    width:100px;
    text-align:center;
    display:none;
}
#div2 {
    background:blue;
    padding:20px;
    width:100px;
    text-align:center;
    display:none;
}
#div3 {
    background:orange;
    padding:20px;
    width:100px;
    text-align:center;
    display:none;
}

#div4 {
    background:green;
    padding:20px;
    width:100px;
    text-align:center;
    display:none;
}
a {
    color:aqua;
    -webkit-filter: grayscale(1.0);
}
a:hover {
    color:red;
    -webkit-filter: grayscale(0.0);
}

的Javascript

$('#showdiv1').click(function () {
    $('div[id^=div]').hide();
    $('#div1').show();
});
$('#showdiv2').click(function () {
    $('div[id^=div]').hide();
    $('#div2').show();
});

$('#showdiv3').click(function () {
    $('div[id^=div]').hide();
    $('#div3').show();
});

$('#showdiv4').click(function () {
    $('div[id^=div]').hide();
    $('#div4').show();
});

旁边,我想在显示div时添加一些效果,这是我想要的例子 http://jqueryui.com/show/

如何修改我的小提琴,以便在单击按钮时,它会产生一些效果。我希望&#34;爆炸&#34;的效果当显示div。

如何加入我的小提琴?

由于

7 个答案:

答案 0 :(得分:1)

$('#div1').toggle();

使用切换而不是显示和隐藏, 为了效果你可以尝试slidetoggle或淡入淡出效果

答案 1 :(得分:0)

$('#showdiv1').click(function () {
    $('div[id^=div]').slideUp();
    $('#div1').slideDown();
});
$('#showdiv2').click(function () {
    $('div[id^=div]').slideUp();
    $('#div2').slideDown();
});

$('#showdiv3').click(function () {
    $('div[id^=div]').slideUp();
    $('#div3').slideDown();
});

$('#showdiv4').click(function () {
    $('div[id^=div]').slideUp();
    $('#div4').slideDown();
});

演示:

http://jsfiddle.net/45k6g/

答案 2 :(得分:0)

<强> JS

var selectedEffect="explode";
var options = { percent: 100 };
$('#showdiv1').click(function () {
    $('div[id^=div]').hide();

    $('#div1').show( selectedEffect, options, 500, callback );
});
$('#showdiv2').click(function () {
    $('div[id^=div]').hide();
    $('#div2').show( selectedEffect, options, 500, callback );
});

$('#showdiv3').click(function () {
    $('div[id^=div]').hide();
    $('#div3').show( selectedEffect, options, 500, callback );
});

$('#showdiv4').click(function () {
    $('div[id^=div]').hide();
    $('#div4').show( selectedEffect, options, 500, callback );
});

function callback() {
      setTimeout(function() {
        $( "#effect:visible" ).removeAttr( "style" ).fadeOut();
      }, 1000 );
    };

Updated Fiddle

答案 3 :(得分:0)

您可以尝试这样的事情:

$('#showdiv1').click(function () {
    if ( $('div[id^=div]').css('display') === 'block' ) {
        $('div[id^=div]').hide();
    } else {
        $('#div1').show();
    }

答案 4 :(得分:0)

$('#showdiv1').click(function () {
    $('div[id^=div]').hide(500);
    $('#div1').show(1000);
});
$('#showdiv2').click(function () {
   $('div[id^=div]').hide(500);
    $('#div2').show(1000);
});

$('#showdiv3').click(function () {
   $('div[id^=div]').hide(500);
    $('#div3').show(1000);
});

$('#showdiv4').click(function () {
    $('div[id^=div]').hide(500);
    $('#div4').show(1000);
});

答案 5 :(得分:0)

替换

 $('div[id^=div]').hide();
    $('#div1').show();

由此

  if($('#div1').css('display')=='none'){
     $('#div1').show();
    }else {
    $('#div1').hide();
    }

答案 6 :(得分:0)

不熟悉jquery爆炸我查阅了文档,只是为了看看它的内容:http://api.jqueryui.com/explode-effect/,在快速阅读之后我跳了你的小提琴。

只是看着小提琴,我看到了几件事。首先,您需要引用jquery UI。 http://code.jquery.com/ui/1.11.0/jquery-ui.js

因此,在小提琴中转到外部资源并添加该URL。完成选择后,通过对代码执行以下操作,选择要爆炸的框:

$('#showdiv1').click(function () {
$('div[id^=div]').hide();
$( "#div1" ).toggle( "explode" ); });

我测试了它,它对我有用。祝你好运,并继续努力..你真的很亲密!