[jQuery] queue() & dequeue()
1. queue(), λκΈ°μ΄μ ν¨μμ λκΈ°μ΄ μ‘°μνκΈ°
queue([queueName])
Return : Array
- μμμ μ€νλκ³ μλ ν¨μμ νλ₯Ό 보μ¬μ€λ€.
- queueName :: νλͺ λ¬Έμμ΄, κΈ°λ³Έκ°μ fxμ΄λ©°, κΈ°λ³Έ ν¨κ³Ό νλ₯Ό μλ―Ένλ€.
- λ¬΄μ¨ ν¨μλ€μ΄ μ€νλκ³ μλμ§ λ³΄μ¬μ€λ€.
<head>
<style>
div {
margin: 3px; width: 40px; height: 40px;
position: absolute; left: 0px; top: 40px;
background: green; display: none;
}
div.newcolor {
background: blue;
}
</style>
</head>
<body>
<p>The queue is length is: <span></span></p>
<div></div>
<script>
var div = $('div');
function runIt() {
div
.show('slow')
.animate({left: '+=200'}, 2000)
.slideToggle(1000)
.slideToggle('fast')
.animate({left: '-=200'}, 1500)
.hide('slow')
.show(1200)
.slideUp('normal', runIt)
}
function showIt() {
var n = div.queue('fx');
$('span').text(n.length);
setTimeout(showIt, 100);
}
runIt();
showIt();
</script>
</body>
<span>
μλ div
κ° μμ§μ΄λ κ°―μλ₯Ό 보μ¬μ€λ€. ('span').text(n)
λ§ νλ©΄ runIt()
μμ μμ§μ΄λ queueλ₯Ό λ³Ό μ μλ€.
$div.slideUp('normal' , runIt)
μ κ³μ λ°λ³΅νλλ‘ λμμ€λ€.
queue([queueName], newQueue)
Return : jQuery
- μμμ μ€νλκ³ μλ ν¨μ νλ₯Ό μ‘°μνκΈ°
- queueName : Type : String / νλͺ
λ¬Έμμ΄, κΈ°λ³Έκ°μ
fx
μ΄λ©° κΈ°λ³Έν¨κ³Ό νλ₯Ό μλ―Έ. - newQueue :: Type : Array / νμ¬ νλ₯Ό λ체ν ν¨μ λ°°μ΄.
- queueName : Type : String / νλͺ
λ¬Έμμ΄, κΈ°λ³Έκ°μ
queue([queueName], callback(next))
- callback :: Type : Function( Function next() ) / νμ μΆκ°λ μλ‘μ΄ ν¨μ. ν¨μκ° νΈμΆλλ©΄ νμ μλ λ€μ μμ΄ν μ΄ νμμ μ κ±°.
λͺ¨λ μμλ jQueryμ μν΄ μ체 ν¨μλ€μ νμ ννλ‘ μ§λκ² λλ€. λλΆλΆμ μ΄ν리μΌμ΄μ μ λ¨ νλμ ν(fxλΌκ³ νλ)λ₯Ό μ¬μ©νκ² λλ€.
νλ μμμ μν΄ μ‘μ νλ€. νλμ μμμ λ€μμ μ λλ©μ΄μ ν¨μλ₯Ό μ€νμν€λ λ°©λ²μ΄ μΌλ°μ μΈ μμ΄λ€.
$('#foo').slideUp().fadeIn();
μ΄ μ½λκ° μ€νλλ©΄ μμλ μ¬λΌμ΄λ© μμνκ³ μ¬λΌμ΄λ©μ΄ μλ£λλ©΄ νμ΄λ λ³νκ° μΌμ΄λκ² λλ€.
queue()
ν¨μλ μ§μ μ μΌλ‘ ν¨μμ λκΈ°μ΄(ν)λ₯Ό μ‘°μν μ μλ€.
queue()
λ₯Ό μ΄μ©νμ¬ μ½λ°±νλ λ°©λ²μ νΉμ΄ν μ¬μ©λ²μΌλ‘ νμ λμ μλ‘μ΄ ν¨μλ₯Ό μΆκ°ν΄ λ£μ μ μκ² λλ€.
μ΄λ° λ°©λ²μ μ λλ©μ΄μ ν¨μλ€μ μ½λ°±ν¨μλ₯Ό μ¬μ©νλ κ²κ³Ό μ μ¬νλ€.
[μμ ] :: μ λλ©μ΄μ ν¨μμ queue(callback) μ μ μ¬νλ€.
$('#foo').slideUp();
$('#foo').queue(function() {
alert('Animation complete.');
$(this).dequeue();
});
μ μ½λλ μλμ κ°λ€.
$('#foo').slideUp(function() {
alert('Animation complete.');
})
$('#foo')
κ° slideUp() μ ν νμ alertμ μΆλ ₯νλ€. (νλ²λ§ μ€ν)
.queue() λ‘ ν¨μλ₯Ό μΆκ°ν λ .dequeue() κ° κ²°κ΅ νΈμΆλμ΄ λΌμΈμ λ€μ ν¨μκ° μ€νλλλ‘ ν΄μΌνλ€.
jQuery 1.4λΆν°λ 첫λ²μ§Έ μΈμλ‘ λλ€λ₯Έ ν¨μλ₯Ό μ λ¬ν μ μκ² λμλ€. μ΄λ¬ μμΌλ‘ μ¬μ©νλ©° μλμ μΌλ‘ νμ μλ λ€μ ν¨μκ° νμμ μ κ±°λκ² λλ€.
$('#test').queue(function() {
// Do some default..
next();
});
[μμ ] :: νλ₯Ό μ‘°μν΄λ³΄μ.
<head>
<style>
div {
margin: 3px; width: 40px; height: 40px;
position: absolute; left: 0px; top: 40px;
background: green; display: none;
}
div.newcolor {
background: blue;
}
</style>
</head>
<body>
Click here..
<div></div>
<script>
$(document.body).click(function() {
$('div')
.show('slow')
.aniamte({ left: '+=200'}, 2000)
.queue(function() {
$(this).addClass('newcolor').dequeue();
})
.animate({ left: '-=200'}, 500)
.queue(function() {
$(this).removeClas('newcolor').dequeue();
})
.slideUp();
})
</script>
</body>
[μμ ] :: ν λ°°μ΄μ μΈν νμ¬ νλ₯Ό μ κ±°ν΄λ³΄μ.
<head>
<style>
div {
margin: 3px; width: 40px; height: 40px;
position: absolute; left: 0px; top: 40px;
background: green; display: none;
}
div.newcolor {
background: blue;
}
</style>
</head>
<body>
<button id="start">Start</button>
<button id="stop">Stop</button>
<div></div>
<script>
$('#start').click(function() {
$('div')
.show('slow')
.animate({ left: '+=200'}, 5000)
.queue(function() {
$(this).addClass('newcolor').dequeue();
})
.animate({ left: '-=200'}, 1500)
.queue(function() {
$(this).removeClass('newcolor').dequeue();
})
.slideUp();
});
$('#stop').click(function() {
$('div').queue('fx', []).stop();
});
</script>
</body>
queue('fx' ,[])
fxλ κΈ°λ³Έν¨κ³Ό ν, [] νμ¬ νλ₯Ό λ체ν ν¨μλ°°μ΄
stopλ²νΌμ λλ₯΄λ©΄ κ·Έ μμΉμμ μ μ§λμλ€κ° startλ²νΌ λλ₯΄λ©΄ λͺ¨λ μ λλ©μ΄μ μ μλ£νλ€. λ€μ startλ²νΌμ λλ₯΄λ©΄ μ μ§λμλ μμΉμμ λ€μ μμ§μΈλ€.
2. dequeue(), λκΈ°μ΄μ λ€μ ν¨μ μ€ν
dequeue([queueName])
Return : jQuery
dequeue()
ν¨μκ° νΈμΆλλ©΄ νμμ λΉ μ Έλμ λ€μ ν¨μλ₯Ό μ€ννλ€.- νμμ λΉ μ Έλμ λ€μ μν©μΌλ‘ μ§ννκ³ μΆμ λμ¬μ©.
- queue() λ©μλ μ€ν μ΄νμ μ μ©λ μ λλ©μ΄μ
λ©μλκ° μ·¨μλμ§μκ² μ°κ²°ν΄μ€λ€.
dequeue()
κ° μμ μ .animate({ left: '10px', top: '30px' }, 700); κ° μ€νλμ§ μλλ€. <head> <style> div { margin: 3px; width: 50px; height: 50px; position: absolute; left: 10px; top: 30px; background: yellow; } div.red { background: red; } </style> </head> <body> <button>Start</button> <div></div> <script> $('button').click(function() { $('div') .animate({ left: '+=200'}, 2000) .animate({ top: '0px'}, 600) .queue(function() { $(this).toggleClass('red').dequeue(); }) .animate({ left: '10px', top: '30px' }, 700); }) </script> </body>