国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端:運用HTML+CSS+JavaScript實現(xiàn)拼圖游戲

這篇具有很好參考價值的文章主要介紹了前端:運用HTML+CSS+JavaScript實現(xiàn)拼圖游戲。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前一段時間突然來了一個想法,就是運用前端知識實現(xiàn)一個拼圖游戲,但是不知道具體怎樣實現(xiàn)。今天,想到既然實現(xiàn)不了現(xiàn)實中我們看到的那種拼塊,那么就用正方形來代替吧!html拼圖游戲,前端,前端,html,css,拼圖游戲,javascript,原力計劃
效果如下:
html拼圖游戲,前端,前端,html,css,拼圖游戲,javascript,原力計劃
想到就是當(dāng)小的圖片塊放到合適的位置上時,表示拼圖完成。

1. 前端布局

運用css浮動樣式,具體效果為:
html拼圖游戲,前端,前端,html,css,拼圖游戲,javascript,原力計劃
兩個div盒子,均采用左浮動,即它們的css樣式表示為:float:left
至于小圖片塊交換位置動態(tài)效果,只是在css樣式中設(shè)置這個屬性即可。

.right li{
	transition: all 1s;
}

這個css屬性小編覺得真的很不錯,其實,現(xiàn)實中我們在網(wǎng)頁端看到的輪播圖等效果都有它的影子,實現(xiàn)一個輪播圖只需用到相對定位和絕對定位、或者采用z-index等技術(shù)結(jié)合transition 等css屬性可以完美實現(xiàn)(額外擴展一下!)
html拼圖游戲,前端,前端,html,css,拼圖游戲,javascript,原力計劃

2. js腳本實現(xiàn)小圖片塊變換位置
1. 確定隨機小圖片塊的選擇

既然提到隨機,那么肯定用到 Math.random() 這個函數(shù)呀!這個函數(shù)生成的隨機數(shù)范圍為0~1之間的隨機小數(shù),如果我們用 Math.floor(Math.random()Xnum),那么它的結(jié)果將是0~num(不包括num)。這個num為總的小圖片塊的總數(shù),這樣我們用生成的這個隨機數(shù)即可確定一個小圖片塊的坐標,如 num = 37,每一行最多可以放小圖片塊數(shù)量為18,那么這個num表示的小圖片塊的位置為:(parseInt(num/18),num%18)=(2,1) ,通過這個坐標運用絕對定位相關(guān)知識,從而確定看到的效果中小圖片塊的樣式位置。

let randomPosArr = [];
let randomMap = {},map2 = {};
let countSum = count_w * count_h;
// 小圖片的總數(shù)
let i = 0;
while(i < randomNum){
	let pos = Math.floor(Math.random() * countSum);
	// 0 ~ 179
	let x = pos%count_w,y=Math.floor(pos/count_w);
	let pos_str = `${y},${x}`;
	if(randomMap[pos_str] === undefined){
		randomMap[pos_str] = true;
	}else{
		continue;
	}
	
	let num;
	while(true){
		num = Math.floor(Math.random() * randomNum);
		// 向下取整 0 ~ randomNum - 1 
		if(map2[num] === undefined){
			map2[num] = true;
			break;
		}
	}
	
	randomPosArr.push([y,x,num]);
	i ++;
}
2. 打亂隨機小圖片塊的對應(yīng)關(guān)系

雖然得到的隨機生成的小圖片的位置,那么怎樣打亂它們的對應(yīng)的關(guān)系呢?這里舉一個例子,比如原來的順序為 1,2,3,打亂之后,現(xiàn)在它們的順序為2,3,1,即處于下標為0的1用2來占,下標為1的2用3來占,下標為2的3用1來占。這樣的對應(yīng)關(guān)系,不論隨機小圖片塊的數(shù)量為奇數(shù)還是偶數(shù),均可以打亂之間的順序。
html拼圖游戲,前端,前端,html,css,拼圖游戲,javascript,原力計劃

let posMap = {};
for(let i=0;i<randomNum;i++){
	let pos_y = randomPosArr[i][0],pos_x = randomPosArr[i][1],index = randomPosArr[i][2];
	let pos_str = `${pos_y},${pos_x}`;
	let pos3 = randomPosArr[index];
	let pos_str2 = `${pos3[0]},${pos3[1]}`;
	posMap[pos_str] = pos_str2;
}

這里沒有用到隨機函數(shù) Math.random(),因為在上一個代碼處,已經(jīng)確定了,這里用 i 和生成的數(shù)組randomPosArr[i][2]來進行對應(yīng)關(guān)系。

3. 點擊小圖片塊進行拼圖操作

