国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - js教程 - JS實現紙牌發牌動畫

JS實現紙牌發牌動畫

2022-01-04 16:37計算機的皇帝 js教程

這篇文章主要為大家詳細介紹了JS實現紙牌發牌動畫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了JS實現紙牌發牌動畫的具體代碼,供大家參考,具體內容如下

先看演示

JS實現紙牌發牌動畫

JS實現紙牌發牌動畫

游戲構建準備

1.準備52張紙牌
2.一張桌布
3.編輯工具為 Visual Code

技術概要

1.對象操作
2.數據操作
3.JS animation動畫
4.全局變量

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function desen_x(){
 let that = this;
 var desen=["h_1","h_2","h_3","h_4","h_5","h_6","h_7","h_8",
 "h_9","h_10","h_11","h_12","h_13","p_1","p_2","p_3","p_4"
 ,"p_5","p_6","p_7","p_8","p_9","p_10","p_11","p_12","p_13"
 ,"t_1","t_2","t_3","t_4","t_5","t_6","t_7","t_8","t_9","t_10"
 ,"t_11","t_12","t_13","x_1","x_2","x_3","x_4","x_5","x_6","x_7"
 ,"x_8","x_9","x_10","x_11","x_12","x_13"];
 //將你的撲克前戳名全部存儲到數組中
 var Obj = new Object(); //新建一個對象
 var array=[];//空數組一個
 for(var i=0;i<4;i++){//游戲演示里只需要發4張撲克,所以只要<4
   var x=Math.round(Math.random()*52);//隨機數取整*52
   Obj[i]=x;//存入到全局變量中 否則每次只能存一個數值
 }
 console.log(Obj);//打印對象看看是不是4個對象
 window.array=[desen[Obj[0]],desen[Obj[1]],desen[Obj[2]],desen[Obj[3]]];
 //將存好的數組 帶入撲克全局
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function send_poker(){ //該方法是發牌事件
 console.log(window.array);
 //測試你的全局變量是否正常
 //并且將傳遞的全局變量帶入temp[]
 var temp=[window.array[0],window.array[1],window.array[2],window.array[3]];
 var ti=0;
 var iamges="../poker/"+temp+".png";//這是圖片的默認路徑 +你的 desen
 var creator=document.getElementById("d_back"); //取得操作的dom父元素
 var po_1=document.createElement("div");//虛擬生成div
 var num = 0;       //初始化變量
 //po_1.src="../h_1.png";
 //img_1.scr="../images/poker/h_1.png";
 
 for(var i=0;i<temp.length;i++){//循環temp
  var that=this;
  var img_1=document.createElement("img");
  img_1.src+="./images/poker/"+temp[i]+".png";//對創建的img賦值可變的路徑
   console.log("等于0時");
  var ten=10;
  img_1.className="poker_float";//為其指定一個類,也就是默認的初始發牌位置
  
  
  creator.appendChild(img_1);//生成對象
   
  
  //"../images/poker/"+temp.i+".png";
  
 }
 
 
  move_poker();//該方法是自封裝的動畫
  
}

動畫事件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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封裝

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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++;
 }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/qq_20144597/article/details/112761171

延伸 · 閱讀

精彩推薦
  • js教程前端開發之JS中編寫For循環的方法

    前端開發之JS中編寫For循環的方法

    這些年來,JavaScript 發展得如此之快。如果你之前有其他編程語言經驗的話,你可能無法相信在 JavaScript 中有4種方法可以編寫for 循環。...

    清閑的帆船先生8922021-12-24
  • js教程原生JS實現京東查看商品點擊放大

    原生JS實現京東查看商品點擊放大

    這篇文章主要為大家詳細介紹了原生JS實現京東查看商品點擊放大,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    A.香辣雞腿堡7202021-12-15
  • js教程JS實現紙牌發牌動畫

    JS實現紙牌發牌動畫

    這篇文章主要為大家詳細介紹了JS實現紙牌發牌動畫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    計算機的皇帝5172022-01-04
  • js教程js動態生成表格(節點操作)

    js動態生成表格(節點操作)

    這篇文章主要為大家詳細介紹了js動態生成表格,進行節點操作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    劉劉劉code3442021-12-30
  • js教程JavaScript 中的六種循環方法

    JavaScript 中的六種循環方法

    這篇文章主要介紹了JavaScript 中的六種循環方法,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下...

    Saku8522021-12-27
  • js教程詳解ES6 中的Object.assign()的用法實例代碼

    詳解ES6 中的Object.assign()的用法實例代碼

    這篇文章主要介紹了ES6 Object.assign()的用法及用途,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下...

    半夏遮流年シ11372021-12-30
  • js教程五種使 JavaScript 代碼庫更干凈的方法

    五種使 JavaScript 代碼庫更干凈的方法

    今天向大家介紹5種使JavaScript代碼庫更干凈的方法,一起來看一下都有哪些吧!...

    Mason程10572021-12-29
  • js教程JS實現選項卡插件的兩種寫法(jQuery和class)

    JS實現選項卡插件的兩種寫法(jQuery和class)

    這篇文章主要為大家詳細介紹了JS實現選項卡插件的兩種寫法:jQuery和class,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參...

    南柯Seven11972021-12-22
主站蜘蛛池模板: 国产精品亲子伦av一区二区三区 | 四虎影视最新免费版 | 黄色一级毛片在线观看 | 成人久久久久爱 | 91中文在线观看 | 黄色一级视频 | 成人免费在线观看视频 | 国产视频www | 国产精品大片 | 亚洲免费av在线 | 国产欧美日韩 | 日韩欧美高清视频 | 午夜tv| 亚洲精品一区二区三区精华液 | 大象一区 | 国产精品高潮呻吟久久 | 日韩欧美在线一区二区 | 国产中文视频 | h视频在线免费观看 | 亚洲精品一区二区三区在线 | 国产一级二级毛片 | 91精品国产乱码久久久久久 | 免费羞羞视频网站 | 久久久久久国产精品 | 国产欧美精品一区二区 | 三级黄色片在线观看 | 国产精品久久久久久婷婷天堂 | 欧美国产精品一区二区三区 | av免费观看网站 | 欧美专区在线 | 黄色片网站在线 | 日韩中文字幕在线视频 | 自拍偷拍欧美 | 日韩有码视频在线 | 麻豆国产免费 | 精品国产青草久久久久福利 | 希岛爱理一区二区三区av高清 | 国产精品久久天天躁 | a久久久 | 99r在线| 精品国产青草久久久久福利 |