首页 文章

具有约束的交叉渐变div

提问于
浏览
0

我想用jquery交叉淡化两个div .

这很容易(有点),如果我没有'具有以下约束:

1)背景div应始终可见 .

2)顶部还有其他div,所以:没有z-index

3)它必须是响应,所以:没有宽度,没有高度

Example:

<DIV1><pic1><pic2><pic3><...><pic n></DIV1>
<DIV2><pic1><pic2><...><pic n></DIV2>

1)可见:DIV2(在DIV1之上) - >淡化DIV2

2)可见:DIV1 - > DIV2下一张图片

3)可见:DIV1 - > DIV2 fadein

4)可见:DIV2(在DIV1之上) - > DIV1下一张图片

5)可见:DIV2(在DIV1之上) - > DIV2淡出

重复直到DIV中的最后一张图像,然后从头开始 .


能帮我找一个优雅的解决方案吗? Thnx提前!

1 回答

  • 0

    这是一种方法:

    <div class="fadeContainer">
      <div class="item">1</div>
      <div class="item hidden">2</div>
      <div class="item hidden">3</div>
    </div>
    
    .fadeContainer {
      position: relative;
    }
    .item {
      position: absolute;
      opacity: 1;
      transition: opacity 2s;
    }
    .hidden { opacity: 0; }
    
    $(document).ready(function() {
      var slideshow = setInterval(nextSlide, 2000);
    });
    function nextSlide() {
      var items = $(".item").length,
          $current;
      $(".item").each(function() {
        if(!$(this).hasClass("hidden") ) {
          $current = $(this).addClass("hidden");
        }
      });
      if($(".item").last()[0] === $current[0]) {
        // loop back to first if this is the last slide
        $(".item").first().removeClass("hidden");
      }
      $current.next(".item").removeClass("hidden");
    }
    

    CSSdeck example

相关问题