[jQuery] jQuery UI

밍챠코·2024λ…„ 4μ›” 3일
0

jQuery/Bootstrap

λͺ©λ‘ 보기
3/6

πŸ€ jQuery UI


β–ΆοΈŽ .draggable( )

: 마우슀λ₯Ό μ‚¬μš©ν•˜μ—¬ μš”μ†Œ 이동(λ“œλž˜κ·Έ)

  • λͺ¨λ“  DOM μš”μ†Œμ—μ„œ λ“œλž˜κ·Έ κ°€λŠ₯ν•œ κΈ°λŠ₯을 μ‚¬μš©ν•˜λ„λ‘ μ„€μ •

  • λ“œλž˜κ·Έ κ°€λŠ₯ν•œ 개체λ₯Ό 마우슀둜 ν΄λ¦­ν•˜κ³  뷰포트 λ‚΄μ˜ 아무 κ³³μœΌλ‘œλ‚˜ λ“œλž˜κ·Έν•˜μ—¬ 이동

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery UI</title>
<link rel="stylesheet" href="../css/jquery-ui.min.css">
<style type="text/css">
	#draggable{width:150px;height:150px;padding:0.5em;}
</style>
<script type="text/javascript" src="../js/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../js/jquery-ui.min.js"></script>
<script type="text/javascript">
	$(function(){
		$('#draggable').draggable();
	});
</script>
</head>
<body>
<div id="draggable" class="ui-widget-content">
	<p>Drag me around</p>
</div>
</body>
</html>

  • λ“œλž˜κ·Έν•  μ‹œ μ›€μ§μž„

β–ΆοΈŽ .droppable( )

: λ“œλž˜κ·Έ κ°€λŠ₯ν•œ μš”μ†Œμ— λŒ€ν•œ λŒ€μƒ 생성 (ν•΄λ‹Ή νƒœκ·Έ μœ„μΉ˜μ— drop 됐을 λ•Œμ™€ out 됐을 λ•Œ)

  • λͺ¨λ“  DOM μš”μ†Œλ₯Ό λ“œλž˜κ·Έ κ°€λŠ₯ν•œ μš”μ†Œμ˜ λŒ€μƒμΈ λ“œλ‘­ν•  수 μžˆλ„λ‘ 함
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery UI</title>
<link rel="stylesheet" href="../css/jquery-ui.min.css">
<style type="text/css">
	#draggable{width:100px;height:100px;padding:0.5em;float:left;margin:10px 10px 10px 0;}
	#droppable{width:150px;height:150px;padding:0.5em;float:left;margin:10px;}
</style>
<script type="text/javascript" src="../js/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../js/jquery-ui.min.js"></script>
<script type="text/javascript">
	$(function(){
		$('#draggable').draggable();
		$('#droppable').droppable({
			drop:function(event,ui){
				//νƒœκ·Έκ°€ μ˜μ—­μ— μ§„μž…ν•  λ•Œ 이벀트 λ°œμƒ
				$(this).addClass('ui-state-highlight') //μΆ”κ°€ν•˜κ³ 
					   .find('p') //pνƒœκ·Έ μ°Ύμ•„μ„œ
					   .html('Dropped!'); //λ‚΄μš© λ³€κ²½
			},
			out:function(event,ui){
				//νƒœκ·Έκ°€ μ˜μ—­μ—μ„œ λ²—μ–΄λ‚  λ•Œ 이벀트 λ°œμƒ
				$(this).removeClass('ui-state-highlight')
					   .find('p')
					   .html('Drop here');
			}
		});
	});
</script>
</head>

<body>
	<div id="draggable" class="ui-widget-content">
		<p>Drag me around</p>
	</div>
	
	<div id="droppable" class="ui-widget-header">
		<p>Drop here</p>
	</div>
</body>
</html>



β–ΆοΈŽ .accordion( )

