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