ネイティブJSで白いブロックを踏まないゲームを実装 (3)
前の記事では、「白いブロックを踏まないでください」ゲームのネイティブ JS 実装のソース コードの HTML 部分について簡単に説明しました。興味のある方は、「白いブロックを踏まないゲームのネイティブ JS 実装 (1)」および「白いブロックを踏まないゲームのネイティブ JS 実装 (2)」を参照してください。 )」。
引き続きソース コードを結合し、CSS 部分と JS 部分を紹介していきます。
CSS コードは次のとおりです:
<style> * { margin: 0; padding: 0; } .box { margin: 50px auto 0 auto; width: 400px; height: auto; border: solid 1px #222; } #cont { width: 400px; height: 600px; position: relative; overflow: hidden; } #go { width: 100%; height: 600px; position: absolute; top: 0; font: 700 60px '微软雅黑'; text-align: center; z-index: 99; } #go span { cursor: pointer; background-color: #fff; border-bottom: solid 1px #222; } #main { width: 400px; height: 600px; position: relative; top: -150px; } .row { width: 400px; height: 150px; } .row div { width: 99px; height: 149px; border: solid 1px #222; float: left; border-top-width: 0; border-left-width: 0; cursor: pointer; } #count { border-top: solid 1px #222; width: 400px; height: 50px; font: 700 36px/50px '微软雅黑'; text-align: center; } </style>
実際、CSS 部分に注意する必要があるのは、overflow: hidden スタイル属性です。 、これはオーバーフローと非表示の効果です。このプロパティは、要素のコンテンツ領域をオーバーフローするコンテンツがどのように処理されるかを定義します。値がスクロールの場合、ユーザー エージェントは、必要かどうかに関係なく、スクロール メカニズムを提供します。したがって、すべてが要素ボックス内に収まる場合でも、スクロールバーが表示される可能性があります。値を hidden に設定すると、コンテンツがトリミングされ、残りのコンテンツが非表示になります。
JS コードは次のとおりです。
<script> var main = document.getElementById('main') go = document.getElementById('go') count = document.getElementById('count'); cols = ['#1AAB8A', '#E15650', '#121B39', '#80A84E']; function CDiv(classname) { var Div = document.createElement('div') index = Math.floor(Math.random() * 4) Div.className = classname for (var i = 0; i < 4; i++) { var iDiv = document.createElement('div') Div.appendChild(iDiv) } if (main.children.length == 0) { main.appendChild(Div); } else { main.insertBefore(Div, main.children[0]); } Div.children[index].style.backgroundColor = cols[index]; Div.children[index].className = "i"; } function move(obj) { //默认速度与计分 var speed = 5, num = 0; obj.timer = setInterval(function () { //速度 var step = parseInt(getComputedStyle(obj, null)['top']) + speed; obj.style.top = step + 'px' if (parseInt(getComputedStyle(obj, null)['top']) >= 0) { CDiv('row'); obj.style.top = -150 + 'px'; } if (obj.children.length == 6) { for (var i = 0; i < 4; i++) { if (obj.children[obj.children.length - 1].children[i].className == 'i') { //游戏结束 obj.style.top = '-150px'; count.innerHTML = '游戏结束,最高得分: ' + num; //关闭定时器 clearInterval(obj.timer); //显示开始游戏 go.children[0].innerHTML = '游戏结束'; go.style.display = "block"; } } obj.removeChild(obj.children[obj.children.length - 1]); } //点击与计分 obj.onmousedown = function (event) { //点击的不是白盒子 // 兼容IE event = event || window.event; if ((event.target ? event.target : event.srcElement).className == 'i') { //点击后的盒子颜色 (event.target ? event.target : event.srcElement).style.backgroundColor = "#bbb"; //清除盒子标记 (event.target ? event.target : event.srcElement).className = ''; //计分 num++; //显示得分 count.innerHTML = '当前得分: ' + num; } else { //游戏结束 obj.style.top = 0; count.innerHTML = '游戏结束,最高得分: ' + num; //关闭定时器 clearInterval(obj.timer); //显示开始游戏 go.children[0].innerHTML = '游戏结束'; go.style.display = "block"; } //盒子加速 if (num % 10 == 0) { speed++; } } //松开触发停止 obj.onmouseup = function (event) { } }, 20) } go.children[0].onclick = function () { if (main.children.length) { //暴力清楚main里面所有盒子 main.innerHTML = ''; } //清空计分 count.innerHTML = '游戏开始'; //隐藏开始盒子 this.parentNode.style.display = "none"; move(main); } </script>
js は、静的ページ全体を移動させる主要な部分です。実装のアイデアも非常にシンプルです。まず div 要素を取得し、div を移動させ、Div を動的に作成し、移動後に不足している div を埋め、色付きの四角形をランダムに作成し、クリック イベントをバインドし、クリックして勝敗を決定します。 、ゲーム終了後の制限、カラーブロックの底打ち処理、加速のための追加点の処理など。
長さの理由により、この記事は、白いブロックを踏まないでくださいゲームのネイティブ JS 実装の CSS および JS 部分を簡単に紹介します。その後の記事では、 js部分の実装方法です。
以上がネイティブJSで白いブロックを踏まないゲームを実装 (3)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









