javascript - 使用jquery切换div的高度

标签 javascript jquery html css jquery-animate

我想要一个显示“显示更多”的链接,单击该链接会扩展另一个 div 的高度以显示所有内容。一旦 div 显示了所有内容,我希望链接更改为“显示较少”,并在单击后执行相反的操作。

这是我到目前为止所做的,但由于某种原因不起作用,请有人帮忙吗?

这是我到目前为止所拥有的:

$(document).ready(function() {
  $('.entry-content').css('height', '400px');
  $('.entry-content').css('overflow', 'hidden');
 $('.show-more').click(function() {
  $('.entry-content').animate({
    'height': 'auto'
  }, 500);
  $('.show_more').html('Show Less');
  $('.show_more').addClass('show_less');
  $('.show_more').removeClass('show_more');
});
$('.show-less').click(function() {
  $('.entry-content').animate({
    'height': '400px'
  }, 500);
  $('.show_less').html('Show More');
  $('.show_less').addClass('show_more');
  $('.show_less').removeClass('show_less');
});
});

   
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="entry-content">
  Curabitur sed enim sit amet nibh vulputate efficitur nec eget nulla. Vestibulum vel pulvinar magna. Etiam viverra vulputate lectus. Etiam dictum maximus ligula sed efficitur. Donec in dictum purus. Sed consequat quam eu eleifend convallis. Donec sapien
  augue, volutpat ac nibh ac, molestie vulputate neque. Morbi eu fermentum est, eget vulputate quam. Phasellus et ante ipsum. Nullam tempus neque augue, nec accumsan erat hendrerit vel. Proin dolor sapien, pulvinar at rutrum quis, scelerisque vel ipsum.
  Cras arcu nulla, placerat ac arcu vitae, iaculis maximus nisi. Nulla tincidunt, nisi id ultrices tempor, diam ipsum sollicitudin neque, ac consequat libero nulla eu diam.
</div>

<div class="another-div-elsewhere">
  <a href="#" class="show-more">Show More</a>
</div>

最佳答案

尝试下面的代码片段。

$(document).ready(function() {
  $('.entry-content').css({'height':'40px','overflow': 'hidden'});


  $('.show-more').on('click',function() {
    if($(this).hasClass('less')){
      $('.entry-content').animate({
      'height': '40px'
      }, 500);
      $(this).html("Show More")
    }
    else{
       $('.entry-content').animate({
      'height': $(".entry-content").get(0).scrollHeight
      }, 500);
      $(this).html("Show Less")
    }
    $(this).toggleClass('less');
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="entry-content">
  Curabitur sed enim sit amet nibh vulputate efficitur nec eget nulla. Vestibulum vel pulvinar magna. Etiam viverra vulputate lectus. Etiam dictum maximus ligula sed efficitur. Donec in dictum purus. Sed consequat quam eu eleifend convallis. Donec sapien
  augue, volutpat ac nibh ac, molestie vulputate neque. Morbi eu fermentum est, eget vulputate quam. Phasellus et ante ipsum. Nullam tempus neque augue, nec accumsan erat hendrerit vel. Proin dolor sapien, pulvinar at rutrum quis, scelerisque vel ipsum.
  Cras arcu nulla, placerat ac arcu vitae, iaculis maximus nisi. Nulla tincidunt, nisi id ultrices tempor, diam ipsum sollicitudin neque, ac consequat libero nulla eu diam.
</div>

<div class="another-div-elsewhere">
  <a href="#" class="show-more">Show More</a>
</div>

关于javascript - 使用jquery切换div的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42630853/

相关文章:

jquery - 在 Jquery 中使用 .each 进行延迟循环

CSS 伪元素的 jQuery .click() 事件 ( :before/:after)?

jQuery 用户界面 : Pros and Cons?

javascript - 如何将 (CSS/HTML) 包链接在一起。 CSS/HTML -> CSS/HTML -> CSS/HTML

Javascript 日历应用 moment.js

javascript - Cordova FileTransfer 不发送自定义 header

php - 将用户重定向到移动网站的最佳技术

html - CSS3 Shadowbox - 仅在底部

javascript - 如何向下滚动整个 div 以及如何突出显示事件 div

javascript - 如何将此 JSON 数据格式化为日期 (mm/dd/yyyy)