【问题标题】:jQuery. fadeIn() "inline-block" elements sets them to block [duplicate]jQuery。 fadeIn()“inline-block”元素将它们设置为阻塞[重复]
【发布时间】:2012-06-30 14:33:20
【问题描述】:

我需要淡入最初隐藏的 div,这些 div 使用 display:none 隐藏。当它们淡入时,我需要显示为“inline-block”而不是“block”,这样它们就可以彼此内联显示,而不是彼此下降。这可能吗?

.sectionBlock{
width:163px; 
height: 261px; 
padding:5px 5px; 
position: relative;  
/*display: inline-block;*/ 
display: none;
overflow: hidden; 
margin: 0 6px 11px 6px; 
}

.

...
$('.sectionBlock').fadeIn('slow');
...

【问题讨论】:

    标签: jquery css


    【解决方案1】:

    尝试改用.fadeTo()。据我所知,这不会影响 display 属性。

    【讨论】:

    • 或 .animate({'opacity':1});和fadeTo一样...
    • 问题是,我最初需要在 css 中使用 'none' 隐藏它们
    • opacity: 0visibility: hiddenheight: 0 代替display: none
    【解决方案2】:

    试试这个:

    .sectionBlock {
       opacity: 0;
    }
    
    $('.sectionBlock').animate({'display': 'inline-block', 'opacity': '1'}, 'slow');
    

    您也可以float div:

    .sectionBlock {
       float: left
    }
    

    【讨论】:

      【解决方案3】:

      我换了一种不同的方式来思考这个问题。我现在将所有 sectionBlocks 输出到隐藏的 div 中,并将它们附加到容器并淡入容器。效果很好。

      $('.sectionBlock').clone().appendTo($('.sectionBlockWrapper'));
      $('.sectionBlockWrapper').fadeIn('slow');
      

      我正在克隆它们,因为我正在分页它们并且需要在清空容器后重新使用它们。如果有人感兴趣,这是我的完整代码。现在远非最佳,但它可以解决问题:

      //work out how many section blocks we have
              var numberOfElements = $('.sectionBlock').length; //total number of section blocks
              var maxNumberPerPage = 8; //maximum number of blocks per 1 page layout
              var maxNumberFL = 7; //maximum number of blocks on the first and last pages
              var maxNumberMid = 6; //maximum number of blocks on the mid pages
              var virtualPage = 1; //set the start page to 1
      
              //work out the total number of pages
              var totalPages = 1;
              if (numberOfElements <= maxNumberPerPage){
                  //we leave it set to 1
              } else if (numberOfElements <= (maxNumberFL*2)){
                  totalPages = 2;
              } else {
                  totalPages = 2;
                  additionalElements = numberOfElements - (maxNumberFL*2); //because we have 14 for the first and last pages
                  additionalPages = (parseInt(additionalElements/maxNumberMid)+1);
                  totalPages = totalPages + additionalPages;
              }
      
              var nextButton = '<div class="sectionBlock" id="nextButton">Next >></div>'
              var prevButton = '<div class="sectionBlock" id="prevButton"><< Previous</div>'
      
      
              if (numberOfElements <= maxNumberPerPage){
                  //1 page
                  $('.sectionBlock').clone().appendTo($('.sectionBlockWrapper'));
                  $('.sectionBlockWrapper').fadeIn('slow');
              } else {
                  //we have extra pages so we only show [maxNumberFL] on the page and append the next button
                  $('.sectionBlock:lt('+maxNumberFL+')').clone().appendTo($('.sectionBlockWrapper'));
                  $('.sectionBlockWrapper').append(nextButton);
                  $('.sectionBlockWrapper').fadeIn('slow');
              }
      
      
              $('#nextButton').live('click', function(){
                  $('.sectionBlockWrapper').fadeOut('slow', function(){
                      $('.sectionBlockWrapper').empty();
                      virtualPage = virtualPage + 1;
      
                      if (numberOfElements > (maxNumberFL*2)){
                          if (virtualPage == totalPages){
                              //this is the last page of a multi page
                              var startAt = parseInt((maxNumberMid * virtualPage) -4);
                              var endAt = startAt + maxNumberMid;
                              $('.sectionBlock').slice(startAt-1,9999).clone().appendTo($('.sectionBlockWrapper'));
                              $('.sectionBlockWrapper').prepend(prevButton);
                              $('.sectionBlockWrapper').fadeIn('slow');
                          } else {
                              //this is a mid page of a multi page
                              var startAt = parseInt((maxNumberMid * virtualPage) -4);
                              var endAt = startAt + maxNumberMid;
                              $('.sectionBlock').slice(startAt-1,endAt-1).clone().appendTo($('.sectionBlockWrapper'));
                              $('.sectionBlockWrapper').prepend(prevButton);
                              $('.sectionBlockWrapper').append(nextButton);
                              $('.sectionBlockWrapper').fadeIn('slow');
                          }
                      } else {
                          //this is the second and last page
                          $('.sectionBlock').slice(maxNumberFL, maxNumberFL*virtualPage).clone().appendTo($('.sectionBlockWrapper'));
                          $('.sectionBlockWrapper').prepend(prevButton);
                          $('.sectionBlockWrapper').fadeIn('slow');
                      }
                  });
              });
      
              $('#prevButton').live('click', function(){
                  $('.sectionBlockWrapper').fadeOut('slow', function(){
                      $('.sectionBlockWrapper').empty();
                      virtualPage = virtualPage - 1;
      
                      if (numberOfElements > (maxNumberFL*2)){
                          if (virtualPage == 1){
                              //this is the first page of a multi page
                              var startAt = parseInt((maxNumberMid * virtualPage) -4);
                              var endAt = startAt + maxNumberMid;
                              $('.sectionBlock').slice(0,maxNumberFL).clone().appendTo($('.sectionBlockWrapper'));
                              $('.sectionBlockWrapper').append(nextButton);
                              $('.sectionBlockWrapper').fadeIn('slow');
                          } else {
                              //this is a mid page of a multi page
                              var startAt = parseInt((maxNumberMid * virtualPage) -4);
                              var endAt = startAt + maxNumberMid;
                              $('.sectionBlock').slice(startAt-1,endAt-1).clone().appendTo($('.sectionBlockWrapper'));
                              $('.sectionBlockWrapper').prepend(prevButton);
                              $('.sectionBlockWrapper').append(nextButton);
                              $('.sectionBlockWrapper').fadeIn('slow');
                          }
                      } else {
                          //this is the first page
                          $('.sectionBlock').slice(0, maxNumberFL).clone().appendTo($('.sectionBlockWrapper'));       
                          $('.sectionBlockWrapper').append(nextButton);
                          $('.sectionBlockWrapper').fadeIn('slow');
                      }
                  });
              });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-10-06
        • 2021-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-07
        • 1970-01-01
        相关资源
        最近更新 更多