日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

用原生JS写一个网页版的2048小游戏(兼容移动端)

發布時間:2023/12/20 javascript 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用原生JS写一个网页版的2048小游戏(兼容移动端) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?這個游戲JS部分全都是用原生JS代碼寫的,加有少量的CSS3動畫,并簡單的兼容了一下移動端。

先看一下在線的demo:https://yuan-yiming.github.io/2048-online-game/

github地址:https://github.com/Yuan-Yiming/2048-online-game

?

?====================================================================

?

下面簡單分析一下JS代碼:

1.游戲中包含的主要事件:

new?game按鈕的click事件:點擊后重新開始一次新的游戲;

game?over后重新開始按鈕的click事件:點擊后重新開始一次新的游戲;

桌面端鍵盤上的方向鍵keydown的事件:按下方向鍵后數字會向相應的方向移動;

移動端的touch事件:通過計算touchstart和touchend的坐標變化,判斷手指在移動端屏幕的滑動方向;

?

2.業務邏輯

2.1 重新開始一次游戲:

需要清空游戲盤,并且隨機給一個格子生成一個數字2,每次生成不同數字都會給格子配相應的背景顏色;

2.2?按下方向盤或滑動屏幕時格子移動情況(核心部分

游戲面板有4 x 4的格子,遍歷每一行的每一個格子,若為空格則不作處理,非空格則要判斷其下一步(注意每次只判斷一步的動作,方法howToGo())的運動情況,即:

a:空格,不作處理

b:非空格,進一步判斷下一步動作,有3種情況

  b1:若需要移動的格子前面是沒有數字的空格,則格子往前移動一個,即將數字插入到前面格子內,原本格子中的數字銷毀,然后從b開始循環再次判斷;

  b2:若需要移動的格子前面不是空格,且與前面格子包含的數字不相等,則格子無需移動,該格子運動判斷完畢,進行下一個格子的運動判斷;

  b3:若需要移動的格子前面不是空格,且與前面格子包含的數字相等,則將前面格子內的數字 x 2,原本格子中的數字銷毀,該格子運動判斷完畢,進行下一個格子的運動判斷;

注意:由于是每次運動都是由運動方向的最前面格子開始運動的,即b2,b3兩種情況碰到前面有格子時,說明前面的格子已經完成運動,前面沒有空位了,所以當前格子運動完成,繼續移動后面的格子。

?

以下使用圖片來說明格子運動的情況:

上面有兩行格子,如果是向左運動,首先遍歷第1行,對1~4號格子依次判斷其運動情況,首先1號格子先運動,由于是1號格子靠邊,可認為其前面是包含不同數字的格子,運動情況為b2,無需運動;2號格子為空格,運動情況為a;3號格子前面為空格,首先運動情況為b1,運動后3號格子的數字插到2號格子,3號格子數字銷毀成為空格,然后需要對2號格子再次判斷,再進行一次運動,即b3,使得1號格子數字變成4,2號格子成為空格;后面4號格子為空格不作處理。遍歷第2行,對5~8號格子依次判斷其運動情況,5號格子與1號格子情況相同,6、7、8號格子為空格,無需處理。

向左運動后的格子:

?

如果是向右運動,遍歷第1行要從右邊開始,4~1號格子依次運動,首先4號格子空格無需處理;然后3號格子運動情況b1,向前移動一格,數字2插入到4號格子內;2號空格無需處理;1號空格先連續進行兩次b1運動,再進行一次b3運動,碰到4號格子內數字相同,最終使得4號格子內數字變成4。遍歷第2行,8~5號格子依次運動,8、7、6號為空格均無需處理,5號格子連續3次b1運動,使得8號格子內數字變成2

向右運動后的格子:

?

向上或者向下運動同理。

?

=====================================================================

?

下面廢話不說,直接上代碼。

HTML代碼:index.html

<!DOCTYPE html> <html> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><title>Play 2048 Game Online!</title><link rel="stylesheet" type="text/css" href="desktop.css"><link media="(max-width: 860px)" rel="stylesheet" type="text/css" href="mobile.css"><link rel="icon" href="icon.png"> </head> <body><!-- <div class="github"><a href="https://www.baidu.com"></a></div> --><div class="wrapper"><div class="header"><div class="title"><strong>2048</strong></div><div class="slogan"><p>Play 2048 Game Online!</p></div><div class="score"><span>Score</span><br><span class="number">0</span><span class="score-animation">+12</span></div><div class="best"><span>Best</span><br><span class="number">1024</span><span class="best-animation">+12</span></div><div class="new-game"><span>New Game</span></div></div><div class="game-board"><div class="grid grid-11 row1 col1"><span></span></div><div class="grid grid-12 row1 col2"><span></span></div><div class="grid grid-13 row1 col3"><span></span></div><div class="grid grid-14 row1 col4"><span></span></div><div class="grid grid-21 row2 col1"><span></span></div><div class="grid grid-22 row2 col2"><span></span></div><div class="grid grid-23 row2 col3"><span></span></div><div class="grid grid-24 row2 col4"><span></span></div><div class="grid grid-31 row3 col1"><span></span></div><div class="grid grid-32 row3 col2"><span></span></div><div class="grid grid-33 row3 col3"><span></span></div><div class="grid grid-34 row3 col4"><span></span></div><div class="grid grid-41 row4 col1"><span></span></div><div class="grid grid-42 row4 col2"><span></span></div><div class="grid grid-43 row4 col3"><span></span></div><div class="grid grid-44 row4 col4"><span></span></div></div><div class="popup"><div class="game-over"><p>Game is over...</p><p class="try-again">Try again?</p></div><div class="win"><p>You win the game!! </p><p>Congratulation!!</p><p class="try-again">Try again?</p></div></div></div><script type="text/javascript" src="2048.js"></script></body> </html>

  

CSS桌面版代碼:desktop.css

* {list-style: none;color: #8f7a66;padding: 0;margin: 0;box-sizing: border-box; } body {background-color: #ffffe0; }.wrapper {position: relative;width: 400px;height: 540px;/*border: 1px solid red;*/margin: 0 auto; } /*頭部*/ .header {width: 400px;height: 140px;/*border: 1px solid green;*/position: relative;/*opacity: 0.4;*/ } .title, .slogan, .score, .best, .new-game, .github>a {position: absolute; } .title strong {display: inline-block;width: 260px;height: 100px;font-size: 78px;line-height: 100px;/*text-align: center;*/padding: 0 5px;/*border: 1px solid black;*/ } .slogan {padding: 0 5px;top: 85px;/*border: 1px solid black;*/ } .github>a {display: inline-block;width: 50px;height: 50px;/*border: 1px solid red;*/top: 8%;right: 5%;/*margin: 5px;*/background: url("Git.png") no-repeat 0 0;border-radius: 50%;background-size: 100%; } .github>span>span {display: inline-block;width: 100px;height: 16px;line-height: 16px;position: absolute;bottom: -24px;left: -25px;text-align: center;color: #2c2c2c; }/*分數*//* 分數動畫 */ .score-animation, .best-animation{display: none;position: absolute;top: 25px;left: 10px;width: 65px;height: 30px;font-size: 24px;font-weight: bold; } .score {left: 220px; } .best {left: 315px; } .score, .best {position: absolute;width: 85px;height: 60px;line-height: 28px;top: 20px;background-color: #bbada0; } .score span, .best span, .new-game span {color: #ffffff; } .score, .best, .new-game, .game-board, .grid {text-align: center;border-radius: 5px; } .best .number, .score .number, .new-game {font-size: 22px;font-weight: bold; } .new-game {width: 180px;height: 40px;line-height: 40px;left: 220px;top: 90px;text-align: center;background-color: #8e7963;cursor: pointer; } .new-game:hover {width: 182px;height: 42px;line-height: 42px;left: 219px;top: 89px;font-size: 24px; }/*游戲主面板*/ .game-board {width: 400px;height: 400px;padding: 5px 5px;background-color: #bbada0;/*opacity: 0.4;*/ } .grid {position: relative;float: left;width: 87.5px;height: 87.5px;line-height: 87.5px;/*font-size: 48px;*/font-weight: bold;margin: 5px;background-color: #b0c4de; } .game-board .grid span {/*color: */} /*game over or win the game彈出頁面*/ .popup .game-over, .popup .win {position: absolute;left: 60px;text-align: center;width: 280px;height: 160px;border-radius: 5px;/*border: 1px solid red;*/opacity: 1.0; } .popup p {color: #8f7a66; } .popup .game-over {display: none;top: 230px;font-size: 36px;font-weight: bold; }.popup .win {display: none;top: 220px;font-size: 28px;font-weight: bold; }p.try-again {color: #fff;font-size: 22px;width: 150px;height: 50px;line-height: 50px;border-radius: 5px;margin: 0 auto;background-color: #8f7a66;cursor: pointer; } .header, .game-board {/*opacity: 0.4;*/ }.new-grid {background-color: #b0c4de !important; }/* 生成新格子動畫 */ @keyframes tempgrid {from {width: 45px; height: 45px; top: 24px;left: 24px; font-size: 18px; line-height: 45px;display: block;}to {width: 87.5px; height: 87.5px; top: 0px;left: 0px; font-size: 48px; line-height: 87.5px;display: none;} } @-webkit-keyframes tempgrid {from {width: 45px; height: 45px; top: 24px;left: 24px; font-size: 18px; line-height: 45px;display: block;}to {width: 87.5px; height: 87.5px; top: 0px;left: 0px; font-size: 48px; line-height: 87.5px;display: none;} } @-moz-keyframes tempgrid {from {width: 45px; height: 45px; top: 24px;left: 24px; font-size: 18px; line-height: 45px;display: block;}to {width: 87.5px; height: 87.5px; top: 0px;left: 0px; font-size: 48px; line-height: 87.5px;display: none;} } .temp-grid {animation: tempgrid 0.15s ease-in forwards;-webkit-animation: tempgrid 0.15s ease-in forwards;-ms-animation: tempgrid 0.15s ease-out forwards;-moz-animation: tempgrid 0.15s ease-out forwards; }

  

CSS移動端兼容代碼:mobile.css

body {background-color: #fffadd; }.wrapper {width: 100%;/*height: 540px;*//*border: 1px solid red;*//*margin: 0 auto;*/ }/*頭部*/ .header {width: 100%;/*height: 140px;*/position: relative; } .title, .slogan, .score, .best, .new-game {position: absolute;float: left;text-align: center; }.title, .slogan {width: 100%;}.title strong {display: inline-block;width: 100%;/*height: 260px;*/font-size: 487%; /* 100% 16px *//*line-height: 192%;*/text-align: center;/*padding: 0 5px;*//*border: 1px solid black;*/ } .slogan {/*margin-top: 10px;*/top: 65%; }/* github */ /*.github>a {top: 4%;right: 6.25%; }*//*分數*/ .score, .best, .new-game {width: 25%;/*border: 1px solid green;*/ }/* 分數動畫 */ .score-animation, .best-animation{display: none;/*position: absolute;*/top: 25px;left: 10px;width: 65px;height: 30px;font-size: 24px;font-weight: bold; }.score, .best {/*position: absolute;*/line-height: 28px;top: 90%;background-color: #bbada0; } .score {left: 47.5%; } .best {left: 75%; } .new-game {width: 45%;height: 60px;line-height: 60px;left: 0;top: 90%;text-align: center;background-color: #8e7963;cursor: pointer;/*padding-bottom: 2em;*/font-size: 28px; } .new-game:hover {width: 45%;/*height: 42px;*//*line-height: 42px;*/height: 60px;line-height: 60px;left: 0;top: 90%;/*line-height: 2e;*/font-size: 28px; }.score span, .best span, .new-game span {color: #ffffff; } .score, .best, .new-game, .game-board, .grid {text-align: center;border-radius: 5px; } .best .number, .score .number {font-size: 22px;font-weight: bold; }/*游戲主面板*/ .game-board {position: absolute;/*display: none;*/width: 100%;height: auto;/*height: 400px;*//*padding: 10px 10px;*/background-color: #bbada0;/*opacity: 0.4;*/top: 36%; } .grid {/*position: relative;*/float: left;width: 22%;/*height: *//*padding-bottom: 21.95%;*//*height: 100%;*/line-height: 80px;/*font-size: 48px;*/font-weight: bold;/*padding-bottom: 410px;*/padding: 1.5%;background-color: #b0c4de; }/* 生成新格子動畫 */ @keyframes tempgrid {from {width: 50%; height: 50%; top: 25%;left: 25%; font-size: 24px; line-height: 192%;display: block;}to {width: 100%; height: 100%; top: 0px;left: 0px; font-size: 48px; line-height: 192%;display: none;} } @-webkit-keyframes tempgrid {from {width: 50%; height: 50%; top: 25%;left: 25%; font-size: 24px; line-height: 192%;display: block;}to {width: 100%; height: 100%; top: 0px;left: 0px; font-size: 48px; line-height: 192%;display: none;} } @-moz-keyframes tempgrid {from {width: 50%; height: 50%; top: 25%;left: 25%; font-size: 24px; line-height: 192%;display: block;}to {width: 100%; height: 100%; top: 0px;left: 0px; font-size: 48px; line-height: 192%;display: none;} }

  

js代碼:2048.js

// 頁面加載時 window.onload = function () {// var temp = tempGrid(2);giveNumber(2);newGameBotton();getReady();backgroundColorToNumber();scaleWidth();touch(); }// 在移動端使得格子寬高比例1:1 function scaleWidth() {// 獲取格子的寬度var grid = document.getElementsByClassName("grid"),width = window.getComputedStyle(grid[0], null)["width"];// width = grid[0].style.width;//給格子高度賦值for (var i = 0; i < 16; i++) {grid[i].style.height = width;} }// 創建一個臨時的格子 function createTempGrid(num) {var temp = document.createElement("div");temp.innerHTML = "<span>" + num + "</span>"; temp.style.position = "absolute";temp.style.backgroundColor = "#fff8dc";temp.style.width = "87.5px";temp.style.height = "87.5px";temp.style.lineHeight = "87.5px";temp.style.fontWeight = "bold";temp.style.fontSize = "48px";temp.style.borderRadius = "5px";temp.style.top = "0";temp.style.left = "0";// temp.style.display = "none";// console.log(temp);temp.classList.add("temp-grid");return temp;};// 刪除臨時格子 function deleteTempGrid() {var temp = document.getElementsByClassName("temp-grid");for (var i = 0; i < temp.length; i ++) {temp[i].remove();}var newGrid = document.getElementsByClassName("new-grid");// console.log(newGrid);if (newGrid) {// console.log(newGrid.length);for (var i = 0; i < newGrid.length; i ++) {newGrid[i].classList.remove("new-grid");// console.log(newGrid.length);}} }// giveNumber:隨機生成一個空格子,每個空格子里面放一個數字num function giveNumber(num) {// console.log("give!!!!");var x, y, newGrid, tempGrid;tempGrid = createTempGrid(num);while (true) {// if (tempGrid && tempGrid.parentElement) {// tempGrid.parentElement.removeChild(tempGrid);// }x = Math.floor(Math.random() * 4) + 1;y = Math.floor(Math.random() * 4) + 1;newGrid = document.getElementsByClassName("grid-" + x + y)[0];// newGrid.style.backgroundColor = "#b0c4de";if (newGrid.innerHTML == "<span></span>") {newGrid.classList.add("new-grid");newGrid.innerHTML = "<span>" + num + "</span>";newGrid.appendChild(tempGrid);break;}}// return blankGrid; }// clearGrid:清空格子及分數歸零 function clearGrid() {var grid = document.getElementsByClassName("grid"),score = document.getElementsByClassName("score")[0].children[2];score.innerText = "0";for (var i = 0; i < grid.length; i ++) {grid[i].innerHTML = "<span></span>";// grid[i].style.backgroundColor = "#b0c4de";}backgroundColorToNumber(); }// 重新開始一次游戲 function newGame() {clearGrid();giveNumber(2);backgroundColorToNumber();return true; }// 觸發新一次游戲的按鈕 function newGameBotton() {var newGameBtn = document.getElementsByClassName("new-game")[0];newGameBtn.addEventListener("click", function () {newGame(); }, false); newGameBtn.addEventListener("touchend", function () {newGame();}, false); }// backgroundColorToNumber:數字跟背景顏色/數字大小對應 function backgroundColorToNumber() {var gridNum,// child,grid = document.getElementsByClassName("grid");for (var i = 0; i < grid.length; i ++) {gridNum = getGridNum(grid[i]);// child = grid[i].children[0];grid[i].style.fontSize = "48px";// if ((" " + grid[i].className + " ").indexOf(" " + "new-grid" + " ") == -1) {switch (gridNum) {case 2:grid[i].style.backgroundColor = "#fff8dc";// grid[i].children[0].style.color = "#fff"; // 這句代碼會使得頁面癱瘓!!break;case 4:grid[i].style.backgroundColor = "#e9967a";// grid[i].children[0].style.color = "#8f7a66"; break;case 8:grid[i].style.backgroundColor = "#FFA07A";break;case 16:grid[i].style.backgroundColor = "#F4A460";break;case 32:grid[i].style.backgroundColor = "#FA8072";break;case 64:grid[i].style.backgroundColor = "#ff7f50";break;case 128:grid[i].style.backgroundColor = "#FF6347";grid[i].style.fontSize = "40px";break;case 256:grid[i].style.backgroundColor = "#FF8800";grid[i].style.fontSize = "40px";break;case 512:grid[i].style.backgroundColor = "#FF6600";grid[i].style.fontSize = "40px";break;case 1024:grid[i].style.backgroundColor = "#F53";grid[i].style.fontSize = "32px";break;case 2048:grid[i].style.backgroundColor = "#F40";grid[i].style.fontSize = "32px";break;default:grid[i].style.backgroundColor = "#b0c4de";// grid[i].children[0].style.color = "#fff"; }// }} }// 游戲主入口 function getReady() {window.onkeydown = function(e) {deleteTempGrid(); // 在其他位置keyDown(e.keyCode);// backgroundColorToNumber();} }// getGridNum(ele):傳入div元素,返回格子里面的數字 function getGridNum(ele) {return parseInt(ele.children[0].innerText); // 空格返回NaN }// 各個方向的prevGrid,即所對應方向的前一個格子 function getPrevGrid(ele, direction) {var prevEle,count = 0;// 各個方向if (direction == "left") {return ele.previousElementSibling || null;} else if (direction == "right") {return ele.nextElementSibling || null;} else if (direction == "up") {for (var i = 0; i < 4; i ++) {ele = ele.previousElementSibling;if (!ele) {return null;}}return ele;} else if (direction == 'down') {for (var i = 0; i < 4; i ++) {ele = ele.nextElementSibling;if (!ele) {return null;}}return ele;} }// #滑塊移動# // 桌面版通過監聽方向鍵來控制滑塊移動方向 function keyDown(keyCode) {var dir,arr,go,count = 0, // 用于疊加每次運動得到的分數signal = 0; // 用于判斷格子是否運動switch (keyCode) {case 37:dir = "left";break;case 38:dir = "up";break;case 39:dir = "right";break;case 40:dir = "down";break;}for (var i = 1; i < 5; i ++) {if (dir == "up" || dir == "down") {arr = document.getElementsByClassName("col" + i);}else if (dir == "left" || dir == "right") {arr = document.getElementsByClassName("row" + i);}if (dir == "up" || dir == "left") {for (var j = 1; j <= 3; j ++) {// console.log(col[j]);max = j;go = howToGo(arr[j], dir, max); // 疊加返回得分// console.log("go2:" + go);signal += go;if (go > 1) {count += go; // 累計每一次運動的得分}}} else if (dir == "down" || dir == "right") {for (var j = 2; j >= 0; j --) {max = 3 - j;go = howToGo(arr[j], dir, max);// gridMove(arr[j], dir, 1);// console.log("go:" + go);signal += go;if (go > 1) {count += go; // 累計每一次運動的得分}}}}// 格子有運動signal > 0if (signal > 0) {// console.log("signal:" + signal);giveNumber(2);backgroundColorToNumber();testGameOver();}// 格子移動,且得分>0if (count > 0) {addScore(count);}return count; }// 移動端使用touch事件來監聽滑塊移動 function touch() {var gameBoard = document.getElementsByClassName("game-board")[0];gameBoard.addEventListener("touchstart",function (e) {// e.preventDefault();startX = e.changedTouches[0].pageX;startY = e.changedTouches[0].pageY;},false);gameBoard.addEventListener('touchend',function(e){e.preventDefault(); // 阻止瀏覽器的默認行為,例如滾動、跳轉等!!//獲取滑動屏幕時的X,YendX = e.changedTouches[0].pageX,endY = e.changedTouches[0].pageY;//獲取滑動距離distanceX = endX-startX;distanceY = endY-startY;//判斷滑動方向,滑動角度大于15°if(Math.abs(distanceX) / Math.abs(distanceY) > 1.73 && distanceX > 0){deleteTempGrid();keyDown(39);}else if(Math.abs(distanceX) / Math.abs(distanceY) > 1.73 && distanceX < 0){deleteTempGrid();keyDown(37);}else if(Math.abs(distanceY) / Math.abs(distanceX) > 1.73 && distanceY < 0){deleteTempGrid();keyDown(38);}else if(Math.abs(distanceY) / Math.abs(distanceX) > 1.73 && distanceY > 0){deleteTempGrid();keyDown(40);}else{// console.log('點擊未滑動');}}); }// 3.記錄分數,分數會增加, function addScore(score) {var span = document.getElementsByClassName("number"),currentScore = parseInt(span[0].innerText),bestScore = parseInt(span[1].innerText);span[0].innerText = score + currentScore;scoreUpAnimaton("score", score);if (span[0].innerText > bestScore) {scoreUpAnimaton("best", score);span[1].innerText = span[0].innerText;} }// howToGoLeft(ele, direction, max):該函數判斷單個格子怎么移動 function howToGo(ele, direction, max, testMode) {var prevGrid,prevGridNum,gridNum = 0,go,addNum,numLen,doubleNumGrid;// console.log(prevGrid);// 各個方向prevGrid = getPrevGrid(ele, direction);gridNum = getGridNum(ele);if (prevGrid) {prevGridNum = getGridNum(prevGrid);} else {prevGridNum = "null";}// 前面是空格,要繼續判斷。。。。。。。。。。。。。。。。。。。。。if (gridNum && !prevGridNum) {prevGrid.innerHTML = ele.innerHTML;ele.children[0].innerText = "";max -= 1;// gridMove(ele, direction, 1);if (max) {go = howToGo(prevGrid, direction, max);// 0、double、continue}// 返回1// console.log("go:" + (go || 1));// if (max == 0) {// console.log("before:" + typeof(go));// go = 1;// console.log("after" + typeof(go));// }return go || 1; // 若go = 0,返回1;go = double,返回double,go = underfied,返回1// 和前面數字相同} else if (gridNum == prevGridNum) {if (!testMode) {gridNum *= 2;// addScore(gridNum);// gridMove(ele, direction, 1);prevGrid.children[0].innerText = gridNum + "";// 在這里添加數字變大的動畫:// numLen = (gridNum + "").length;ele.children[0].innerText = "";// console.log('gridNum:' + gridNum)if (gridNum == 2048) {popup("win");}// 如果數字疊加,就返回得分,且得分≥4}// console.log("gridNum: " + gridNum);return gridNum;} else {// 格子沒動,返回0return 0;} }// 4.怎么判斷game over,或者達到2048為winner // test geme over function testGameOver() {var content,leftTest,rightTest,upTest,downTest,count = 0;grid = document.getElementsByClassName("grid");for (var i = 0; i < grid.length; i ++) {content = grid[i].innerHTML;if (content != "<span></span>") {count += 1;}}// console.log("count:" + count);if (count == 16) {if (getGridNum(grid[3]) == getGridNum(grid[4])) {count -= 2;}if (getGridNum(grid[7]) == getGridNum(grid[8])) {count -= 2;}if (getGridNum(grid[11]) == getGridNum(grid[12])) {count -= 2;}for (var i = 0; i < grid.length; i ++) {if(!howToGo(grid[i], "left", 1, true) && !howToGo(grid[i], "right", 1, true) && !howToGo(grid[i], "up", 1, true) && !howToGo(grid[i], "down", 1, true)) {count --;if (count == 0) {popup("game-over");return true;}}}}return false; }// game over 后彈出 function popup(popType) {var num,tryAgainEle,ele = document.getElementsByClassName(popType)[0],headerEle = document.getElementsByClassName("header")[0],gameBoardEle = document.getElementsByClassName("game-board")[0];ele.style.display = "block";headerEle.style.opacity = "0.4";gameBoardEle.style.opacity = "0.4";// tryAgain(num);if (popType == "game-over") {num = 0;}if (popType == "win") {num = 1;}tryAgainEle = document.getElementsByClassName("try-again")[num];tryAgainEle.addEventListener("click", function () {tryAgain(ele, headerEle, gameBoardEle);}, false);tryAgainEle.addEventListener("touchend", function () {tryAgain(ele, headerEle, gameBoardEle);}, false); }// 再來一次 function tryAgain(ele, headerEle, gameBoardEle) {ele.style.display = "none";headerEle.style.opacity = "1.0";gameBoardEle.style.opacity = "1.0";newGame(); }// 5.測試 function test() {var randomInt,timer;timer = setInterval(function() {randomInt = Math.floor(Math.random() * 4) + 37;keyDown(randomInt);// console.log(randomInt);if (testGameOver()) {clearInterval(timer);}}, 300); }// 分數增加的動畫 function scoreUpAnimaton(type, score) {var ele,score,timer,count = 0;if (type == "score") {ele = document.getElementsByClassName("score-animation")[0];} else if (type == "best") {ele = document.getElementsByClassName("best-animation")[0];}score = "+" + score;ele.innerText = score;ele.style.top = "25px";ele.style.color = "#8f7a66";ele.style.opacity = "1.0"timer = setInterval(function() {count ++;ele.style.display = "inline-block";ele.style.top = parseInt(ele.style.top) - 8 + "px";ele.style.opacity = parseFloat(ele.style.opacity) - 0.1;if (count == 6) {clearInterval(timer);ele.style.display = "none";}}, 80); }

  

  

轉載于:https://www.cnblogs.com/yuanyiming/p/10480959.html

總結

以上是生活随笔為你收集整理的用原生JS写一个网页版的2048小游戏(兼容移动端)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

中文字幕av一区二区三区四区 | 日韩免费一区二区三区 | 久久久污 | 欧美久久久久 | 久久精品毛片 | 一区二区视频欧美 | 亚洲精品乱码久久久久久蜜桃91 | 欧美伦理一区二区三区 | 久久综合九色综合欧美狠狠 | 天天插天天干天天操 | 欧美日韩在线观看一区二区 | 天天操一操 | 视频1区2区 | 日韩欧美在线综合网 | 国产精品成人av在线 | 国产日韩欧美在线观看 | 精品国产乱码久久 | 九九热只有精品 | 国产婷婷在线观看 | 国产精品一区二区三区观看 | 久久久久国产免费免费 | 六月丁香激情综合色啪小说 | 国产一区二区三精品久久久无广告 | 免费观看的av网站 | 亚洲一区网站 | 三级黄色在线观看 | 美女视频黄的免费的 | 在线国产中文字幕 | 成片视频免费观看 | 西西4444www大胆视频 | 91成人精品一区在线播放 | 国产中文视频 | 婷婷丁香激情 | 97在线影院| 日韩免费一二三区 | 婷婷在线免费观看 | 美女啪啪图片 | 久久久香蕉视频 | 人人玩人人添人人 | 黄色.com| 国产99久 | 国产成人精品一区二区在线观看 | 欧美精品久久久久久久久久久 | 欧美日本国产在线观看 | 久久久精品久久日韩一区综合 | 99热国产在线 | 天天天操操操 | 欧美日韩中文在线 | 欧美亚洲免费在线一区 | 亚洲成av人电影 | 在线免费观看涩涩 | 亚洲国内精品在线 | 日韩最新在线 | 日韩av成人在线 | 久久只精品99品免费久23小说 | 一级a性色生活片久久毛片波多野 | 在线看片a | 中文字幕乱码亚洲精品一区 | 激情丁香综合 | 中文字幕 在线 一 二 | 免费在线观看av网站 | 国产精品女同一区二区三区久久夜 | 在线韩国电影免费观影完整版 | 国产精品久久久久久久久久久久 | 国产精品久久久久久久久久三级 | 国产视频在线看 | 色综合久久99 | 91毛片视频 | 狠色在线 | 中文字幕av全部资源www中文字幕在线观看 | 精品毛片久久久久久 | 久久久免费播放 | 777久久久 | 国产精品视频最多的网站 | 亚洲国产精品成人综合 | 天天色.com | 久久久久97国产 | av噜噜噜在线播放 | 国产精久久久久久妇女av | 久久国产精品成人免费浪潮 | 久久天天躁 | 国产资源在线视频 | 久草视频国产 | 精品国产乱码一区二区三区在线 | 久久se视频 | 日韩电影在线观看中文字幕 | 深夜免费福利 | 亚洲精品视频中文字幕 | 深爱激情久久 | 缴情综合网五月天 | 久久午夜色播影院免费高清 | 在线观看久草 | 国产福利一区在线观看 | 日韩在线高清视频 | 中文字幕一区二区三区在线播放 | 久久精品99视频 | 久久免费黄色大片 | 国产在线91精品 | 亚洲精品国产综合99久久夜夜嗨 | 欧美日韩高清在线观看 | 综合色站导航 | 六月丁香激情网 | 国产高清视频在线观看 | 国产精品久久久久久久午夜片 | 国产精品嫩草在线 | 欧美日韩国产在线精品 | 国产精品99在线观看 | 久久99国产精品自在自在app | 日韩午夜高清 | 婷婷色综 | 国产精品日韩久久久久 | 日韩在线无 | 在线观看深夜视频 | 99精品视频一区 | 色综合天天狠狠 | 在线国产高清 | 国产打女人屁股调教97 | 91av片| 欧美色婷 | 一本一道波多野毛片中文在线 | h动漫中文字幕 | 狠狠色丁香婷婷综合久久片 | 国产三级香港三韩国三级 | 欧美另类调教 | 亚洲一区av | 免费观看一级一片 | 中文字幕一二三区 | 五月婷婷色播 | 在线观看你懂的网址 | www.xxx.性狂虐 | 99久久99久久 | 又湿又紧又大又爽a视频国产 | 青青河边草观看完整版高清 | 免费看的黄色录像 | 色国产精品| 黄网站免费久久 | .国产精品成人自产拍在线观看6 | 97福利在线 | 亚洲国产中文字幕在线观看 | 久久综合九色综合欧美就去吻 | 日本三级久久 | 在线国产一区二区三区 | 欧美色一色 | 欧美一区二区三区在线播放 | 成人h视频在线 | 日韩高清成人在线 | 综合色综合| 999精品在线| 丁香综合av| 97视频免费播放 | 亚洲码国产日韩欧美高潮在线播放 | 天天亚洲 | av三级av| 亚洲天堂网在线视频 | 欧美日韩观看 | 色多多污污在线观看 | av东方在线| www.国产在线观看 | 成人黄色电影免费观看 | 天天操天天插 | 最近最新mv字幕免费观看 | 久久毛片高清国产 | 9在线观看免费高清完整版在线观看明 | 一本一道久久a久久精品 | 国产综合精品一区二区三区 | 成人97视频| 天天添夜夜操 | 日本精品中文字幕在线观看 | 久久字幕精品一区 | 亚州欧美精品 | av不卡在线看 | 日韩欧美一区二区三区在线观看 | 久久国产精品99国产精 | 日韩欧美高清免费 | 精品国产资源 | 欧美在一区 | 激情久久综合 | 欧美在线日韩在线 | 97在线视频观看 | 一区二区久久久久 | 视频 天天草 | 一本一道久久a久久综合蜜桃 | 久草| 综合激情网 | 精品国产视频在线 | 天天看天天操 | 黄色网在线免费观看 | 免费性网站 | 一性一交视频 | 欧美韩国日本在线观看 | 免费看网站在线 | 久久夜夜操 | 99r精品视频在线观看 | 色婷婷综合久久久久中文字幕1 | 毛片网在线观看 | 日韩免费看视频 | 99高清视频有精品视频 | 亚洲成人黄色在线 | 少妇高潮流白浆在线观看 | 久久精品中文视频 | 人成在线免费视频 | 国产精品精品国产 | 天天插伊人 | 99精品视频网站 | 中文字幕永久在线 | 97av视频在线| 国产99一区 | 精品一区二区免费在线观看 | 国产一级在线视频 | 97超碰国产精品女人人人爽 | 亚洲精品视频在线观看视频 | 日韩成人中文字幕 | 婷婷色伊人 | 免费高清在线一区 | 精品国产1区2区3区 国产欧美精品在线观看 | 激情丁香婷婷 | 久久深夜福利免费观看 | 91 在线视频 | 叶爱av在线| 免费看一级黄色大全 | 国产日韩精品视频 | 欧美日韩中文视频 | 亚洲精品视频在线播放 | 久久精品国产精品亚洲 | 在线成人性视频 | 视频在线一区二区三区 | 久久人视频 | 国产高清视频在线免费观看 | 日韩欧美在线一区 | 国产精品黑丝在线观看 | 综合久久五月天 | 插久久 | 99热在线精品观看 | 亚洲一区二区视频在线播放 | 99999精品| 人人爽人人澡人人添人人人人 | 久久1区| 亚洲午夜精品久久久久久久久久久久 | 一级黄色片在线观看 | 日本久久不卡视频 | 亚洲精品小视频 | 欧美色图亚洲图片 | 99色亚洲| 久久综合九色综合欧美就去吻 | 综合伊人av| 免费一级片在线 | 亚洲一级电影在线观看 | 99精品黄色片免费大全 | 懂色av一区二区在线播放 | 超碰资源在线 | 日韩专区中文字幕 | 欧美精品在线观看一区 | 片网站 | 精品日韩av| 一本一本久久a久久 | 99在线视频播放 | 九九久久国产精品 | 伊人天堂网 | 天天操天天爽天天干 | 日本久久不卡视频 | 亚洲在线免费视频 | 久久毛片高清国产 | 狠狠做深爱婷婷综合一区 | 黄av在线 | 久久免费看片 | 久久久久久久久久久久亚洲 | 久久婷婷一区 | 欧美a级免费视频 | 成人性生交大片免费观看网站 | 久久男女视频 | 中文字幕免费成人 | 91精品夜夜 | 成人免费视频播放 | 人人爽人人乐 | 免费在线观看国产黄 | bayu135国产精品视频 | 日韩在线在线 | 午夜久久精品 | 日韩免费在线网站 | 国产九九九视频 | 蜜臀av免费一区二区三区 | 五月综合色 | 91精品国产高清自在线观看 | 在线观看91精品视频 | 一区二区精品在线观看 | 亚洲一二三区精品 | a黄色| 亚洲免费成人av电影 | 欧美一二三区在线观看 | 黄色网www | 国产精品成人一区二区 | 国产亚洲综合性久久久影院 | 日本一区二区三区视频在线播放 | 国产精品免费一区二区 | 久久久久综合精品福利啪啪 | 一区二区在线电影 | 亚洲aⅴ乱码精品成人区 | 91精品久久久久久久久久久久久 | 99久久综合精品五月天 | 在线观看av网 | 久久国产精品小视频 | 婷婷五月色综合 | 伊人av综合 | 探花视频免费观看 | 91精品视频免费 | 四虎国产精品免费观看视频优播 | 中文字幕在线视频第一页 | 成人av网页| 黄色av电影网 | 99re8这里有精品热视频免费 | 久久国产精品99久久久久久丝袜 | 天天做天天爱夜夜爽 | 黄色亚洲在线 | 色播五月婷婷 | 国产精品久久久久毛片大屁完整版 | 国产高清av免费在线观看 | 午夜精品视频一区 | 国产精品成人久久久 | 亚洲成av人片在线观看香蕉 | 天天干 夜夜操 | 人人要人人澡人人爽人人dvd | 国产精品久久嫩一区二区免费 | 精品国产91亚洲一区二区三区www | 91xav | 日韩av中文字幕在线免费观看 | 欧美国产日韩在线观看 | 激情久久久久 | 狠狠色狠狠色综合系列 | 就要干b | 久久国产精品小视频 | 久久成年人视频 | 精品欧美一区二区精品久久 | 波多野结衣最新 | 91在线看视频免费 | 99综合电影在线视频 | 日韩国产精品久久久久久亚洲 | 欧美高清视频不卡网 | 伊人五月综合 | 一级黄视频 | 亚洲成人精品久久久 | 亚洲精品视频国产 | 亚洲国产成人高清精品 | 在线观看国产高清视频 | 一区二区三区四区免费视频 | 欧美日韩二三区 | 毛片网站在线观看 | 久久久久久久久久久久久9999 | 国产美腿白丝袜足在线av | 亚洲欧美日韩精品久久久 | 中文字幕在线观看完整版电影 | 午夜精品视频一区二区三区在线看 | 日韩在线国产 | 高清美女视频 | 国产999精品视频 | 99午夜| 亚洲国产网站 | 日韩电影黄色 | 亚洲国产精品电影 | 中国一级片在线播放 | av免费观看网站 | 国产成人l区 | 欧美孕交vivoestv另类 | 色婷婷激情 | 免费a级毛片在线看 | 成人视屏免费看 | 日韩激情影院 | 中文资源在线官网 | 久久久视频在线 | www.亚洲激情.com | 在线日韩 | 亚洲电影院 | 91av视频在线观看 | 久久99精品一区二区三区三区 | 99在线观看精品 | 91久久一区二区 | 中文字幕第一页在线 | 久久伊人八月婷婷综合激情 | 人人要人人澡人人爽人人dvd | 99精品免费 | 这里只有精品视频在线观看 | 国产精品久久99综合免费观看尤物 | 亚洲国产97在线精品一区 | 亚洲蜜桃在线 | 在线观看黄 | 国产一区二区三区免费视频 | 国产成人精品久久亚洲高清不卡 | 综合婷婷 | 亚洲在线视频网站 | 日日日日干 | 在线电影a | 亚洲精品国产精品99久久 | 日韩理论在线 | www.香蕉| 可以免费观看的av片 | 国产免费一区二区三区最新 | 免费福利在线观看 | 天天天天爽 | 久久久国产影院 | 国产精品成人自产拍在线观看 | 国内精品国产三级国产aⅴ久 | 丁香六月婷婷开心婷婷网 | 97狠狠操| 伊人色综合网 | 国产一级大片免费看 | 日日狠狠| 碰碰影院 | 精品无人国产偷自产在线 | 日本黄色大片儿 | 日韩精品欧美精品 | 天天干天天玩天天操 | 日韩不卡高清 | 黄视频色网站 | 狠狠色噜噜狠狠狠 | 五月婷av | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 婷婷综合久久 | 欧美日韩观看 | 婷婷新五月 | 国产精品免费久久久久久久久久中文 | 国产精品久久久久国产精品日日 | 99精品欧美一区二区 | 亚州精品天堂中文字幕 | 91大神精品视频在线观看 | 日韩在线电影一区二区 | www.com操| a√天堂资源 | 美女黄视频免费 | 久色网| 四虎在线观看精品视频 | 91精品网站在线观看 | 亚洲国产成人在线观看 | 成人免费观看av | 亚洲综合网 | 97伊人网 | 天天综合天天做天天综合 | 69国产精品成人在线播放 | 久操视频在线免费看 | 成人免费网站在线观看 | 人人爱爱人人 | 久久免费看av | 亚洲午夜精品一区二区三区电影院 | 天天操天天是 | 啪啪免费观看网站 | 亚洲专区在线视频 | 国产一区二区成人 | 91看毛片| 天天色天天射综合网 | 中文字幕在线视频第一页 | 色 免费观看 | 国产精品久久99综合免费观看尤物 | 久久久久免费精品视频 | 波多野结衣在线视频免费观看 | 亚洲国产字幕 | 国产精品久久久久久五月尺 | 九九热在线视频 | 视频成人免费 | 国产日韩精品一区二区三区在线 | 成年人在线电影 | 国产打女人屁股调教97 | 欧美 亚洲 另类 激情 另类 | 国产在线国偷精品产拍免费yy | 992tv在线观看 | 又黄又刺激视频 | 91在线精品播放 | 国产视频亚洲精品 | 亚洲国产欧洲综合997久久, | 欧美91精品国产自产 | 伊人va| 国产在线黄色 | 国产精品igao视频网网址 | 又粗又长又大又爽又黄少妇毛片 | 国产高清成人在线 | 国产精品影音先锋 | 欧美伦理一区二区 | 久久一视频 | www.久久视频 | 黄色毛片观看 | 日批视频| 免费一级片视频 | 91精品黄色 | 69久久夜色精品国产69 | 视频在线观看入口黄最新永久免费国产 | 亚洲国产成人精品在线 | 91自拍视频在线 | 香蕉网站在线观看 | 亚洲精品白浆高清久久久久久 | 日韩欧美在线免费观看 | 久久精品国产免费看久久精品 | 久久精品久久久久久久 | 欧美日韩成人一区 | 视频精品一区二区三区 | 亚洲精品高清视频 | av黄色一级片 | 国产视频在线观看一区 | 久久视讯| av国产在线观看 | 日韩视频1 | 91视频在线观看大全 | 日韩成人黄色 | 国产精品系列在线观看 | 国产色在线,com | 天天射天天做 | 又紧又大又爽精品一区二区 | 狠狠色综合欧美激情 | 911国产| 日b视频在线观看网址 | 91毛片在线观看 | 久久全国免费视频 | 综合激情婷婷 | 免费看片黄色 | 亚洲一二视频 | 国产码电影 | 国产精品成人在线 | 欧美精品久久久久a | 中文在线免费观看 | 日韩视频中文字幕在线观看 | 久久精品一区二区三区国产主播 | 久久精品婷婷 | 999ZYZ玖玖资源站永久 | 国产高清不卡在线 | 不卡av电影在线观看 | 国产伦精品一区二区三区照片91 | 成人天堂网 | 97电影院在线观看 | 国产精品中文久久久久久久 | 91精品国产综合久久久久久久 | 91人人澡人人爽人人精品 | av在线免费不卡 | av在线电影播放 | 久久久久这里只有精品 | 亚州精品天堂中文字幕 | 毛片美女网站 | 日韩二区三区在线 | 久久久久国产精品一区二区 | 免费中午字幕无吗 | 国产精品99久久久 | 国产资源精品 | 四虎影视成人精品国库在线观看 | 国产中文字幕视频 | av在线电影网站 | 成人免费视频观看 | 亚洲天堂免费视频 | 麻豆91在线观看 | 日批视频在线播放 | 欧美一区二区三区在线看 | 五月婷婷电影网 | 色婷婷激情综合 | 波多野结衣视频一区 | 亚洲综合情 | 国产精品在线看 | 免费在线播放 | 中文字幕一区二区三区四区视频 | 久久精品一二区 | 91视频免费视频 | 精品国产一区二区三区在线观看 | 伊人婷婷综合 | 国产亚洲欧洲 | 在线观看第一页 | 精品国产乱码久久久久久1区2匹 | 精品国产一区二区三区四区在线观看 | 免费观看91视频大全 | 国产中文欧美日韩在线 | 制服丝袜在线 | 久久久久福利视频 | av成人在线看 | 久草在线免费色站 | 97免费在线观看视频 | 免费在线国产视频 | 欧美日在线观看 | 在线va网站 | 久久久久久亚洲精品 | 丁香婷婷激情 | 日韩网站在线免费观看 | 国产精品日韩欧美一区二区 | 欧美精品二 | 青草视频在线 | 久久伊人五月天 | av黄网站 | 中文乱码视频在线观看 | 久久婷婷网 | 亚洲视频久久久久 | 欧美大片大全 | 免费网站在线观看人 | 中文字幕在线看片 | 国产免费又粗又猛又爽 | 欧美日韩综合在线观看 | 97国产精品久久 | 日本久久久精品视频 | 色丁香久久 | 成人一级片免费看 | 最近中文字幕国语免费av | 国产女v资源在线观看 | 国产黄色片一级 | 2021国产在线视频 | 人人爽人人爽人人爽 | 精品不卡视频 | 在线观看日本高清mv视频 | www.五月婷| 精品自拍网| 天天综合色网 | 国产 欧美 在线 | 久久女同性恋中文字幕 | 欧美综合在线视频 | 国产一区二区在线观看免费 | 天天色天天操综合网 | 在线观看一二三区 | 韩日三级在线 | 中文字幕在线观看视频一区二区三区 | 久久精品在线 | 日本在线观看中文字幕 | 五月天婷亚洲天综合网鲁鲁鲁 | 亚洲精品动漫成人3d无尽在线 | 精品国产精品国产偷麻豆 | 中文字幕一区二区在线播放 | 99久久超碰中文字幕伊人 | 天天干天天拍天天操天天拍 | 国产原创av片| 日本超碰在线 | 日韩视频免费在线观看 | 国产美女免费 | 激情五月六月婷婷 | 亚洲小视频在线观看 | 国内视频1区 | 久久久久久久久亚洲精品 | 久草在线网址 | 日韩午夜在线观看 | 在线观看一级片 | 国产亚洲精品bv在线观看 | 国产综合福利在线 | 中文字幕在线观看第三页 | 成人av网页 | 超碰97.com | 免费观看国产成人 | 国产二区视频在线 | 久久久久免费网站 | 国产1区2区3区精品美女 | 中文字幕免费国产精品 | 国产电影一区二区三区四区 | 久久精品伊人 | 91麻豆精品国产91久久久久久 | 西西44人体做爰大胆视频 | 久久精品—区二区三区 | 国产色小视频 | 98超碰在线观看 | 丝袜美腿在线播放 | 国产精品一区二区麻豆 | 亚洲一区二区视频在线 | 99精品久久久久久久久久综合 | 国产精品一区免费在线观看 | 91在线视频在线观看 | 麻豆观看| 日本一区二区不卡高清 | 亚洲v欧美v国产v在线观看 | 国产精品久久在线观看 | 韩国三级av在线 | 国产1区2 | 三级动图| 精品国产一区二区三区久久久 | 久久tv视频 | 激情婷婷丁香 | 成人v| 久精品在线 | 亚洲精品网址在线观看 | 在线国产91 | 久久久在线视频 | 香蕉视频网址 | 日韩精品一区二区三区免费视频观看 | www.日韩免费 | av电影中文字幕在线观看 | 97视频在线 | 精品天堂av | 欧美在线视频第一页 | 久久久久久久久影视 | www一起操| 国产视频精品久久 | 久久人人爽人人爽人人片av免费 | 亚洲aⅴ在线| 亚洲午夜久久久综合37日本 | av成人亚洲 | 日韩精品一区二区在线观看 | 欧美视频99 | 99久久久久免费精品国产 | 久久免费在线观看 | 男女全黄一级一级高潮免费看 | 欧美少妇bbwhd | 亚洲国产日韩欧美 | 九九欧美| 亚洲在线视频观看 | www.夜夜操.com| 国产精品自产拍在线观看 | 国产亚洲激情视频在线 | 国产一卡久久电影永久 | 天天插天天 | 人人爱人人做人人爽 | 一级黄色片在线播放 | 久久久免费精品国产一区二区 | 偷拍区另类综合在线 | 久久黄色小说 | 国产1区2区3区精品美女 | 色综合久久88色综合天天人守婷 | 国产性xxxx | 天天操夜夜看 | 97国产精品久久 | 亚洲va欧洲va国产va不卡 | 国内成人精品2018免费看 | 91av片| 激情视频综合网 | 亚洲精品免费在线观看视频 | 国产精品一区二区av | 韩国av电影在线观看 | 亚洲精品视频免费在线 | 久草在线免费看视频 | 久久综合射 | 久久久久国产精品午夜一区 | 国产在线2020| 亚洲国产精品成人av | av一级在线 | 国产精品18p| 国产亚洲精品bv在线观看 | 91看片成人| 国产小视频免费观看 | 国产亚洲成人网 | 国产一级视频在线观看 | 国产中年夫妇高潮精品视频 | 天天操天天操天天爽 | 999视频在线观看 | 欧洲激情综合 | 九九久久婷婷 | 欧美日韩另类在线 | 91麻豆精品国产91久久久久久久久 | 亚洲精品啊啊啊 | 正在播放亚洲精品 | 深夜激情影院 | 久久精品导航 | japanesexxxhd奶水 国产一区二区在线免费观看 | 九色91在线 | 欧美大码xxxx | 日韩欧美电影网 | 国产精品久久久久久久久久久不卡 | 91大神免费在线观看 | 91麻豆视频 | 国产成人精品日本亚洲999 | 一级免费片 | 国产麻豆精品一区 | 777奇米四色 | 国产精品永久免费在线 | 日本天天操 | 中文视频在线播放 | 中文字幕在线一区观看 | 亚洲成人精品影院 | 99久久er热在这里只有精品15 | 日本三级香港三级人妇99 | 天天摸夜夜操 | 亚洲免费在线观看视频 | 久久免费观看少妇a级毛片 久久久久成人免费 | 国产经典 欧美精品 | 国产拍在线| 精品自拍sae8—视频 | 国产欧美综合在线观看 | 成人欧美在线 | 国产区久久 | 91成年人视频| 天天艹天天 | 国产一线二线三线性视频 | 四虎8848免费高清在线观看 | 视频一区二区在线观看 | 99久久99久国产黄毛片 | 欧美日韩中文在线视频 | 日韩欧美一区二区在线播放 | 国产精品99视频 | 色婷婷www| 日本免费一二三区 | 91av在线免费 | 国产黄色免费看 | 99精品久久久久久久久久综合 | 4hu视频 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 午夜精品一区二区三区免费视频 | 91高清完整版在线观看 | 国产精品国产三级在线专区 | 精品一区二区久久久久久久网站 | 久久久久久久久久久网 | 日韩一区二区三 | 黄色网在线免费观看 | 欧美极品在线播放 | 久久免费av| 一区二区三区 中文字幕 | 不卡的av在线播放 | 日韩mv欧美mv国产精品 | 91片黄在线观看动漫 | 亚洲精品在线观看av | 丁香在线观看完整电影视频 | 97人人澡人人爽人人模亚洲 | 国产一级久久久 | 久久久久久久久久久免费 | 一级片色播影院 | 久久综合精品国产一区二区三区 | 午夜国产福利在线观看 | 97高清视频| 午夜成人免费电影 | 在线看的av网站 | 在线亚洲精品 | 久久午夜电影院 | 97色se | 麻豆传媒视频在线播放 | 一区二区精品国产 | av片在线观看免费 | 日本精品二区 | 成年人免费看av | 99在线观看视频网站 | 国产最顶级的黄色片在线免费观看 | 成人免费在线播放视频 | 激情网五月天 | 久久久国产一区 | 999国产在线 | 成人免费视频在线观看 | 久久免费成人网 | 国产成人精品一区二区三区福利 | 亚洲人成网站精品片在线观看 | 国产一区二区在线观看视频 | 国产一级片播放 | 久久极品 | 国产日韩欧美综合在线 | 久久 精品一区 | 中文字幕三区 | 色网av | www成人精品 | 亚洲国产欧美在线看片xxoo | 国产精品网址在线观看 | 91免费观看视频在线 | 成人欧美一区二区三区黑人麻豆 | 中文字幕一区二区三区久久 | 亚洲国产精品一区二区久久,亚洲午夜 | a电影免费看 | 欧美性久久久 | 日韩av电影免费在线观看 | 国产视频日韩视频欧美视频 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 中文字幕国内精品 | ww亚洲ww亚在线观看 | 国产分类视频 | 色综合天天干 | 免费的黄色的网站 | 91精品国产成人 | 日韩午夜在线 | 在线亚洲人成电影网站色www | 一级免费看| 福利视频一区二区 | 日本久久成人 | 一级成人免费视频 | 在线只有精品 | 91九色视频导航 | 狠狠狠狠狠狠狠 | 免费看片网站91 | 国产91丝袜在线播放动漫 | 国产黄在线免费观看 | 久久综合久久综合九色 | av中文字幕在线电影 | 欧美日韩视频观看 | 国产无限资源在线观看 | 一区二区三区免费在线观看视频 | 免费观看v片在线观看 | 免费高清在线观看成人 | 欧美精品久久久久久久久久久 | 精品一区二区6 | 婷婷色在线资源 | 国内精品久久久久久久久久清纯 | www亚洲一区 | 国产成人三级在线观看 | 精品国产一区二区三区免费 | 麻豆影视在线免费观看 | 欧美日韩一区二区在线观看 | 西西4444www大胆无视频 | 高清av免费观看 | 日韩高清在线看 | 亚洲精品综合一二三区在线观看 | 久久日本视频 | 伊人官网| 97视频在线免费播放 | www.国产精品 | 伊人天堂久久 | 婷婷色伊人 | 日韩字幕在线 | 丝袜美女在线观看 | 成人久久免费 | 天天爱天天操天天爽 | 丁香六月婷婷开心 | 国产精品破处视频 | 久久亚洲成人网 | 天天色天天综合网 | 国产福利不卡视频 | www.夜夜干.com | 精品国产自在精品国产精野外直播 | 国产一区二区不卡视频 | free,性欧美 九九交易行官网 | 成人h视频在线播放 | 国产精品亚洲片在线播放 | 干狠狠 | 久久a视频| 午夜久久久精品 | 国产精品1区 | 91成人精品一区在线播放 | 久草在线观看视频免费 | 亚洲日韩中文字幕 | av黄网站 | 成人在线视频观看 | 国产精品系列在线播放 | 91在线在线观看 | 久草免费在线视频观看 | 999久久久 | 亚洲色图av | 草久久av| 18pao国产成视频永久免费 | av导航福利 | 91麻豆精品国产91久久久更新时间 | 99精品免费久久久久久久久日本 | 久久私人影院 | 久久久色| 国产精品美女久久久 | 一区二区三区精品在线视频 | 亚洲黄色免费在线 | 久久avav| 久久久久国产a免费观看rela | 国产一区二区三精品久久久无广告 | 成人免费观看大片 | 日韩精品中文字幕在线播放 | 亚洲成人资源在线观看 | 久久夜色精品国产欧美乱极品 | 欧美久久久久久久久久 | 五月天网页 | 日韩在线观看视频免费 | 国产高清视频在线播放一区 | 国产一级视频在线观看 | 日韩av专区| 在线观看精品黄av片免费 | 福利二区视频 | 激情欧美xxxx | 精品国产一区二区三区四区vr | 国产精品乱码一区二区视频 | 欧美日韩视频在线观看免费 | 香蕉网在线播放 | 免费看黄在线 | 综合久久久久久 | 美女网站在线观看 | 亚洲成人精品av | 久久999精品 | 九九九热精品免费视频观看网站 | 国产精品去看片 | 久久综合桃花 | 亚洲无吗天堂 | 日韩在线观看a | 国产无遮挡又黄又爽在线观看 | 色婷婷av一区 | 亚洲国产精品999 | 日韩中文字幕亚洲一区二区va在线 | 国产偷v国产偷∨精品视频 在线草 | 青青看片| 91成人天堂久久成人 | 成人中心免费视频 | 国产精品九九九 | 亚洲女在线 | 麻豆视频在线观看免费 | 国产原创在线 | 丁香激情综合 | 精品一区精品二区高清 | 欧美一区二区三区免费看 | 国产一级片毛片 | 不卡的一区二区三区 | 99热播精品 | 手机在线视频福利 | 国产资源精品 | 国产在线精品国自产拍影院 | 一区二区三区观看 | 在线观看视频在线观看 | 国产高清成人 | 国产视频精品久久 | 国产精品久久久久久一区二区 | 日韩资源在线播放 | 日本超碰在线 | 久久夜色电影 | 日韩av中文在线 | 在线观看国产日韩 | 亚洲国产精品99久久久久久久久 | 黄色电影在线免费观看 | 成人黄色影片在线 | 天天躁日日躁狠狠躁av麻豆 | 人人玩人人爽 | 久久久午夜电影 | 亚洲婷婷在线 | 天天做日日爱夜夜爽 | 亚洲国产精品va在线看黑人 | 精品久久网站 | av手机版| 精品一二三区 | 午夜视频亚洲 | 日韩欧美国产精品 | 亚洲人人网 | 中文字幕在线一区二区三区 |