본문 바로가기
CLASS/JQUERY

#4-1 / jquery 이용 룰렛 제작

by hingu 2024. 6. 13.
⚡ 룰렛 페이지 제작
<body>
	<form id="frm"> 
		<input type="hidden" name="result" id="result" value="">
		<input type="hidden" name="mname" value="홍길동">
		<input type="hidden" name="mid" value="hong">
	    <section class="outline" id="outline">   
	        <div class="roule_bk" id="roule_bk">
	        	<img src="./image/rullet_back.png">
	        </div>
	        <div class="gamepan">
		        <span class="gamepin"><img src="./image/rullet_pin.png"></span>
		        <span class="gamebtn" id="gamebtn"><img src="./image/rullet_btn.png"></span>
		        <span class="gameboard" id="gameboard"><img src="./image/rullet_board.png"></span>    
	        </div>
	    </section>
	    <input type="button" value="게임응모완료" id="btn">
    </form>
</body>

 

var data = ["500포인트","5000포인트","꽝","3000포인트","2000포인트","1000포인트"];
var count = 3; //기회 count

$(function(){
	var arr = new Array();
	$rd = 0;
	$("#gamebtn").click(function(){
		if(count <= 0){
			alert("해당 룰렛게임은 총 3회만 진행하실 수 있습니다.");
		}else{
			var $node = 0; //당첨결과
			//룰렛 당첨에대한 범위 설정 - 1~360 범위
			$random = Math.ceil(Math.random()*360);
			
			if($random>=5 && $random<=56){
				$node = 0;
			}else if($random>=66 && $random<=116){
				$node = 1;
			}else if($random>=126 && $random<=176){
				$node = 2;
			}else if($random>=186 && $random<=236){
				$node = 3;
			}else if($random>=246 && $random<=296){
				$node = 4;
			}else if($random>306 && $random<360){
				$node = 5;
			}else{
				$node = 2;
				//해당각도 아닌값은 모두 꽝처리 => pc값 무시하고 직접 그냥 넣어줌
				$random = 154;
			}
			
			var $game = $random + $.fn.random();
			$("#gameboard").css("transform","rotate("+ $game +"deg)");
			
			arr.push(data[$node])
			$("#result").val(arr);
		}
		
		count--;
	})
	
	//deg 누적
	$.fn.random = function(){
		$rd = $rd + 1800; //5바퀴 기본으로 돌고 당첨 위치로 돌아감
		return $rd;
	}
	
	//결과 제출(backend에게 전달)
	$("#btn").click(function(){
		if($("#result").val() != ""){
			$("#frm").attr("method","POST");
			$("#frm").attr("action","./gameok.do");
			$("#frm").submit();	
		}else{
			alert("룰렛을 한번 이상 돌려주세요")
		}
		
	})
})



당첨에대한 범위 설정
5~56 : 500포인트
66~116 : 5000포인트
126~176 : 꽝
186~236 : 3000포인트
246~296 : 2000포인트
306~360 : 1000포인트
=>나머진 다 꽝처리

=> 선생님의 폭주 🤷‍♂️ 진짜 data에 저장되게 해보기 : https://dev-eunse.tistory.com/144

 

 

 

👀 jquery - 확장형함수

//javascript
function aaa(){
	random();	
}

function random(){
	console.log('ddd');
}

 

🔽 해당 문법을  jquery에서는 이렇게 사용

 

$.fn.함수명 : 확장형 함수 ( fn : funtion 줄임말 ) 

=> $. 문법은 jquery 1점대 문법 -> 예전버전을 쓰는 경우도 많기 때문에 아예 둘다 적용되는 해당 방식을 사용하는게 좋다...

$(function(){
	$("#gamebtn").click(function(){
		$.fn.random();	
	})
	
	$.fn.random = function(){ //확장함수
		console.log('ddd')
	}
})

 

 

👀 html에 직접 입력 X => js로 form 처리하기 

-> 보안을 위해 해당 방법으로 숨겨서 처리하는게 좋다

 

- javascript

document.getElementById("frm").method = "POST";
document.getElementById("frm").action = "./gameok.do";
document.getElementById("frm").submit();

 

- jquery

$("#btn").click(function(){
    $("#frm").attr("method","POST");
    $("#frm").attr("action","./gameok.do");
    $("#frm").submit();
})

 

 

 

 

 

'CLASS > JQUERY' 카테고리의 다른 글

jquery ui  (0) 2024.06.20
#5 / 회원가입 data mysql로 전달  (0) 2024.06.14
#3-2 / backend-data(배열) ▶ jquery를 이용한 배열 출력  (1) 2024.06.12
#3-1 / jquery이용한 form + submit  (0) 2024.06.12
#2 / jquery checkbox  (0) 2024.06.12