第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于多個animate運行時阻塞的原理及解決方法。

標簽:
JQuery

最近在回答一个学友的问题是遇到一个难题,就是两个animate运行时会出现阻塞,网上查了很多方法都不行,说是单线程的问题,但我始终觉得两个animate是异步的。

先看一下例子

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <style>
      * { margin:0;padding:0;box-sizing:border-box;}
      ul li{
          list-style:none;
          background: #ccc;
          float:left;
          width:50px;
          height:50px;
          margin-left:30px;
          text-align:center;
          line-height:50px;
          cursor:pointer;
      }
    </style>
    <script class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
  </head>
  <body>
    <h1>运行效果:</h1>

    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li> 
        <li>4</li>
        <li>5</li>
    </ul>
    <script>
      $('ul li').on('mouseenter',function(){
            $('ul li').animate({opacity:1},3000);
            $(this).animate({opacity:0.2},3000);
      }) 
    </script>
  </body>
</html>

效果是这样的
图片描述

可以看到淡入和淡出是不会同时执行的。
同一阶级的元素可以这样解决

$(this).animate({opacity:0.2},3000).siblings().animate({opacity:1},3000);

这样就不会阻塞了。

之所以会阻塞,根本原因是animate在运行的时候建立了一个队列,所以第二个函数必须要等第一个函数运行完才能够运行。这是比较完善的解决方法,把他的队列queue取消,jq中同样也是有文档说明的。

$('ul li').animate({opacity:1},{queue:false,duration:3000});
 $(this).animate({opacity:0.2},{queue:false,duration:3000});

这样就完美解决了animate阻塞的问题了。

點擊查看更多內(nèi)容
2人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質文章

正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消