課程
/前端開(kāi)發(fā)
/JavaScript
/JS動(dòng)畫(huà)效果
這個(gè)不能鏈?zhǔn)竭\(yùn)動(dòng)嗎,求解決
2016-01-03
源自:JS動(dòng)畫(huà)效果 6-2
正在回答
可以理解為,一個(gè)商品只能一個(gè)供應(yīng)商提供,實(shí)際中也是這樣。一對(duì)多關(guān)系,兩張表搞定如果for哪里沒(méi)有通過(guò),那for語(yǔ)句不就直接被忽略了嗎?
我覺(jué)得:代碼應(yīng)該修改成 介樣:
function startMove(obj, json, fn) { ? ?clearInterval(obj.timer); ? ?obj.timer = setInterval(function() { ? ? ? ?for(var attr in json) { ? ? ? ? ? ?var flag = true; ? ? ? ? ? ?//1.取當(dāng)前的值 ? ? ? ? ? ?var icur = 0; ? ? ? ? ? ?if(attr == 'opacity') { ? ? ? ? ? ? ? ?icur = Math.round(parseFloat(getStyle(obj, attr))*100); ? ? ? ? ? ?} else { ? ? ? ? ? ? ? ?icur = parseInt(getStyle(obj, attr)); ? ? ? ? ? ?} ? ? ? ? ? ?//2.計(jì)算速度 ? ? ? ? ? ?var speed = (json[attr] - icur) / 10; ? ? ? ? ? ?speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); ? ? ? ? ? ?//3.檢測(cè)停止 ? ? ? ? ? ?if(icur != json[attr]) { ? ? ? ? ? ? ? ?flag = false; ? ? ? ? ? ?} ? ? ? ? ? ?if(attr == 'opacity') { ? ? ? ? ? ? ? ?obj.style.filter = 'alpha(opacity:' + (icur + speed) + ')'; ? ? ? ? ? ? ? ?obj.style.opacity = (icur + speed) / 100; ? ? ? ? ? ?} else { ? ? ? ? ? ? ? ?obj.style[attr] = icur + speed + 'px'; ? ? ? ? ? ?} ? ? ? ?} ? ? ? ?if(flag) { ? ? ? ? ? ?clearInterval(obj.timer); ? ? ? ? ? ?if(fn) { ? ? ? ? ? ? ? ?fn(); ? ? ? ? ? ?} ? ? ? ?} ? ?}, 30);}
如果把各個(gè)屬性拆分開(kāi)來(lái),就能看出每個(gè)屬性,不管大小,如果同時(shí)遍歷的,只需要回調(diào)。
第一: 你的flag標(biāo)桿不能和老師一樣放在For in上面?zhèn)€,應(yīng)該包裹起來(lái)。
第二: ?你的This指針問(wèn)題。
慕仙5196886
未加回調(diào)函數(shù)
popping小泓 提問(wèn)者
如果這個(gè)完美運(yùn)動(dòng)要達(dá)到鏈?zhǔn)竭\(yùn)動(dòng)效果;要在老師的代碼中的 ? ?if (icur !== json[attr]) { ? ?flag=false;}
后面加上 ? ?else{flag=ture};
這樣才算真真完成了整個(gè)框架;;可能老師忘了這個(gè)問(wèn)題吧
舉報(bào)
通過(guò)本課程JS動(dòng)畫(huà)的學(xué)習(xí),從簡(jiǎn)單動(dòng)畫(huà)開(kāi)始,逐步深入各種動(dòng)畫(huà)框架封裝
8 回答完美運(yùn)動(dòng)框架,不能實(shí)現(xiàn)鏈?zhǔn)竭\(yùn)動(dòng)哇!
8 回答鏈?zhǔn)降倪\(yùn)動(dòng)不了
1 回答求助:為啥只能執(zhí)行單個(gè)運(yùn)動(dòng),不能執(zhí)行鏈?zhǔn)竭\(yùn)動(dòng)
3 回答為什么我的不能進(jìn)行鏈?zhǔn)竭\(yùn)動(dòng)
2 回答加了flag判斷后,不能執(zhí)行鏈?zhǔn)竭\(yùn)動(dòng)了 ?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2022-03-27
可以理解為,一個(gè)商品只能一個(gè)供應(yīng)商提供,實(shí)際中也是這樣。一對(duì)多關(guān)系,兩張表搞定如果for哪里沒(méi)有通過(guò),那for語(yǔ)句不就直接被忽略了嗎?
2016-01-23
我覺(jué)得:代碼應(yīng)該修改成 介樣:
function startMove(obj, json, fn) {
? ?clearInterval(obj.timer);
? ?obj.timer = setInterval(function() {
? ? ? ?for(var attr in json) {
? ? ? ? ? ?var flag = true;
? ? ? ? ? ?//1.取當(dāng)前的值
? ? ? ? ? ?var icur = 0;
? ? ? ? ? ?if(attr == 'opacity') {
? ? ? ? ? ? ? ?icur = Math.round(parseFloat(getStyle(obj, attr))*100);
? ? ? ? ? ?} else {
? ? ? ? ? ? ? ?icur = parseInt(getStyle(obj, attr));
? ? ? ? ? ?}
? ? ? ? ? ?//2.計(jì)算速度
? ? ? ? ? ?var speed = (json[attr] - icur) / 10;
? ? ? ? ? ?speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
? ? ? ? ? ?//3.檢測(cè)停止
? ? ? ? ? ?if(icur != json[attr]) {
? ? ? ? ? ? ? ?flag = false;
? ? ? ? ? ?}
? ? ? ? ? ?if(attr == 'opacity') {
? ? ? ? ? ? ? ?obj.style.filter = 'alpha(opacity:' + (icur + speed) + ')';
? ? ? ? ? ? ? ?obj.style.opacity = (icur + speed) / 100;
? ? ? ? ? ?} else {
? ? ? ? ? ? ? ?obj.style[attr] = icur + speed + 'px';
? ? ? ? ? ?}
? ? ? ?}
? ? ? ?if(flag) {
? ? ? ? ? ?clearInterval(obj.timer);
? ? ? ? ? ?if(fn) {
? ? ? ? ? ? ? ?fn();
? ? ? ? ? ?}
? ? ? ?}
? ?}, 30);
}
2016-01-08
如果把各個(gè)屬性拆分開(kāi)來(lái),就能看出每個(gè)屬性,不管大小,如果同時(shí)遍歷的,只需要回調(diào)。
2016-01-08
第一: 你的flag標(biāo)桿不能和老師一樣放在For in上面?zhèn)€,應(yīng)該包裹起來(lái)。
第二: ?你的This指針問(wèn)題。
2016-01-03
未加回調(diào)函數(shù)
2016-01-03
如果這個(gè)完美運(yùn)動(dòng)要達(dá)到鏈?zhǔn)竭\(yùn)動(dòng)效果;要在老師的代碼中的 ? ?if (icur !== json[attr]) {
? ?flag=false;
}
后面加上 ? ?else{flag=ture};
這樣才算真真完成了整個(gè)框架;;可能老師忘了這個(gè)問(wèn)題吧