亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

沒有用node環境 直接用的js 只有第一個小球動了 好像是 。then沒有執行 這個是必須node環境才可以嗎

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>氣球動畫</title>

<style>

.ball { width:40px; height: 40px; margin:5px; border-radius: 20px; }

.ball1 { background: red; }

.ball2 { background: yellow; }

.ball3 { background: green; }

</style>

<script src="bluebird.min.js"></script>

</head>

<body>

<div class="ball ball1"></div>

<div class="ball ball2"></div>

<div class="ball ball3"></div>


<script>

let ball1 = document.querySelector('.ball1');

let ball2 = document.querySelector('.ball2');

let ball3 = document.querySelector('.ball3');


function _getComputedStyle(element, prop) {


? ? var computedStyle;


? ? if (typeof window.getComputedStyle === 'function') { //normal browsers

? ? ? ? computedStyle = window.getComputedStyle(element);

? ? } else if (typeof document.currentStyle !== undefined) { //shitty browsers

? ? ? ? computedStyle = element.currentStyle;

? ? } else {

? ? ? ? computedStyle = element.style;

? ? }


? ? if (prop) {

? ? ? ? return computedStyle[prop];

? ? } else {

? ? ? ? return computedStyle;

? ? }

}


// function animate(ball,distance,cb){

// setTimeout(function(){

// if(!ball.style.marginLeft){

// ball.style.marginLeft = _getComputedStyle(ball,'marginLeft')

// }

// let marginLeft = parseInt(ball.style.marginLeft,10)

// if(marginLeft === distance){

// cb && cb()

// }else{

// if(marginLeft < distance){

// marginLeft++

// }else{

// marginLeft--

// }

// ball.style.marginLeft = marginLeft + 'px'

// animate(ball,distance,cb)

// }

// },13);

// }


// animate(ball1,100,function(){

// animate(ball2,200,function(){

// animate(ball3,300,function(){

// animate(ball3,150,function(){

// animate(ball2,150,function(){

// animate(ball1,150,function(){

// console.log('動了')

// })

// })

// })

// })

// })

// })


var Promise = window.Promise

function promiseAnimate(ball,distance){

return new Promise(function(resolve,reject){

function _animate(){

setTimeout(function(){

if(!ball.style.marginLeft){

ball.style.marginLeft = _getComputedStyle(ball,'marginLeft')

}

let marginLeft = parseInt(ball.style.marginLeft,10)

if(marginLeft === distance){

resolve

}else{

if(marginLeft < distance){

marginLeft++

}else{

marginLeft--

}

ball.style.marginLeft = marginLeft + 'px'

_animate()

}

},13);

}

_animate()

})

}

promiseAnimate(ball1,100)

.then(function(){

return promiseAnimate(ball2,200)

})

.then(function(){

return promiseAnimate(ball3,300)

})

.then(function(){

return promiseAnimate(ball3,150)

})

.then(function(){

return promiseAnimate(ball2,150)

})

.then(function(){

return promiseAnimate(ball1,150)

})

</script>

</body>

</html>


正在回答

1 回答

是resolve() ?要加()的

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
進擊Node.js基礎(二)
  • 參與學習       76735    人
  • 解答問題       242    個

本教程帶你攻破 Nodejs,讓 JavaScript流暢運行在服務器端

進入課程

沒有用node環境 直接用的js 只有第一個小球動了 好像是 。then沒有執行 這個是必須node環境才可以嗎

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號