: μ œν•œλœ 곡간에 정보λ₯Ό ν‘œμ‹œν•˜κΈ° μœ„ν•΄ 접을 수 μžˆλŠ” μ½˜ν…μΈ  νŒ¨λ„μ„ ν‘œμ‹œ
(λ‚΄μš©μ΄ μˆ¨κ²¨μ Έμžˆλ‹€κ°€ 타이틀을 λˆ„λ₯΄λ©΄ λ‚˜μ˜€λŠ” κ²ƒμ²˜λŸΌ λ™μž‘)

  • 머리글을 ν΄λ¦­ν•˜μ—¬ νƒ­κ³Ό 맀우 μœ μ‚¬ν•œ 논리적 μ„Ήμ…˜μœΌλ‘œ κ΅¬λΆ„λœ μ½˜ν…μΈ λ₯Ό ν™•μž₯/μΆ•μ†Œ

  • μ„ νƒμ μœΌλ‘œ 마우슀 μ˜€λ²„ μ‹œ μ„Ήμ…˜ μ—΄κΈ°/λ‹«κΈ°λ₯Ό μ „ν™˜

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery UI</title>
<link rel="stylesheet" href="../css/jquery-ui.min.css">
<script type="text/javascript" src="../js/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../js/jquery-ui.min.js"></script>
<script type="text/javascript">
	$(function(){
		$('#accordion').accordion();
	});
</script>
</head>
<body>
<div id="accordion">
	<h3>Section 1</h3>
	<div>
		<p>
			μ˜€λŠ˜μ€ λͺ©μš”일
		</p>
	</div>
	<h3>Section 2</h3>
	<div>
		<p>
			내일은 κΈˆμš”μΌ
		</p>
	</div>
	<h3>Section 3</h3>
	<div>
		<p>
			λͺ¨λ ˆλŠ” ν† μš”μΌ
		</p>
	</div>
</div>
</body>
</html>




β–ΆοΈŽ .datepicker( )

: νŒμ—… λ˜λŠ” 인라인 달λ ₯μ—μ„œ λ‚ μ§œ 선택

  • ν‘œμ€€ 양식 μž…λ ₯ ν•„λ“œμ— μ—°κ²°λ˜μ–΄ μž‘μ€ μ˜€λ²„λ ˆμ΄μ—μ„œ λŒ€ν™”ν˜• 달λ ₯을 μ—Ά

  • μ œν•œμ„ κ±΄λ‹€κ±°λ‚˜ ν‘œμ‹œ/λ””μžμΈμ„ λ°”κΎΈκ³  싢을 μ‹œ μ‚¬μš©

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery UI</title>
<link rel="stylesheet" href="../css/jquery-ui.min.css">
<script type="text/javascript" src="../js/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../js/jquery-ui.min.js"></script>
<script type="text/javascript">
	$(function(){
		$('#datepicker').datepicker({
			showMonthAfterYear:true, //(default μ›” μ—°)
					// -은 /둜 λŒ€μ²΄ κ°€λŠ₯
			dateFormat:'yy-mm-dd', //(주의)yyyy둜 λͺ…μ‹œν•˜λ©΄ 연도 반볡
			changeMonth:true, //μ›” λ³€κ²½
			dayNamesMin:['일','μ›”','ν™”','수','λͺ©','금','ν† '],
			monthNamesShort:['1μ›”','2μ›”','3μ›”','4μ›”','5μ›”','6μ›”','7μ›”','8μ›”','9μ›”','10μ›”','11μ›”','12μ›”'],
			changeYear:true //연도 λ³€κ²½
		});
	});
</script>
</head>
<body>
	<p>
		Date : <input type="text" id="datepicker">
	</p>
</body>
</html>

  • μž…λ ₯μ°½ 클릭 μ‹œ
    β†’ μ›”, 연도 λ³€κ²½ κ°€λŠ₯
  • λ‚ μ§œ 클릭 μ‹œ yy-mm-dd ν˜•μ‹μœΌλ‘œ μžλ™μž…λ ₯

β–ΆοΈŽ.dialog( )

: λ‹€μ΄μ–Όλ‘œκ·Έ 창에 λ‚΄μš©μ„ 띄움

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery UI</title>
<link rel="stylesheet" href="../css/jquery-ui.min.css">
<script type="text/javascript" src="../js/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../js/jquery-ui.min.js"></script>
<script type="text/javascript">
	$(function(){
		$('#dialog').dialog();
	});
</script>
</head>
<body>
<div id="dialog" title="Basic dialog">
	<p>λŒ€ν•œλ―Όκ΅­μ˜ μˆ˜λ„ μ„œμšΈμ˜ 심μž₯뢀인 κ°•λ‚¨μ˜ μ—­μ‚Όμ—­ 근처 ν•œλ… λΉŒλ”©μ˜ κ°•μ˜μ‹€μž…λ‹ˆλ‹€.</p>
