jQuery使用加号和减号图标隐藏和显示切换div

Pau*_*aul 18 html css jquery show hide

我有代码为节目工作并隐藏div.当show和hide处于活动状态时,如何将两个不同的图标添加为精灵图像?

例如:+图标用于显示我,然后用-图标用于隐藏我.

这是代码,我有:http: //jsfiddle.net/BLkpG/

$(document).ready(function(){
   $(".slidingDiv").hide();
   $(".show_hide").show();

    $('.show_hide').click(function(){
    $(".slidingDiv").slideToggle();
  });
});
Run Code Online (Sandbox Code Playgroud)

切换到+-时需要将图像更改为上面的内容.

谢谢

Env*_*nve 21

尝试这样的事情

jQuery的

$('#toggle_icon').toggle(function() {

    $('#toggle_icon').text('-');
    $('#toggle_text').slideToggle();

}, function() {

    $('#toggle_icon').text('+');
    $('#toggle_text').slideToggle();

});
Run Code Online (Sandbox Code Playgroud)

HTML

<a href="#" id="toggle_icon">+</a>

<div id="toggle_text" style="display: none">
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

$('#toggle_icon').toggle(function() {

    $('#toggle_icon').text('-');
    $('#toggle_text').slideToggle();

}, function() {

    $('#toggle_icon').text('+');
    $('#toggle_text').slideToggle();

});
Run Code Online (Sandbox Code Playgroud)

DEMO

  • 对不起,你必须进行报复横行,这有点难过.我只是试图帮助这个话题的首发,因为我认为你的答案是不正确的.然后你开始低估我的一些随机答案只是为了进行某种虚拟复仇?可怜的你.:) (3认同)
  • 我解释了为什么我对你的帖子进行了低估.这是一个问答网站,这意味着我们正在寻找**最佳**答案.通过downvoting,我向TS展示你的答案并不尽如人意.当他取消接受或更改代码时,我可能会移除downvote.与你不同的是,他甚至没有告诉你为什么会低估所有帖子.而你应该是27岁...... (3认同)
  • Downvoted是因为我老实说不认为这是最好的答案.这太长了,根本没有效率. (2认同)

Vyt*_*kus 10

我会说最优雅的方式是:

<div class="toggle"></div>
<div class="content">...</div>
Run Code Online (Sandbox Code Playgroud)

那么css:

.toggle{
 display:inline-block;
height:48px;
width:48px;  background:url("http://icons.iconarchive.com/icons/pixelmixer/basic/48/plus-icon.png");
}
.toggle.expanded{
  background:url("http://cdn2.iconfinder.com/data/icons/onebit/PNG/onebit_32.png");
}
Run Code Online (Sandbox Code Playgroud)

和js:

$(document).ready(function(){
  var $content = $(".content").hide();
  $(".toggle").on("click", function(e){
    $(this).toggleClass("expanded");
    $content.slideToggle();
  });
});
Run Code Online (Sandbox Code Playgroud)

小提琴


Rok*_*jan 9

切换文本ShowHide移动backgroundPosition Y

现场演示

$(function(){ // DOM READY shorthand

    $(".slidingDiv").hide();

    $('.show_hide').click(function( e ){
        // e.preventDefault(); // If you use anchors
        var SH = this.SH^=1; // "Simple toggler"
        $(this).text(SH?'Hide':'Show')
               .css({backgroundPosition:'0 '+ (SH?-18:0) +'px'})
               .next(".slidingDiv").slideToggle();
    });

});
Run Code Online (Sandbox Code Playgroud)

CSS:

.show_hide{
  background:url(plusminus.png) no-repeat;
  padding-left:20px;  
}
Run Code Online (Sandbox Code Playgroud)


Bra*_*roy 5

这是 Enve 答案的快速编辑。我确实喜欢 roXor 的解决方案,但背景图像不是必需的。preventDefault每个人似乎也忘记了。

$(document).ready(function() {
  $(".slidingDiv").hide();

  $('.show_hide').click(function(e) {
    $(".slidingDiv").slideToggle("fast");
    var val = $(this).text() == "-" ? "+" : "-";
    $(this).hide().text(val).fadeIn("fast");
    e.preventDefault();
  });
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" class="show_hide">+</a>

<div class="slidingDiv">
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta.
    Mauris massa. Vestibulum lacinia arcu eget nulla. </p>

  <p>Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero. Sed dignissim lacinia nunc. Curabitur tortor. Pellentesque nibh. Aenean quam. In scelerisque sem at dolor. Maecenas mattis.
    Sed convallis tristique sem. Proin ut ligula vel nunc egestas porttitor. Morbi lectus risus, iaculis vel, suscipit quis, luctus non, massa. Fusce ac turpis quis ligula lacinia aliquet. Mauris ipsum. </p>

</div>
Run Code Online (Sandbox Code Playgroud)