當(dāng)點擊一個沒有亂序的小圖片塊時,代碼會給出相關(guān)提示。
html拼圖游戲,前端,前端,html,css,拼圖游戲,javascript,原力計劃
當(dāng)點擊到一個亂序的圖片時,就進行拼圖操作,即把當(dāng)前位置正確的小圖片塊拼回來,把當(dāng)前圖片放到當(dāng)前位置正確的小圖片塊位置上。

function fun2(ele,v){
	let index = $(ele).attr('index'), index2 = $(ele).attr('index2');
	if(index2 === undefined || index2 === ''){
		alert('無需操作!');
		return;
	}
	// index2 當(dāng)前位置
	else{
		let obj = fun3(index2);
		// console.log(obj);
		if(obj !== null){
			let _index2 = obj.attr('index2'),_arr2 = obj.attr('index').split(',');
			$(ele).attr('index2',_index2);
			obj.attr('index2','');
			// obj 已經(jīng)回到原始位置,去掉index2屬性中的值
			let _arr1 = _index2.split(',');
			
			obj.css({
				'top': parseInt(_arr2[0]) * param + 'px',
				'left': parseInt(_arr2[1]) * param + 'px'
			});
			
			$(ele).css({
				'top': parseInt(_arr1[0]) * param + 'px',
				'left': parseInt(_arr1[1]) * param + 'px'
			});
			
			if(fun4()){
				setTimeout(function(){
					alert('拼圖成功!');
				},2000);
			}
		}
	}
}

fun2函數(shù)對應(yīng)小圖片塊上的點擊事件。

4. 更改小圖片塊的大小和小圖片塊的個數(shù)

代碼頭部這里進行修改參數(shù)即可。
html拼圖游戲,前端,前端,html,css,拼圖游戲,javascript,原力計劃
【注】:上傳的圖片寬至少大于或等于900像素

5. 改進方案

小編覺得還可以加一個操作,就是當(dāng)我們點擊沒有亂序的圖片時,把當(dāng)前圖片再加幾個小圖片塊加入到這個隨機小圖片塊中,這樣難度就高一些了,也更加完美,哈哈!
html拼圖游戲,前端,前端,html,css,拼圖游戲,javascript,原力計劃

3. 實現(xiàn)參考代碼和運行結(jié)果

參考代碼已經(jīng)上傳到GitCode,鏈接為:拼圖游戲.html
html拼圖游戲,前端,前端,html,css,拼圖游戲,javascript,原力計劃
運行結(jié)果為:

前端:運用HTML+CSS+JavaScript實現(xiàn)拼圖游戲文章來源地址http://www.zghlxwxcb.cn/news/detail-712753.html

