1. 程式人生 > >(一)原生JS實現判斷碰撞的方法!

(一)原生JS實現判斷碰撞的方法!

這次為大家例項講述了JS實現判斷碰撞的方法。碰撞的應用場景非常多比如,放煙花、小球碰壁反彈、畫素鳥等,所以我們先要弄清除如何進行碰撞判斷,才能進行以後的操作。


HTML頁面程式碼:

<div id="d1"></div>
<div id="d2"></div>
CSS頁面程式碼:
<style type="text/css">
		*{
			padding: 0px;
			margin: 0px;

		}
		#d1{
			width: 100px;
			height: 100px;
			background: red;
			position: absolute;
		}
		#d2{
			width: 200px;
			height: 200px;
			background: yellow;
			position: absolute;
			top: 200px;
			left: 400px;
			position: absolute;
		}
	</style>
JS頁面程式碼:
<script type="text/javascript">
	div=document.querySelectorAll("div"); 
function hit(obj){
	obj.onmousedown=function(e){
		var e=e||window.event;
		var dX=e.offsetX;
		var dY=e.offsetY;
		document.onmousemove=function(e){
			var x=e.clientX;
			var y=e.clientY;
			obj.style.left=x-dX+"px";
			obj.style.top=y-dY+"px";
			if(div[0].offsetTop+div[0].offsetHeight>=div[1].offsetTop && div[0].offsetTop<=div[1].offsetTop+div[1].offsetHeight && div[0].offsetLeft+div[0].offsetWidth>=div[1].offsetLeft && div[0].offsetLeft<=div[1].offsetLeft+div[1].offsetWidth){
				console.log("你撞我了!再撞一個試試!")
			};
	}
	document.onmouseup=function(){
		document.onmousemove=null;
	}
}	
}
hit(div[0]);
hit(div[1]);
</script>
(我吃酸蘿蔔 新浪微博http://www.weibo.com/wcslb       ---李帥醒著)

相關推薦

原生JS實現判斷碰撞方法

這次為大家例項講述了JS實現判斷碰撞的方法。碰撞的應用場景非常多比如,放煙花、小球碰壁反彈、畫素鳥等,所以我們先要弄清除如何進行碰撞判斷,才能進行以後的操作。 HTML頁面程式碼: <div

焦點輪播圖7原生JS實現焦點輪播圖--完整程式碼

輪播圖終於更完了,附上完整程式碼: <html> <head> <meta charset="utf-8" /> <title>焦點輪播圖</title> <style type=

JavaScript1Js實現web頁面段時間沒操作,退出或關閉頁面

1. 思路 js設定一個倒計時,當監聽到keydown mousemove mousedown等事件時,重置倒計時。若倒計時為0時,觸發相應事件。 2. 實現 注:需要引入JQuery

JS自定義右鍵選單—複製到貼上板jQuery和原生JS實現

##自定義右鍵選單——複製到貼上板 ####需求: 滑鼠在li標籤上點選右鍵出現選單,主要是複製等功能 遮蔽瀏覽器預設右鍵點選事件 右鍵選單出現在滑鼠點選的位置 點選螢幕其他位置選單消失

火車票線程同步互斥體實現

eas 火車票 oid 主線程 ## code api 火車 ram ##占位 #include <windows.h> #include <iostream> int tickets = 100; HANDLE hMutex;

Servlet+JDBC設計實現圖書系統管理功能實現

sta 上傳 lec () 一個 ioe nlog and turn 寫在前面,之前由於種種原因博客好久沒有更新。最近打算重拾JavaWeb,所以從頭開始,先用servlet+jdbc+bootstrap最基礎的代碼實現一個圖書系統。考慮有管理員端+用戶端,項目完成後會上

嵌入式開發環境搭建 虛擬機實現橋接Ethernet網口 並且通過WIFI進行NAT聯網

war bubuko 搭建服務器 6.4 網線 16.4 聯網 橋接 圖片 背景:   目前手頭上有一塊JZ2440的板子,之前有搭建完整套開發環境,由於虛擬機故障需要從新搭建服務器端,故在此記錄搭建步驟 環境:   Ubuntu16.4   VMWare 12 先行條件:

深度學習——deepNN模型實現攝像頭實時識別人臉表情C++和python3.6混合程式設計

一、背景介紹 最近需要做人臉識別方向的東西,就被分配了新的任務,利用攝像頭實時檢測人臉表情,並製作成一個小軟體,這裡當然要用C++實現,並用C++做成一個介面。 由於博主之前用python做過類似的小程式,因此這裡的模型實現主要採用了python,為了用C++實現介面,這裡採用C++呼叫py

C++類和物件&&實現OFFSETOF巨集&&THIS指標

一.目錄   1.物件的相關知識   2.類的定義   3.類的例項化   4.類物件模型   5.模擬實現offsetof巨集   6.this指標 二.正文 1.物件的相關知識   C語言是面向過程的,關注的是過程,分析求解問題的步驟,通過函式呼叫逐步解決問題

SpringCloud 用springboot實現簡單服務呼叫

分享一下我老師大神的人工智慧教程吧。零基礎,通俗易懂!風趣幽默!http://www.captainbed.net/ 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

資料結構入門棧的實現

  從這一篇文章開始,筆者將會正式進入資料結構的領域,後面也將會持續更新。   本文將會講述一種特殊的線性表結構:棧(stack)。   棧,是限定僅在表尾進行插入或刪除操作的線性表。因此,對棧來說,表尾端有其特殊含義,稱為棧頂(top),相應地,表頭端稱為棧底(bottom)。不含任何元素的空表稱為空棧。

.NET 官方驅動MongoDB.Driver的聚合管道Aggregate用法之 具體實現

工作需要,用到MongoDB,筆者也是邊學邊用,基於官方的驅動MongoDB.Driver的Aggregate具體用法,網上資料甚少,且部分實現記錄並不詳盡。也是邊學邊用,文中錯誤之處,請留言指正。 筆者在儲存和基本的時間範圍查詢時,都可以不使用聚合管道實現而使用約束器FilterDefinit

OpenCV-Python實戰Ubuntu18.04實現人臉檢測+輸出抓圖時間

參考:python+opencv計算程式碼執行時間:time庫和opencv自帶方法getTickCount cv2級聯分類器CascadeClassifier 一、Haar特徵分類器介紹 Haar特徵分類器就是一個XML檔案,該檔案中會描述人體各個部位的Haar特徵值。包括人

ReactNative 呼叫Android 原生——原生模組()

前言 React native呼叫Android原生主要2種方式: 1、呼叫原生模組 2、呼叫原生元件 這裡之所以強調有2種方式主要是自己剛開始弄rn調原生的時候感覺很懵,感覺沒有學習的方向,所以提醒一

ReactNative 呼叫Android 原生——原生模組(二)

ReactNative 呼叫Android 原生(一)——原生模組(一):https://blog.csdn.net/danfengw/article/details/83862623 在上次文章中我們只是簡單的嘗試了rn給Android原生傳遞引數呼叫Andr

深入理解多執行緒——Synchronized的實現原理

synchronized,是Java中用於解決併發情況下資料同步訪問的一個很重要的關鍵字。當我們想要保證一個共享資源在同一時間只會被一個執行緒訪問到時,我們可以在程式碼中使用synchronized關鍵字對類或者物件加鎖。那麼,本文來介紹一下synchronized關鍵字的實

【Android UI設計與開發】第06期:底部選單欄使用TabActivity實現底部選單欄

轉載請註明出處:http://blog.csdn.net/yangyu20121224/article/details/8989063               從這一篇文章開始,我們將進入到一個應用程式主介面UI的開發和設計中了,底部選單欄在Android的應用開發當

Javascript-17-(JS函式_動態函式)

【JS動態函式】 使用的是JS中內建的一個物件Function(大寫)。 引數列表,函式體都是通過字串動態指定的。 【程式碼】<html> <head> </head&

非同步程式設計學習之路-通過Thread實現簡單多執行緒

自上週主管帶我看過kafka內部實現,使用Feature來做的資料批量傳送之後,自此決定要學好併發程式設計。 因為本人在多執行緒上只能說是一個新手,打算從最底層的Thread一步一步記錄我的學習之路。 通過Thread實現多執行緒的方式有兩種,程式碼如下: 一、多執行緒實現(繼承Thre

Android camera2 實現相機預覽及獲取預覽幀資料流

一、本文重點說明 本文基於 android camera2 實現視訊預覽,暫未相容 camera1 API,基礎實現可以參考 googlesample Camera2 例子 android-Camera2Basic ,本文以工具類形式實現一步呼叫。 谷歌例子中沒有具體指