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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

關(guān)于鏈?zhǔn)胶投鄬傩赃\(yùn)動(dòng)的另一種情況

老師已經(jīng)給我們介紹了一個(gè)完美的運(yùn)動(dòng)框架

多物體運(yùn)動(dòng)>鏈?zhǔn)竭\(yùn)動(dòng)>多屬性運(yùn)動(dòng)

假設(shè)鏈?zhǔn)讲襟E{}1,2,3.多屬性同時(shí)運(yùn)動(dòng)a,b,c

老師的框架運(yùn)行結(jié)構(gòu)1:{a,b}>2:{a,b,c}>3:{a,b,c}


但是存在一種情況:對(duì)于一個(gè)物體而言,兩條屬性同時(shí)變化,而當(dāng)?shù)谝粋€(gè)屬性完成后接著一個(gè)鏈?zhǔn)降谌齻€(gè)屬性.此時(shí)第二個(gè)屬性和第三個(gè)屬性繼續(xù)同步完成.

即: 1:{ 1.1:{a}>1.2:{c} , b }

時(shí)間軸例:

{aaaaaaa}>{cccccccc}

{bbbbbbbbbbbbbbb}

應(yīng)該如何修改框架實(shí)現(xiàn)此種情況.

正在回答

1 回答

<!DOCTYPE?html>

<html>
<head>
<meta?charset="UTF-8">
<title></title>
<style?type="text/css">
body?{
????margin:?0px;
}
li?{
????width:200px;
????height:50px;
????list-style-type:none;
????margin-bottom:10px;
????background-color:brown;
????filter:alpha(opacity=30);?
????opacity:0.3;
}
</style>
<script?type="text/javascript">???
window.onload?=?function(){
??????var?li?=?document.getElementsByTagName('li');
??????for(var?i=0;i<li.length;i++){
??????li[i].timer=null;?
??????li[i].onmouseover?=?function(){
??????startMove(this,{'width':400},function(obj){//這里的obj參數(shù)由startMobe方法調(diào)用回調(diào)那里傳回來(lái),方便解決這行的函數(shù)找不到對(duì)象的問(wèn)題
??????????startMove(obj,{'height':300,'opacity':100});//用了json同時(shí)實(shí)現(xiàn)高和透明度的修改
??????});
?????????????}?
?????????????//鼠標(biāo)移開(kāi)
??????li[i].onmouseout?=?function(){
??????startMove(this,{'width':200,'height':50,'opacity':30});//用了json同時(shí)實(shí)現(xiàn)寬高透明度的修改
??????????????}
?????????}
????}
??????var?alpha=30;
???function?startMove(obj,json,fn){
??????clearInterval(obj.timer);
??????var?curStyle=0;
??????obj.timer?=?setInterval(function(){
????????var?flag=true;//flag如果放在外面的話在計(jì)時(shí)器里面被修改之后就不會(huì)再變回true的值了,如果在計(jì)時(shí)器里面,每次計(jì)時(shí)都會(huì)把flag重新賦值true
??????????for(var?attr?in?json){
??????curStyle=(attr=='opacity')?Math.round(parseFloat(getStyle(obj,attr))*100):parseInt(getStyle(obj,attr));//這里把if(){}else{}的判斷是不是opacity寫(xiě)成一句了
????????????var?speed?=?(json[attr]-curStyle)/10;
??????speed?=?(attr=='opacity')?speed:(speed>0?Math.ceil(speed):Math.floor(speed));
??????if(curStyle!=json[attr]){//如果不能同時(shí)滿足所有當(dāng)前的屬性值等于目標(biāo)值就給flag賦值false
?????????flag=false;
?????????}
?????????obj.style[attr]=(attr=='opacity')?(curStyle+speed)/100:(curStyle+speed+'px');
?????????if(flag){
??????clearInterval(obj.timer);????
????????????if(fn){
??????????????fn(obj);//這里把obj做成參數(shù)主要是方便處理回調(diào)函數(shù)fn的對(duì)象問(wèn)題
??????????}
?????????}
??????????????}
??????????
??????},30)
???}
??
??function?getStyle(obj,attr){
??????if(obj.currentStyle){
?????????return?obj.currentStyle[attr];
??????}else{
??????????return?window.getComputedStyle(obj,false)[attr];
????????
??????}
??}
?</script>
</head>

<body>
<li?id="li"></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</body>
</html>

--------------------------------------------------------------------------------------