到了這里,關(guān)于前端:運用HTML+CSS+JavaScript實現(xiàn)拼圖游戲的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 前端:運用html+css+js模仿百度熱搜電影榜鼠標移入特效

    前端:運用html+css+js模仿百度熱搜電影榜鼠標移入特效

    1. 實現(xiàn)原理 百度熱搜上電影榜鼠標移入特效如上圖所示。個人覺得上述特效實現(xiàn)原理為使用相對定位、絕對定位實現(xiàn)的(鼠標移入和沒有移入時,元素布局有一些不同而已)。至于鼠標移入時,出現(xiàn)延遲效果,則是在css上設(shè)置transition(用于設(shè)置過渡效果的)實現(xiàn)的。我的實現(xiàn)效果

    2024年02月15日
    瀏覽(102)
  • 前端全集Ⅰ---- HTML/CSS/JavaScript

    前端全集Ⅰ---- HTML/CSS/JavaScript

    Web:全球廣域網(wǎng),也稱萬維網(wǎng),能夠通過瀏覽器訪問的網(wǎng)站 Web網(wǎng)站的工作流程:(前后端分離模式) 網(wǎng)頁有哪些組成? 文字、圖片、視頻、音頻、超鏈接 前端代碼通過瀏覽器的解析和渲染變成用戶看到的頁面,對網(wǎng)頁進行解析渲染的部分就是瀏覽器的內(nèi)核 Web標準 不同的瀏

    2024年02月15日
    瀏覽(47)
  • 前端三劍客 HTML+CSS+JavaScript ② HTML相關(guān)概念

    前端三劍客 HTML+CSS+JavaScript ② HTML相關(guān)概念

    他們這樣形容我 是暴雨澆不滅的火 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????? ????????????????—— 24.4.18 學(xué)習(xí)目標 ? ? ? ? 理解 ? ? ? ? ? ? ? ? HTML的概念 ? ? ? ? ? ? ? ? HTML的分類 ? ? ? ? ? ? ? ? HTML的關(guān)系 ? ? ? ? ? ? ? ? HTML的語義化 ? ? ? ? 應(yīng)用

    2024年04月23日
    瀏覽(31)
  • 前端= 結(jié)構(gòu)(HTML)+ 樣式(CSS)+ 行為(JavaScript)

    前端開發(fā)確實涵蓋了行為(JavaScript)、樣式(CSS)和結(jié)構(gòu)(HTML)這三個主要方面。這三個方面在前端開發(fā)中密切協(xié)作,共同構(gòu)建用戶界面和用戶體驗。 結(jié)構(gòu)(Structure):HTML 是用于定義頁面結(jié)構(gòu)的標記語言。通過使用 HTML 標簽,可以創(chuàng)建網(wǎng)頁的基本骨架,包括標題、段落、

    2024年02月13日
    瀏覽(27)
  • [前端開發(fā)] 常見的 HTML CSS JavaScript 事件

    代碼示例指路 常見的 HTML、CSS、JavaScript 事件代碼示例 在 Web 開發(fā)中,事件是用戶與網(wǎng)頁交互的重要方式之一。通過事件,用戶可以與頁面元素進行交互,觸發(fā)相應(yīng)的功能或效果。本文將介紹常見的 HTML、CSS、JavaScript 事件,以及事件對象和事件代理的概念。 鼠標事件 鼠標事

    2024年02月19日
    瀏覽(30)
  • 前端隨筆:HTML/CSS/JavaScript和Vue

    前端隨筆:HTML/CSS/JavaScript和Vue

    最近因為工作需要,需要接觸一些前端的東西。之前雖然大體上了解過 HTML 、 CSS 和 JavaScript ,也知道 HTML 定義了內(nèi)容、 CSS 定義了樣式、 JavaScript 定義了行為,但是卻沒有詳細的學(xué)習(xí)過前端三件套的細節(jié)。而最近的工作中需要使用 Vue ,并且想到未來的工作中使用 Vue 能夠更

    2024年02月16日
    瀏覽(26)
  • 前端技術(shù)Html,Css,JavaScript,Vue3

    1.基本標簽 2.文本格式化 3.鏈接 4.圖片 5.無序列表 6.有序列表 7.表格 8.表單 1.選擇器 2.文本和字體 3.鏈接 4.隱藏 5.定位position 6.浮動 7.對齊 8.圖像 1.輸出 2.函數(shù) 3.常用事件 4.DOM 5.改變Html 6.DOM 元素 (節(jié)點) 尾部創(chuàng)建新的 HTML 元素 (節(jié)點) - appendChild() 頭部創(chuàng)建新的 HTML 元素 (節(jié)點)

    2024年02月13日
    瀏覽(53)
  • 前端(html+css+javascript)作業(yè)--展現(xiàn)家鄉(xiāng)的網(wǎng)頁

    前端(html+css+javascript)作業(yè)--展現(xiàn)家鄉(xiāng)的網(wǎng)頁

    期末期間,老師布置了前端作業(yè),現(xiàn)在放到這里,給各位同志參考。 桂平市是廣西壯族自治區(qū)的一個美麗的城市,擁有豐富的歷史文化和自然景觀,屬于貴港市管轄,那為什么是看起來是市級而不是縣級,其實他就是個 市級縣,比縣大一些人口多一些就叫做市了。 此網(wǎng)頁不

    2024年01月17日
    瀏覽(21)
  • 【前端】javascript+html+css 家具銷售網(wǎng)站(代碼+報告)

    【前端】javascript+html+css 家具銷售網(wǎng)站(代碼+報告)

    ??博__主??:米碼收割機 ??技__能??:C++/Python語言 ??公眾號??:測試開發(fā)自動化【獲取源碼+商業(yè)合作】 ??榮__譽??:阿里云博客專家博主、51CTO技術(shù)博主 ??專__注??:專注主流機器人、人工智能等相關(guān)領(lǐng)域的開發(fā)、測試技術(shù)。 整個網(wǎng)頁在頭部部分,定義了字符編碼、

    2024年02月14日
    瀏覽(21)
  • 建站系列(五)--- 前端開發(fā)語言之HTML、CSS、JavaScript

    建站系列(五)--- 前端開發(fā)語言之HTML、CSS、JavaScript

    建站系列(一)— 網(wǎng)站基本常識 建站系列(二)— 域名、IP地址、URL、端口詳解 建站系列(三)— 網(wǎng)絡(luò)協(xié)議 建站系列(四)— Web服務(wù)器之Apache、Nginx 建站系列(五)— 前端開發(fā)語言之HTML、CSS、JavaScript 建站系列(六)— 后端開發(fā)語言 建站系列(七)— 常用前后端框架

    2024年02月09日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包