代码之家  ›  专栏  ›  技术社区  ›  Jimmy

jquery addclass之后的css转换

  •  1
  • Jimmy  · 技术社区  · 8 年前

    在用jquery添加活动类之后,我试图缓慢地扩展div,但我无法让它正常工作。 div只获取宽度,但不会发生转换。 我也尝试过用jquery制作动画,但也没有成功。

    $(document).ready(function() {
      $('.Sliders').click(function(e) {
        $(this).addClass('active').siblings().removeClass('active');
      });
    });
    #SliderHolder {
      width: 100%;
      height: 100%;
      font-size: 0px;
      position: relative;
      display: table;
      border-collapse: collapse;
    }
    
    .Sliders {
      min-width: 50px;
      height: 100%;
      display: table-cell;
      box-sizing: border-box;
      vertical-align: top;
      font-size: 72px;
      text-align: center;
      -webkit-transition: all 2s ease;
      -moz-transition: all 2s ease;
      -o-transition: all 2s ease;
      transition: all 2s ease;
    }
    
    .active {
      width: 100%;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div id="Wrapper">
      <div id="SliderHolder">
        <div id="Slide1" class="Sliders active"></div>
        <div id="Slide2" class="Sliders"></div>
        <div id="Slide3" class="Sliders"></div>
        <div id="Slide4" class="Sliders"></div>
      </div>
    </div>
    1 回复  |  直到 8 年前
        1
  •  1
  •   Mohamed-Yousef    8 年前

    您可以添加 width : 0%; .Sliders 设置样式并将过渡添加到 .active

    $(document).ready(function() {
      $('.Sliders').click(function(e) {
        $(this).addClass('active').siblings().removeClass('active');
      });
    });
    #SliderHolder {
      width: 100%;
      height: 100%;
      font-size: 0px;
      position: relative;
      display: table;
      border-collapse: collapse;
    }
    
    .Sliders {
      width : 0%;
      min-width: 50px;
      height: 100%;
      display: table-cell;
      box-sizing: border-box;
      vertical-align: top;
      font-size: 72px;
      text-align: center;
      -webkit-transition: all 2s ease;
      -moz-transition: all 2s ease;
      -o-transition: all 2s ease;
      transition: all 2s ease;
    }
    
    .active {
      width: 100%;
      -webkit-transition: all 2s ease;
      -moz-transition: all 2s ease;
      -o-transition: all 2s ease;
      transition: all 2s ease;
      background : red;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div id="Wrapper">
      <div id="SliderHolder">
        <div id="Slide1" class="Sliders active">1</div>
        <div id="Slide2" class="Sliders">2</div>
        <div id="Slide3" class="Sliders">3</div>
        <div id="Slide4" class="Sliders">4</div>
      </div>
    </div>