花了大半天寫(xiě)好的,不知道有沒(méi)有你想要的“第二個(gè)屬性和第三個(gè)屬性繼續(xù)同步完成”

2 回復(fù) 有任何疑惑可以回復(fù)我~
#1

Fishzz 提問(wèn)者

首先很感動(dòng)用心作答. 我的想法是,動(dòng)作一和動(dòng)作二是同時(shí)開(kāi)始的,而動(dòng)作三是承接動(dòng)作一鏈?zhǔn)郊せ铋_(kāi)始的,之后動(dòng)作三和動(dòng)作二同時(shí)完成. 你的satrmove的函數(shù)結(jié)構(gòu)上并不是我想要的,它先執(zhí)行完成了width動(dòng)畫(huà),其次執(zhí)行高度和透明度同時(shí)變化. 我想要的是 執(zhí)行寬度動(dòng)畫(huà), 同時(shí)執(zhí)行高度變化, 高度結(jié)束后執(zhí)行透明度 寬度透明度完成動(dòng)畫(huà). 時(shí)間軸上: 0s:寬度和高度開(kāi)始變. 3s:寬度執(zhí)行到途中.高度結(jié)束動(dòng)作,并激活透明度開(kāi)始變. 6s:寬度完成動(dòng)作,透明度完成動(dòng)作.
2018-06-27 回復(fù) 有任何疑惑可以回復(fù)我~
#2

YGT9865 回復(fù) Fishzz 提問(wèn)者

我的想法是,動(dòng)作一和....時(shí)完成.按照你這段話來(lái)說(shuō),其實(shí)你的邏輯是有問(wèn)題的,動(dòng)作三和動(dòng)作二既然是同時(shí)開(kāi)始的,為什么不能通過(guò)鏈?zhǔn)交卣{(diào)函數(shù)來(lái)執(zhí)行,為什么要放在一開(kāi)始就執(zhí)行呢?
2018-08-13 回復(fù) 有任何疑惑可以回復(fù)我~
#3

YGT9865 回復(fù) Fishzz 提問(wèn)者

從你這段時(shí)間軸上看到了前后矛盾 1、高度和寬度同時(shí)執(zhí)行,當(dāng)高度和寬度完成了再執(zhí)行透明度的變化。 2、高度和寬度同時(shí)執(zhí)行,高度執(zhí)行完畢,寬度執(zhí)行一半后執(zhí)行透明度變化。 3、高度和寬度同時(shí)執(zhí)行,當(dāng)高度執(zhí)行完畢,寬度和透明度再執(zhí)行。 4、高度和寬度同時(shí)執(zhí)行,當(dāng)寬度執(zhí)行完畢,高度和透明度再執(zhí)行。 我從你的描述中看出了好幾種意思,首先你的邏輯就存在錯(cuò)誤。按照你在時(shí)間軸上的描述,你可以先設(shè)置高度和一半的寬度變化,當(dāng)3s到了之后,再執(zhí)行另外一半寬度和透明度的變化,至于3s到了停止高度的變化,你可以計(jì)算的,通過(guò)計(jì)算控制運(yùn)動(dòng)的時(shí)間
2018-08-13 回復(fù) 有任何疑惑可以回復(fù)我~
#4

Fishzz 提問(wèn)者 回復(fù) YGT9865

你的意思我理解,就是把較長(zhǎng)的動(dòng)畫(huà)分解成兩個(gè)部分,然后分別和其他兩個(gè)不同的動(dòng)畫(huà)同時(shí)執(zhí)行.前后之間采用鏈?zhǔn)?但是這不是我想要的,我想要的是設(shè)計(jì)的函數(shù)框架就能實(shí)現(xiàn)這個(gè)功能
2018-08-19 回復(fù) 有任何疑惑可以回復(fù)我~
查看1條回復(fù)

舉報(bào)

0/150
提交
取消
JS動(dòng)畫(huà)效果
  • 參與學(xué)習(xí)       113920    人
  • 解答問(wèn)題       1487    個(gè)

通過(guò)本課程JS動(dòng)畫(huà)的學(xué)習(xí),從簡(jiǎn)單動(dòng)畫(huà)開(kāi)始,逐步深入各種動(dòng)畫(huà)框架封裝

進(jìn)入課程

關(guān)于鏈?zhǔn)胶投鄬傩赃\(yùn)動(dòng)的另一種情況

我要回答 關(guān)注問(wèn)題
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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