當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JS写纸牌发牌和动画(详细解剖)
生活随笔
收集整理的這篇文章主要介紹了
JS写纸牌发牌和动画(详细解剖)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
先看演示
游戲構建準備
1.準備52張紙牌
2.一張桌布
3.編輯工具為 Visual Code
技術概要
1.對象操作
2.數據操作
3.JS animation動畫
4.全局變量
動畫事件
function move_poker(){ //移動撲克var node = document.getElementById("d_back").childNodes;//獲取父元素下的所有子節點console.log(node);//打印出有多少var n5=node[9];//以要操作的 img對象類為 9開始操作var n6=node[10];var n7=node[11];var n8=node[12];var popo=anime({//animation動畫可在最后查看targets: n5, //操作的對象translateX:-150, //移動到的橫向位置translateY: -250,//移動到的縱向位置easing: 'easeInOutQuad',//緩動,不更改css機制duration:100,//完成時間});var popo1= anime({targets: n6,translateX:-100,translateY: -250,easing: 'easeInOutQuad',duration:200,});var popo2=anime({targets: n7,translateX:-50,translateY: -250,easing: 'easeInOutQuad',duration:300,});var popo3= anime({targets: n8,translateX:0,translateY: -250,easing: 'easeInOutQuad',duration:400,}); } function gui(){ //GUI 是將所有節點復位,方便下次發牌var node = document.getElementById("d_back").childNodes;var n5=node[9];var n6=node[10];var n7=node[11];var n8=node[12];var popo4=anime({targets: [n5,n6,n7,n8],translateX:0,translateY: 0,})node.removeChild(popo4); }animation封裝
function setAnimationsProgress(insTime) { //該方法有多個dom時,則執行異或異步線程模式進行var i = 0;var animations = instance.animations;var animationsLength = animations.length; while (i < animationsLength) { var anim = animations[i];var animatable = anim.animatable;var tweens = anim.tweens;var tweenLength = tweens.length - 1;var tween = tweens[tweenLength];if (tweenLength) { tween = filterArray(tweens, function (t) { return (insTime < t.end); })[0] || tween; } var elapsed = minMax(insTime - tween.start - tween.delay, 0, tween.duration) / tween.duration;var eased = isNaN(elapsed) ? 1 : tween.easing(elapsed);var strings = tween.to.strings;var round = tween.round;var numbers = [];var toNumbersLength = tween.to.numbers.length;var progress = (void 0);for (var n = 0; n < toNumbersLength; n++) {var value = (void 0);var toNumber = tween.to.numbers[n];var fromNumber = tween.from.numbers[n] || 0;if (!tween.isPath) {value = fromNumber + (eased * (toNumber - fromNumber));} else {value = getPathProgress(tween.value, eased * toNumber);}if (round) {if (!(tween.isColor && n > 2)) {value = Math.round(value * round) / round;}}numbers.push(value);}var stringsLength = strings.length;if (!stringsLength) {progress = numbers[0];} else {progress = strings[0];for (var s = 0; s < stringsLength; s++) {var a = strings[s];var b = strings[s + 1];var n$1 = numbers[s];if (!isNaN(n$1)) {if (!b) {progress += n$1 + ' ';} else {progress += n$1 + b;}}}}setProgressValue[anim.type](animatable.target, anim.property, progress, animatable.transforms);anim.currentValue = progress;i++;}}總結
以上是生活随笔為你收集整理的JS写纸牌发牌和动画(详细解剖)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++学习之路 | PTA(甲级)——
- 下一篇: omv检查硬盘坏道_坏道检测与修复