</div>
</body>
</html>

β€» dialog와 창의 차이점 : bodyλ₯Ό λ²—μ–΄λ‚  수 μ—†μŒ
β†’ x λˆ„λ₯΄λ©΄ dialog λ‹«νž˜


** buttonκ³Ό ν•¨κ»˜ μ‚¬μš©

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery UI</title>
<link rel="stylesheet" href="../css/jquery-ui.min.css">
<script type="text/javascript" src="../js/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../js/jquery-ui.min.js"></script>
<script type="text/javascript">
	$(function(){
		$('#dialog').dialog({
			autoOpen:false, //μˆ˜λ™μœΌλ‘œ λ‹€μ΄μ–Όλ‘œκ·Έ μ—΄κΈ°
			show:{
				effect:'blind',
				duration:1000
			},
			hide:{
				effect:'explode',
				duration:1000
			}
		}); //end of dialog
		
		//이벀트 μ—°κ²°
		$('#opener').click(function(){
			$('#dialog').dialog('open');
		});
	});
</script>
</head>
<body>
<div id="dialog" title="Basic dialog">
	<p>λŒ€ν•œλ―Όκ΅­μ˜ μˆ˜λ„ μ„œμšΈμ˜ 심μž₯뢀인 κ°•λ‚¨μ˜ μ—­μ‚Όμ—­ 근처 ν•œλ… λΉŒλ”©μ˜ κ°•μ˜μ‹€μž…λ‹ˆλ‹€.</p>
</div>

<button id="opener">Open Dialog</button>
</body>
</html>

  • open dialog λ²„νŠΌ 클릭 μ‹œ
  • x λˆ„λ₯΄λ©΄ ν©μ–΄μ§€λ©΄μ„œ λ‹«νž˜
  • μ‚¬μ΄μ¦ˆ λ³€κ²½ κ°€λŠ₯

** modal μ°½ : λΆ€λͺ¨ 창을 선택할 수 μ—†κ²Œ ν•΄ λ‹€μ΄μ–Όλ‘œκ·Έ 창에 집쀑할 수 있게 함

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery UI</title>
<link rel="stylesheet" href="../css/jquery-ui.min.css">
<script type="text/javascript" src="../js/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../js/jquery-ui.min.js"></script>
<script type="text/javascript">
	$(function(){
		$('#dialog').dialog({
			resizable:false, //μ‚¬μ΄μ¦ˆ λ³€κ²½ λΆˆκ°€
			height:200,
			modal:true, //λ‹€μ΄μ–Όλ‘œκ·Έκ°€ ν‘œμ‹œλ˜λ©΄ λΆ€λͺ¨ μ˜μ—­μ„ 선택할 수 μ—†μŒ
			buttons:{
				'Delete all items':function(){
					//λ‹€μ΄μ–Όλ‘œκ·Έ λ‹«κΈ°
					$(this).dialog('close');
				},
				Cancel:function(){
					//λ‹€μ΄μ–Όλ‘œκ·Έ λ‹«κΈ°
					$(this).dialog('close');
				}
			}
		});
	});
</script>
</head>
<body>
<div id="dialog" title="Basic dialog">
	<p>λŒ€ν•œλ―Όκ΅­μ˜ μˆ˜λ„ μ„œμšΈμ˜ 심μž₯뢀인 κ°•λ‚¨μ˜ μ—­μ‚Όμ—­ 근처 ν•œλ… λΉŒλ”©μ˜ κ°•μ˜μ‹€μž…λ‹ˆλ‹€.</p>
</div>

<p>
	λΆ€μ‚°μ—μ„œ μ—¬ν–‰ 쀑에 λ°©λ¬Έν•  수 μžˆλŠ” λͺ…μ†Œλ₯Ό μΆ”μ²œν•΄μ£Όμ„Έμš”!!
</p>
</body>
</html>

β†’ 일반적으둜 dialog μ‚¬μš©ν•  λ•Œ λͺ¨λ‹¬μ°½ λ§Œλ“¦

  • λͺ¨λ‹¬μ°½ β†’ dialog 뜰 μ‹œ λΆ€λͺ¨μ°½ 선택 λΆˆκ°€
  • dialog λ‹«μœΌλ©΄ λΆ€λͺ¨μ°½ 선택 κ°€λŠ₯

0개의 λŒ“κΈ€