IT/UI | UX
[UI] 제이쿼리 UI 사용해서 직소퍼즐 만들기
아랄라랄라
2020. 8. 24. 14:50
<!-- 퍼즐 -->
<div class="puzzle">
<a href="#none" class="btn-hint">힌트보기</a>
<div class="puzzle-map">
<img src="./asset/img/puzzle/puzzle_bg.jpg" alt="">
<div class="piece1-on"><img src="./asset/img/puzzle/1.png" alt=""></div>
<div class="piece2-on"><img src="./asset/img/puzzle/2.png" alt=""></div>
<div class="piece3-on"><img src="./asset/img/puzzle/3.png" alt=""></div>
<div class="piece4-on"><img src="./asset/img/puzzle/4.png" alt=""></div>
<div class="piece5-on"><img src="./asset/img/puzzle/5.png" alt=""></div>
<div class="piece6-on"><img src="./asset/img/puzzle/6.png" alt=""></div>
<div class="piece7-on"><img src="./asset/img/puzzle/7.png" alt=""></div>
<div class="piece8-on"><img src="./asset/img/puzzle/8.png" alt=""></div>
<div class="piece9-on"><img src="./asset/img/puzzle/9.png" alt=""></div>
<div class="piece10-on"><img src="./asset/img/puzzle/10.png" alt=""></div>
<div class="piece11-on"><img src="./asset/img/puzzle/11.png" alt=""></div>
<div class="piece12-on"><img src="./asset/img/puzzle/12.png" alt=""></div>
</div>
<div class="puzzle-piece">
<span class="piece1"><img src="./asset/img/puzzle/1.png" alt=""></span>
<span class="piece2"><img src="./asset/img/puzzle/2.png" alt=""></span>
<span class="piece3"><img src="./asset/img/puzzle/3.png" alt=""></span>
<span class="piece4"><img src="./asset/img/puzzle/4.png" alt=""></span>
<span class="piece5"><img src="./asset/img/puzzle/5.png" alt=""></span>
<span class="piece6"><img src="./asset/img/puzzle/6.png" alt=""></span>
<span class="piece7"><img src="./asset/img/puzzle/7.png" alt=""></span>
<span class="piece8"><img src="./asset/img/puzzle/8.png" alt=""></span>
<span class="piece9"><img src="./asset/img/puzzle/9.png" alt=""></span>
<span class="piece10"><img src="./asset/img/puzzle/10.png" alt=""></span>
<span class="piece11"><img src="./asset/img/puzzle/11.png" alt=""></span>
<span class="piece12"><img src="./asset/img/puzzle/12.png" alt=""></span>
</div>
</div>
/* -------------------------
퍼즐 맞추기
-------------------------*/
//랜덤
const piece = $('.puzzle-piece span');
const pieceOdd = $('.puzzle-piece span:nth-child(odd)');
const pieceEven = $('.puzzle-piece span:nth-child(even)');
const width = $('.puzzle-piece').width() - 180;
const height = $('.puzzle-piece').height() - 150;
for (let i = 0; i < piece.length; i++) {
let topPosition = Math.floor(Math.random() * height) ;
let leftPosition = Math.floor(Math.random() * width) ;
pieceOdd.eq(i).css({top: topPosition + 'px', left: leftPosition + 'px'});
pieceEven.eq(i).css({bottom: topPosition + 'px', right: leftPosition + 'px'});
}
//퍼즐 drag
let drop_count = 0;
$('.puzzle-piece span').draggable({revert: true});
for (let i = 0; i < piece.length+1; i++) {
$('.puzzle-map .piece'+i+'-on').droppable({
accept: '.puzzle-piece .piece'+i,
drop: function (event, ui) {
$('.puzzle-piece span').eq(i-1).hide();
$('.puzzle-map div').eq(i-1).css({"opacity": "1"});
drop_count++;
sucessPiece();
}
});
}
function sucessPiece(){
if(drop_count==12){
$('.pop-bg, .pop-next').fadeIn();
$('#btn-m3').addClass('on');
stopTimeUp();
countdown.stop(); //stop
}
}
728x90