jQuery_jquery로 퍼즐 게임 만들기
소스코드 아이디어 분석:
【1】그림 격자를 생성하는 방법은 두 가지 방법을 생각합니다.
(1) 이 큰 그림을 16개의 작은 그림으로 자른 후 img 태그의 src를 사용합니다
(2) 큰 이미지가 하나만 있고, CSS의 background-position을 사용하여 각 요소의 배경 이미지를 잘라서 배치하는데, 16개의 배열 [0,0], [-150,0], [-300 ,0]..........(저는 이것을 채택합니다)
【2】그림 배경 위치 배열 및 레이아웃 위치 배열
CSS를 사용하여 이미지 위치를 지정하고 자르기로 선택한 후에는 데이터를 생성해야 합니다.
필수 CSS 배경 위치 지정 배열은 다음과 같습니다: [0,0],[-150,0],[-300,0],[-450,0],
[0,-150],[-150,-150],[-300,-150],[-450,-150],
[0,-300],[-150,-300],[-300,-300],[-450,-300],
[0,-450],[-150,-450],[-300,-450],[-450,-450]
그 중 [0,-150,-300,-450] 안의 값을 사용하므로(즉, 이미지의 높이와 너비를 150의 배수로 정의) 이 값을 사용합니다. for(){} 배열
을 통해 자동으로 생성//this.nCol은 4입니다. --- 제 퍼즐은 4*4이기 때문입니다
// this.nArea는 150으로 각 사진의 너비와 높이(600px/4) - 큰 사진은 600*600
var l = [],
p = [];
for(var n=0;n
p.push(-n*this.nArea); }
for(var i=0;i
k = i - this.nCol*t,
aP = [],
aL = [];
aP.push(p[k],p[t],i); //여기서는 3단계에서 판단에 사용되는 CSS 배경 위치 지정 배열에 i를 추가했습니다. 설정하는 데 사용할 필요는 없습니다. CSS 속성을 [bg-i]
태그의 속성으로 설정합니다. aL.push(l[k],l[t]);
This.aBgp[i] = aP;
This.aLayout[i] = aL; }
[3] 완료 여부 확인
두 번째 요소(div)는 CSS 배경 위치 this.aBgp[1](값은 [-150,0,1])을 적용하고 무작위로 할당된 레이아웃 위치는 this.aLayout[3]입니다(여기서 3은 무작위입니다). 생성됨) (값은 [453,0]), 왼쪽:453px,상단:0
이 요소를 이동하면 자체 구조의 순서가 아닌 letf 및 top 값이 변경됩니다. 이 요소의 왼쪽 및 위쪽 값을 가져옵니다(왼쪽으로 이동한 경우:151px, top:0). 그런 다음 this.aLayout[1]의 값 [151,0]에서 판단을 사용합니다(1 인덱스는 자체 레이블 속성의 [bg-i]=1이고 this.aBgp[1]의 인덱스입니다). 같음은 요소가 이동했음을 의미합니다. 뒤쪽 위치가 정확합니다.
상세코드:
/*
버전:2.0
*/
기능 GyPuzzleGame(옵션){
This.target = $(option.target);
This.data = option.data; //이미지 데이터
This.opt = 옵션;
This.nLen = option.count; //퍼즐 조각 개수
This.aColLayout = option.aColLayout [0,151,302,453];//가로 배열 레이아웃
This.aRowLayout = option.aRowLayout [0,151];//레이아웃 수직 배열
This.aColBgp = option.aColBgp [0,-150,-300,-450];//가로 배열 레이아웃
This.aRowBgp = option.aRowBgp || [0,-150];//레이아웃 수직 배열
This.nCol = this.aColLayout.length
This.nRow = this.aRowLayout.length;
This.aLayout = []; //레이아웃 배열
This.aBgp = []; //css 배경 위치 배열
This.init();
}
GyPuzzleGame.prototype = {
getRand:function(a,r){
var arry = a.slice(0),
newArry = [];
for(var n=0;n
newArry.push(arry[nR]);
arry.splice(nR,1);
}
newArry 반환;
},
setPos:함수(){
for(var i=0;i
aP = [],
aL = [];
aP.push(this.aColBgp[l],this.aRowBgp[t],i);
aL.push(this.aColLayout[l],this.aRowLayout[t]);
This.aBgp[i] = aP;
This.aLayout[i] = aL; }
},
isPass:함수(항목){
var _that = 이,
= 0;
Item.each(함수(){
var l =parseInt($(this).css('left')),
t =parseInt($(this).css('top')),
i =parseInt($(this).attr('data-bgi'));
If(l==_that.aLayout[i][0]&&t==_that.aLayout[i][1]){
is ++;
}
});
return is;
},
createDom:function(){
var layout = this.getRand(this.aLayout,this.nLen);
// console.log(layout);
for(var n=0;n
l = n - this.nCol*t;
var html = $('').
CSS({'왼쪽':레이아웃[n][0] 'px',
'상단':레이아웃[n][1] 'px',
'배경 이미지':'url(' this.data ')',
'배경 위치':this.aBgp[n][0] 'px' ' ' this.aBgp[n][1] 'px'
});
this.target.append(html);
}
},
이동:함수(){
var $div = this.target.find('.puzzle_list'),
_저것=이것;
var hasElem = function(){
var t = false;
$div.each(함수(){
if($(this).hasClass("on")){
t = 참;
}
});
돌아오세요;
};
//클릭
$div.click(함수(){
var $this = $(this);
if(hasElem()&&!$this.hasClass("on")){
var index = $('.on').index();
if($div.eq(index).is(':animated')||$this.is(':animated')){
false를 반환합니다.
}
var l = $div.eq(index).position().left,
t = $div.eq(index).position().top,
myl = $this.position().left,
myt = $this.position().top;
$(this).animate({'left':l,'top':t});
$div.eq(index).css({'z-index':'1'}).animate({'left':myl,'top':myt},function(){
$(this).removeClass("on");
$(this).find('span').remove();
$(this).css({'z-index':'0'});
if(_that.isPass($div) == _that.nLen){
if(typeof _that.opt.success == '함수'){
_that.opt.success({target:_that.target});
}
}
});
}
그렇지 않으면 {
if($this.hasClass("on")){
$this.removeClass("on");
$this.find('span').remove();
}
그렇지 않으면 {
$this.addClass("on").append("");
}
}
});
},
초기화:함수(){
// 设置CSS背景定位与元素布局数组
this.setPos();
// 创建元素
this.createDom();
// 挪动图그림
this.move();
}
}
//实例调사용
새로운 GyPuzzleGame({
'데이터':'images/03.jpg',
'대상':'#pA',
'개수':8,
'성공':함수(선택){
opt.target.append('
}
});

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











jQuery 참조 방법에 대한 자세한 설명: 빠른 시작 가이드 jQuery는 웹 사이트 개발에 널리 사용되는 JavaScript 라이브러리로, JavaScript 프로그래밍을 단순화하고 개발자에게 풍부한 기능을 제공합니다. 이 기사에서는 jQuery의 참조 방법을 자세히 소개하고 독자가 빠르게 시작할 수 있도록 구체적인 코드 예제를 제공합니다. jQuery 소개 먼저 HTML 파일에 jQuery 라이브러리를 도입해야 합니다. CDN 링크를 통해 소개하거나 다운로드할 수 있습니다.

jQuery에서 PUT 요청 방법을 사용하는 방법은 무엇입니까? jQuery에서 PUT 요청을 보내는 방법은 다른 유형의 요청을 보내는 것과 유사하지만 몇 가지 세부 사항과 매개 변수 설정에 주의해야 합니다. PUT 요청은 일반적으로 데이터베이스의 데이터 업데이트 또는 서버의 파일 업데이트와 같은 리소스를 업데이트하는 데 사용됩니다. 다음은 jQuery에서 PUT 요청 메소드를 사용하는 구체적인 코드 예제입니다. 먼저 jQuery 라이브러리 파일을 포함했는지 확인한 다음 $.ajax({u를 통해 PUT 요청을 보낼 수 있습니다.

jQuery를 사용하여 요소의 높이 속성을 제거하는 방법은 무엇입니까? 프런트엔드 개발에서는 요소의 높이 속성을 조작해야 하는 경우가 종종 있습니다. 때로는 요소의 높이를 동적으로 변경해야 할 수도 있고 요소의 높이 속성을 제거해야 하는 경우도 있습니다. 이 기사에서는 jQuery를 사용하여 요소의 높이 속성을 제거하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. jQuery를 사용하여 높이 속성을 연산하기 전에 먼저 CSS의 높이 속성을 이해해야 합니다. height 속성은 요소의 높이를 설정하는 데 사용됩니다.

제목: jQuery 팁: 페이지에 있는 모든 태그의 텍스트를 빠르게 수정하세요. 웹 개발에서는 페이지의 요소를 수정하고 조작해야 하는 경우가 많습니다. jQuery를 사용할 때 페이지에 있는 모든 태그의 텍스트 내용을 한 번에 수정해야 하는 경우가 있는데, 이는 시간과 에너지를 절약할 수 있습니다. 다음은 jQuery를 사용하여 페이지의 모든 태그 텍스트를 빠르게 수정하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저 jQuery 라이브러리 파일을 도입하고 다음 코드가 페이지에 도입되었는지 확인해야 합니다. <

제목: jQuery를 사용하여 모든 태그의 텍스트 내용을 수정합니다. jQuery는 DOM 작업을 처리하는 데 널리 사용되는 인기 있는 JavaScript 라이브러리입니다. 웹 개발을 하다 보면 페이지에 있는 링크 태그(태그)의 텍스트 내용을 수정해야 하는 경우가 종종 있습니다. 이 기사에서는 jQuery를 사용하여 이 목표를 달성하는 방법을 설명하고 구체적인 코드 예제를 제공합니다. 먼저 페이지에 jQuery 라이브러리를 도입해야 합니다. HTML 파일에 다음 코드를 추가합니다.

jQuery 요소에 특정 속성이 있는지 어떻게 알 수 있나요? jQuery를 사용하여 DOM 요소를 조작할 때 요소에 특정 속성이 있는지 확인해야 하는 상황이 자주 발생합니다. 이 경우 jQuery에서 제공하는 메소드를 사용하여 이 기능을 쉽게 구현할 수 있습니다. 다음은 jQuery 요소에 특정 속성이 있는지 확인하기 위해 일반적으로 사용되는 두 가지 방법을 특정 코드 예제와 함께 소개합니다. 방법 1: attr() 메서드와 typeof 연산자를 // 사용하여 요소에 특정 속성이 있는지 확인

jQuery는 웹 페이지에서 DOM 조작 및 이벤트 처리를 처리하는 데 널리 사용되는 인기 있는 JavaScript 라이브러리입니다. jQuery에서 eq() 메서드는 지정된 인덱스 위치에서 요소를 선택하는 데 사용됩니다. 구체적인 사용 및 적용 시나리오는 다음과 같습니다. jQuery에서 eq() 메서드는 지정된 인덱스 위치에 있는 요소를 선택합니다. 인덱스 위치는 0부터 계산되기 시작합니다. 즉, 첫 번째 요소의 인덱스는 0이고 두 번째 요소의 인덱스는 1입니다. eq() 메소드의 구문은 다음과 같습니다: $("s

Yitian Camera 2023의 최신 버전을 다운로드하여 설치하세요. 카메라 기능이 매우 향상되어 언제 어디서나 사진을 찍을 수 있어 매우 편리합니다. .을 무료로 다운로드할 수 있습니다. 사용 방법은 매우 간단합니다. 원클릭 미화로 매일 온라인에서 시도할 수 있는 인기 있는 사진 스타일이 많이 있습니다. 몇 분 만에 아름다운 여신이 되고, 인생에서 가장 아름다운 순간을 계속해서 녹화할 수도 있으며, 편집자는 온라인으로 Yitian 카메라 파트너를 위한 퍼즐을 설정하는 방법에 대한 세부 정보를 제공할 것입니다. 1. 먼저 소프트웨어 인터페이스에 들어가서 [템플릿]을 클릭하여 들어갑니다. 2. 인터페이스에 들어가고 [퍼즐]을 클릭하여 들어갑니다. 3. 마지막으로 인터페이스에 들어가고 [퍼즐]을 클릭합니다.
