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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

animate如何用同一個(gè)按鈕控制橫向伸縮?

animate如何用同一個(gè)按鈕控制橫向伸縮?

滄海一幻覺(jué) 2018-08-06 11:10:43
為什么同一個(gè)按鈕上無(wú)法設(shè)置兩種animate屬性呢,該怎樣修改這段代碼使同一個(gè)按鈕點(diǎn)擊一次時(shí)伸展,點(diǎn)擊第二次時(shí)收縮呢?<html><head><script type="text/javascript" src="/jquery/jquery.js"></script><script type="text/javascript">$(document).ready(function()  {  var l = $("#box").width();  if(l = "100px"){     $(".btn1").bind("click",function(){       $("#box").animate({width:"300px"});     });   }else{     $(".btn1").bind("click",function(){       $("#box").animate({width:"100px"});     });   }; });</script></head><body><div id="box" style="background:#98bf21;height:100px;width:100px;margin:6px;"></div><button class="btn1">Animate</button></body></html>
查看完整描述

1 回答

?
慕尼黑5688855

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊

首先你需要具備以下知識(shí):

  1. ready方法是什么時(shí)候執(zhí)行的?

  2. bind方法是怎么用的?

  3. .btn1被點(diǎn)擊的時(shí)候會(huì)執(zhí)行哪些代碼?

我們逐一來(lái)看。

ready方法是什么時(shí)候執(zhí)行的?

ready方法在文檔加載完成后執(zhí)行。
也就是說(shuō)當(dāng)body標(biāo)簽解析完后,以下代碼將會(huì)執(zhí)行一次

1.  var l = $("#box").width();

2.  if(l = "100px"){

3.      $(".btn1").bind("click",function(){

4.          $("#box").animate({width:"300px"});

5.      });

6.  } else {

7.      $(".btn1").bind("click",function(){

8.          $("#box").animate({width:"100px"});

9.      });

10. };

我們來(lái)糾正一下代碼中的基礎(chǔ)錯(cuò)誤。

1.  var l = $("#box").width();2.  if(l == 100){3.      $(".btn1").bind("click",function(){4.          $("#box").animate({width:"300px"});5.      });6.  } else {7.      $(".btn1").bind("click",function(){8.          $("#box").animate({width:"100px"});9.      });10. };

注意第2行的 = 已經(jīng)被糾正為 ==。并且width方法返回的是100而不是"100px"。

bind方法是怎么用的?

bind方法用于給元素綁定事件處理函數(shù)。它本身并不會(huì)執(zhí)行事件處理函數(shù)
看如下代碼:

$(".btn1").bind("click", function(){
    $("#box").animate({width:"300px"});
});

注意,此時(shí)$("#box").animate(...)并沒(méi)有執(zhí)行。而是在.btn1被點(diǎn)擊后才會(huì)執(zhí)行。

.btn1被點(diǎn)擊的時(shí)候會(huì)執(zhí)行哪些代碼?

現(xiàn)在我們來(lái)回顧一下上面標(biāo)有行號(hào)的代碼1-10行。
這段代碼為.btn1綁定了一個(gè)點(diǎn)擊事件處理函數(shù),.btn1被點(diǎn)擊后執(zhí)行的就是這個(gè)處理函數(shù)。

這個(gè)處理函數(shù)到底是什么呢?
如果l == 100那么這個(gè)函數(shù)就是...animate(...300),否則這個(gè)函數(shù)就是...animate(...100)

注意,這個(gè)判斷是在文檔加載完成的時(shí)候執(zhí)行了一次,而不是在每次點(diǎn)擊.btn1的時(shí)候執(zhí)行。

因此,你在一開(kāi)始就決定了點(diǎn)擊.btn1時(shí)應(yīng)該調(diào)整#box的width為100還是300,并且此后是不會(huì)改變的。

應(yīng)該如何實(shí)現(xiàn)你要的效果?

直接看代碼吧,如果已經(jīng)能夠理解自然是再好不過(guò):

$(document).ready(function() {
    $(".btn1").bind("click", function() {        var $box = $("#box");        if ($box.width() == 100) {
            $box.animate({width: "300px"});
        } else {
            $box.animate({width: "100px"});
        }
    });
});

更多關(guān)于jQuery的知識(shí)建議多查閱官方文檔
希望對(duì)你有幫助。


查看完整回答
反對(duì) 回復(fù) 2018-09-14
  • 1 回答
  • 0 關(guān)注
  • 764 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)