代码之家  ›  专栏  ›  技术社区  ›  callmebob ani627

使用JS/jQuery闪烁通知/确认

  •  0
  • callmebob ani627  · 技术社区  · 6 年前

    当我单击某个元素时,我希望看到 确认 出现和淡出。我已经用下面的代码实现了这一点,但我不是100%高兴,因为它不能快速地连续使用两次。我需要等待文本消失(隐藏时重新出现),然后再单击。一定有更好的方法来施这种魔法。

    以下是我所做的:

    $(".hello").click(function() {
      var element = $(".conf");
      blink(element);
      setTimeout(function() {
        reset(element);
      }, 2000);
    });
    
    function blink(element, callback) {
      element.css('visibility', 'visible');
      element.css('opacity', '0');
    }
    
    function reset(element) {
      element.css('visibility', 'hidden');
      element.css('opacity', '1');
    }
    .hello {
      visibility: visible;
      transition: opacity 1s;
    }
    
    .conf {
      visibility: hidden;
      opacity: 1;
      border-radius: 5px;
      background-color: lime;
      color: black;
      transition: opacity 1s;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <span class="hello">hello</span>
    <span class="conf">confirmation</span>
    0 回复  |  直到 6 年前
        1
  •  3
  •   Rory McCrossan Hsm Sharique Hasan    6 年前

    要解决此问题,可以使用隐藏元素 display: none show() 它在点击和立即淡出。如果你也打电话 stop() fadeOut() 动画并将元素设置回完全可见的状态。试试这个:

    $(".hello").click(function() {
      $(".conf").stop(true, true).show().fadeOut(1000);    
    });
    .hello {
      visibility: visible;
      transition: opacity 1s;
    }
    
    .conf {
      display: none;
      border-radius: 5px;
      background-color: lime;
      color: black;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <span class="hello">hello</span>
    <span class="conf">confirmation</span>