Chosen: ์„ ํƒ๋œ ๊ฒƒ์€ "overflow:hidden"์ด ์žˆ๋Š” ์˜์—ญ์— ๋ฐฐ์น˜๋  ๋•Œ "์ž˜๋ผ๋ƒ„"์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2011๋…„ 07์›” 27์ผ  ยท  128์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: harvesthq/chosen

์–‘์‹์ด ์žˆ๋Š” div๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. div์—๋Š” CSS์— " overflow:hidden " ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.
Chosen์ด ์ƒ์„ฑ๋˜๊ณ  div์˜ ํ•˜๋‹จ ๋ผ์ธ ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐ€๋ฉด ์ž˜๋ฆฝ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์Šคํฌ๋ฆฐ์ƒท์ž…๋‹ˆ๋‹ค.

Imgur

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

.chosen-container.chosen-with-drop .chosen-drop {
    position: relative;
}

๋ชจ๋“  128 ๋Œ“๊ธ€

์ด๊ฒƒ์€ 59๋ฒˆ ๋ฌธ์ œ์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ปจํ…Œ์ด๋„ˆ ์š”์†Œ๋ถ€ํ„ฐ ํ”ผํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์ด์ง€ ์•Š์Šต๋‹ˆ๊นŒ? "overflow :hidden"์ด CSS๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ๋“œ๋กญ๋‹ค์šด์„ ์ปจํ…Œ์ด๋„ˆ ์™ธ๋ถ€๋กœ ๋ Œ๋”๋งํ•œ ๋‹ค์Œ ์ ˆ๋Œ€ ์œ„์น˜ ์ง€์ •์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ, dfischer์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒ๋œ ๋ฌธ์ œ๊ฐ€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ •์˜์— ๋”ฐ๋ผ overflow ์†์„ฑ์€ ์ฝ˜ํ…์ธ ๊ฐ€ ์š”์†Œ์˜ ๊ฒฝ๊ณ„๋ฅผ ๋„˜์œผ๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. _overflow_๋ฅผ ์ˆจ๊ธฐ์ง€ ์•Š์œผ๋ ค๋ฉด ํ•ด๋‹น ์†์„ฑ์„ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค.

์‚ฌ์‹ค์ด์ง€๋งŒ ์ด๊ฒƒ์ด ๋Œ€ํ™” ์ƒ์ž์˜ ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. (ํŠนํžˆ jquery ๋Œ€ํ™” ์ƒ์ž)

์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€์ด์ง€๋งŒ ์•ž์„œ ์–ธ๊ธ‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ด ํ‹ฐ์ผ“์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์ „์ฒด ๊ตฌ์กฐ์™€ ๊ตฌํ˜„์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ์œ„ํ•ด ์ปจํ…Œ์ด๋„ˆ ์™ธ๋ถ€์—์„œ ๋ Œ๋”๋งํ•œ ๋‹ค์Œ jQuery/JS ๋งค์ง์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋ฆฌ๊ฑฐ์— ์ƒ๋Œ€์ ์ธ ์œ„์น˜๋ฅผ ํŒŒ์•…ํ•ด์•ผ _ํ•„์š”_ํ•ฉ๋‹ˆ๋‹ค.

jQuery Dialog์˜ ๊ฒฝ์šฐ๋Š” ์ปจํ…Œ์ด๋„ˆ ์š”์†Œ์— ์˜์กดํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋Œ€ํ™” ์ƒ์ž์˜ ์ค‘์‹ฌ ์น˜์ˆ˜์™€ ๋„ˆ๋น„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์œ„์น˜ ์ง€์ •๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์„ ํƒ๋œ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ CSS ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. overflow:hidden์„ ์ปจํ…Œ์ด๋„ˆ์— ๋„ฃ์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๊ทธ๊ฒƒ์ด ๋‹น์‹ ์ดํ•˜๊ณ ์žˆ๋Š” ์ผ์ด๋ผ๋ฉด ๊ทธ ์•„๋ž˜์˜ ๋ถ€์œ ๋ฌผ์„ ์ง€์šฐ๋ ค๋ฉด ๋‹ค๋ฅธ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹น์‹ ์ด ์ฐพ๊ณ ์žˆ๋Š” ๊ฒƒ์„ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

$.fn.extend({
์„ ํƒ๋จ: ๊ธฐ๋Šฅ(๋ฐ์ดํ„ฐ, ์˜ต์…˜) {
if ($(this).parent().css("overflow") == "hidden") {
// ๋ถ€๋ชจ์™€ ์ž์‹ ์‚ฌ์ด์˜ ์˜คํ”„์…‹์„ ๊ฐ€์ ธ์™€ diff๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
//์ ˆ๋Œ€๊ฐ’์œผ๋กœ ํ‘ธ์‹œํ•  ๋•Œ
var y = $(this).offset().top - $(this).parent().offset().top,
x = $(this).offset().left - $(this).parent().offset().left,
$t1 = $("<div/>", {
CSS: {
"์œ„์น˜": "์ƒ๋Œ€์ ",
"๋†’์ด": $(this).parent().height,
"๋„ˆ๋น„": $(this).parent().width
}
}),
$t2 = $("<div/>", {
CSS: {
"์œ„์น˜": "์ ˆ๋Œ€",
"์ƒ๋‹จ": y,
"์™ผ์ชฝ": x
}
});
$t1.insertBefore($(this).parent());
$(this).parent().appendTo($t1);
$t2.appendTo($t1);
$(this).appendTo($t2);
}
๋ฐ˜ํ™˜ $(this).each(ํ•จ์ˆ˜(์ž…๋ ฅ_ํ•„๋“œ) {
if (!($(this)).hasClass("chzn-done")) {
return new Chosen(this, data, options);
}
});
}
});

(btw ์ €๋Š” ์˜ค๋Š˜ ํ˜„์žฌ github์— ์ต์ˆ™ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ฝ”๋“œ๋ฅผ ๊ฒŒ์‹œํ•ด์•ผ ํ•˜๋Š” ๋‹ค๋ฅธ ์žฅ์†Œ๊ฐ€ ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”)

์ด ์ฝ”๋“œ๋Š” ๋‹ค์Œ์„ ํšจ๊ณผ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. ์„ ํƒ ์ƒ์ž์™€ ๋ถ€๋ชจ ์‚ฌ์ด์˜ ์˜คํ”„์…‹์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
  2. ์˜ค๋ฒ„ํ”Œ๋กœ์™€ ๋™์ผํ•œ ํฌ๊ธฐ๋กœ ์ƒ์œ„ div๋ฅผ ๋งŒ๋“ค๊ณ  ์ƒ๋Œ€ ํ•ญ๋ชฉ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  3. 1๋‹จ๊ณ„์˜ x ๋ฐ y ์˜คํ”„์…‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์†Œ๋ฅผ ์ ˆ๋Œ€ ์š”์†Œ๋กœ ๋งŒ๋“œ๋Š” ์„ ํƒ ์ƒ์ž์˜ ๋ถ€๋ชจ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  4. ์„ ํƒ์˜ ๋ถ€๋ชจ ์•ž์— ์ƒˆ ๋ถ€๋ชจ๋ฅผ ์‚ฝ์ž…ํ•˜๊ณ , ์ƒˆ ๋ถ€๋ชจ ์•ˆ์— ์˜ค๋ฒ„ํ”Œ๋กœ div๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ๋งˆ์Šคํ„ฐ ๋ถ€๋ชจ ์•ˆ์— ์ƒˆ ์„ ํƒ ๋ถ€๋ชจ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ์ƒˆ ์ž์‹ ๋ถ€๋ชจ์— ์„ ํƒ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

ํฅ๋ฏธ๋กœ์šด ์•„์ด๋””์–ด Matthew, ํ•˜์ง€๋งŒ jQuery-UI ๋Œ€ํ™” ์ƒ์ž์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™์€๋ฐ์š”?

๋“œ๋กญ๋‹ค์šด ์š”์†Œ(.chzn-drop)๊ฐ€ .chzn-container์—์„œ ๋ฌธ์„œ ๋ณธ๋ฌธ๊นŒ์ง€ ๋‹น๊ฒจ์ ธ์•ผ ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋” ๋†’์Šต๋‹ˆ๋‹ค...

ํŽ˜์ด์ง€์— ์Šคํƒ€์ผ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋‹ต์€ '์˜ˆ'์ž…๋‹ˆ๋‹ค.

.ui-dialog{ ์˜ค๋ฒ„ํ”Œ๋กœ:ํ‘œ์‹œ; }

div๋ฅผ ์—ด๋กœ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(td ๋ฐ ํ…Œ์ด๋ธ”๊ณผ ๋ฐ˜๋Œ€).
๋‚˜๋Š” ํญ์ฃผํ•˜๋Š” ์ฝ˜ํ…์ธ ๊ฐ€ ์ด์›ƒ div๋ฅผ ๋ง์น˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด " overflow:hidden "์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋งŽ์€ ๋ถ„๋“ค์ด ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ณ„์‹œ๋ฆฌ๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋Œ€ํ™” ์ƒ์ž๊ฐ€ overflow:auto ๋กœ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์Šคํฌ๋กค๋ฐ”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

2011๋…„ 7์›” 29์ผ ๊ธˆ์š”์ผ ์˜คํ›„ 11:47 ethaniel
๋‹ต์žฅ@reply.github.com
์ผ๋‹ค:

div๋ฅผ ์—ด๋กœ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(td ๋ฐ ํ…Œ์ด๋ธ”๊ณผ ๋ฐ˜๋Œ€).
๋‚˜๋Š” ํญ์ฃผํ•˜๋Š” ์ฝ˜ํ…์ธ ๊ฐ€ ์ด์›ƒ div๋ฅผ ๋ง์น˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด " overflow:hidden "์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋งŽ์€ ๋ถ„๋“ค์ด ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ณ„์‹œ๋ฆฌ๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/harvesthq/chosen/issues/86#issuecomment -1681303

์ด ๋Œ€ํ™”๋ฅผ ๋” ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— ์ œ๊ฐ€ ํ•œ ๊ฒƒ์€ ์ด๋ก ์  ์ˆ˜์ •์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์‹œ๋‚˜๋ฆฌ์˜ค์— ์ ์šฉํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ˜๋Œ€ ์†์„ฑ์ด ์žˆ๋Š” ์š”์†Œ ํ•˜๋‚˜๋งŒ ์žˆ์œผ๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ๋ณด์ด๋Š” ์œ„์˜ ์†”๋ฃจ์…˜์€ resizable:false ๋Œ€ํ™” ์ƒ์ž ์˜ต์…˜์—์„œ๋งŒ ์ž‘๋™

์ž, ์—ฌ๊ธฐ ๋ฌธ์ œ๋ฅผ ๋ช…ํ™•ํžˆ ํ•ด ์ค„ ์—ฌ๋Ÿฌ ์Šคํฌ๋ฆฐ์ƒท์ด ์žˆ์Šต๋‹ˆ๋‹ค.

http://i.imgur.com/9ZY9O.png
http://i.imgur.com/c2PLo.png
http://i.imgur.com/1oqZ7.png
http://i.imgur.com/ZBrQj.png

์Šคํฌ๋ฆฐ์ƒท 1๊ณผ 2๋Š” ์ž‘๋™ ๋ฐฉ์‹์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
๋Œ€ํ™” ์ƒ์ž "๋‚ด๋ถ€"์— ๋“œ๋กญ๋‹ค์šด์ด ํ‘œ์‹œ๋˜๋ฏ€๋กœ ์Šคํฌ๋กค๋˜์–ด ์ˆจ๊ฒจ์ง‘๋‹ˆ๋‹ค.
๊ฒฐ๊ณผ. ์ด๊ฒƒ์€ ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ํˆฌ๋ฐ•ํ•˜๊ณ  ์ถ”์•…ํ•˜๋ฉฐ ๋‚ด์žฅ ๋œ ๋ฐฉ์‹์ด ์•„๋‹™๋‹ˆ๋‹ค.
์„ ํƒ ์ปจํŠธ๋กค์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค(์ปจํ…์ธ  ์ƒ๋‹จ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
๋‚ด๋ถ€์— ์–ผ๋งˆ๋‚˜ ๊นŠ์€์ง€ ๋˜๋Š” ์˜ค๋ฒ„ํ”Œ๋กœ ์Šคํƒ€์ผ์ด ๋ฌด์—‡์ธ์ง€).

์Šคํฌ๋ฆฐ์ƒท 3๊ณผ 4๋Š” ํ˜„์žฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
๋“œ๋กญ๋‹ค์šด ์•„๋ž˜์˜ ๊ณต๊ฐ„ ํž™์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ๋„ ๋ชป์ƒ๊ฒจ์„œ ํ˜•ํƒœ๋ฅผ ๋งŒ๋“ ๋‹ค
์‚ฌ์šฉํ•˜๊ธฐ ๋” ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

์š”์•ฝํ•˜์ž๋ฉด ์‹ค์ œ ์š”์ ์€ ๊ธฐ๋ณธ ์„ ํƒ ์ปจํŠธ๋กค์ด
์ƒ์œ„ ์ปจํ…Œ์ด๋„ˆ๋กœ ์ œํ•œ๋˜๋ฉฐ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์„ ํƒ๋œ
๊ฐ•ํ™”๋œ ์„ ํƒ ์ œ์–ด๋„ ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
๋„ค์ดํ‹ฐ๋ธŒ ์ปจํŠธ๋กค์— ๋Œ€ํ•œ ๋“œ๋กญ์ธ ๊ต์ฒด.

์ด๊ฒƒ์€ ์ด๋ก ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์„ ํƒํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋”ฐ๋ผ ์™„์ „ํžˆ ๋‹ค๋ฅธ ๊ตฌ์„ฑ/ํฌ์ง€์…”๋‹ ์‹œ์Šคํ…œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ณ€๊ฒฝ์€ ๊ด‘๋ฒ”์œ„ํ•˜๋ฉฐ ํ˜„์žฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์•ฝ 30% ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ธฐ๋Šฅ ์š”์ฒญ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—๋Š” ์„ ํƒ ์š”์†Œ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๋ Œ๋”๋ง์ด ์žˆ์Šต๋‹ˆ๋‹ค.Chosen์€ div๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ๋ณต์ œํ•˜์ง€๋งŒ ์„ ํƒ ์š”์†Œ์ฒ˜๋Ÿผ ์ทจ๊ธ‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋งํ–ˆ๋“ฏ์ด ์ด๊ฒƒ์„ ํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ํŠธ๋ฆฌ๊ฑฐ๋œ ์š”์†Œ์˜ ์™ธ๋ถ€์— ์ ˆ๋Œ€ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ ์—†์Šต๋‹ˆ๋‹ค. @medelbrock์—์„œ ์ˆ˜์ •

๋ธŒ๋ผ์šฐ์ € ์œ„์ ฏ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๋„๋ก ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ข‹๊ฒ ์ง€๋งŒ ์ด๊ฒƒ์ด ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹Œ ๊ธฐ๋Šฅ์œผ๋กœ ๊ฐ„์ฃผ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์ตœ๋Œ€ ๋†’์ด๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@veloper : (๊ฐ€๋Šฅํ•œ ํ•œ) div.chzn-drop ์ด ์—ฌ์ „ํžˆ ๋Œ€ํ™” ์ƒ์ž์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ž‘๋™ ๋ฐฉ์‹์„ ์•Œ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์ ˆ๋Œ€ ์œ„์น˜ ์ง€์ • ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์ž˜๋ฆฝ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ div.chzn-drop ๋ฅผ ๋Œ€ํ™” ์ƒ์ž์—์„œ ๋Œ์–ด๋‚ด์–ด <body> ์˜ ์ž์‹์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด์ง€๋งŒ ๋ชจ๋‘๊ฐ€ ์ง€์ ํ•˜๋“ฏ์ด ์ด๋Š” ๋ˆ„๊ตฌ๋ณด๋‹ค ํฐ ๋ณ€ํ™”์ž…๋‹ˆ๋‹ค. ๊ธฐ๊บผ์ด ๊ทธ๋“ค์˜ ์†์„ ๋”๋Ÿฝํžˆ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋ถˆํ–‰ํžˆ๋„ overflow:visible ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์˜ต์…˜์ด ์•„๋‹ˆ๋ฉฐ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ์Šคํฌ๋กคํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋“œ๋กญ๋‹ค์šด ์œ„์น˜๋ฅผ ์ ˆ๋Œ€๋กœ ์„ค์ •ํ•˜๊ณ  ๋“œ๋กญ๋‹ค์šด ์„ค์ •์„ ํ‘œ์‹œํ•  ๋•Œ๋งˆ๋‹ค ์œ„์น˜๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ: ๋ณ€๊ฒฝ(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŽธ์ง‘)

this.dropdown.css({
    "top": dd_top + "px",
    "left": 0
});

NS

var parent = this.dropdown.parent();
var offset = parent.offset();
dd_top = offset.top + parent.outerHeight();
dd_width = parent.width();
this.dropdown.css({
    "top": dd_top + "px",
    "left": offset.left,
    "width": dd_width + "px"
});

Wijmo/jQuery UI ๋Œ€ํ™” ์ƒ์ž ๋‚ด์—์„œ Chosen์ด ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋Š” ๋™์•ˆ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๋ฒ—์–ด๋‚  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ "๋“œ๋กญ๋‹ค์šด" ๋ถ€๋ถ„์ด ์ˆจ๊ฒจ์ ธ ์žˆ๋Š” ๋™์•ˆ "๋””์Šคํ”Œ๋ ˆ์ด: ์—†์Œ"์ด ํ‘œ์‹œ๋˜๊ณ  ํ‘œ์‹œ๋  ๋•Œ "๋””์Šคํ”Œ๋ ˆ์ด: ์ฐจ๋‹จ"์ด ๋˜๋„๋ก ํ•˜๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•œ ์ˆ˜์ •์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋“œ๋กญ๋‹ค์šด์ด ์—ด๋ ค ์žˆ์„ ๋•Œ ์—ฌ์ „ํžˆ ์Šคํฌ๋กค ๋ง‰๋Œ€๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ ์Šคํฌ๋กค ๋ง‰๋Œ€๊ฐ€ ํ•ญ์ƒ ํ‘œ์‹œ๋˜๋„๋ก ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋‚ซ์Šต๋‹ˆ๋‹ค.

์ˆ˜์ • ์‚ฌํ•ญ(Chrome 13, Firefox 7 ๋ฐ IE 9์—์„œ ํ…Œ์ŠคํŠธ๋จ):

selected.css์—์„œ:

.chzn-container .chzn-drop {
์œ„์น˜: ๊ณ ์ •;
}

๊ทธ๋ฆฌ๊ณ  Chosen.prototype.results_show์—์„œ

var ์˜คํ”„์…‹ = this.container.offset();
this.dropdown.css({
"์ƒ๋‹จ": (offset.top+dd_top) + "px",
"์™ผ์ชฝ": offset.left + "px",
"๋””์Šคํ”Œ๋ ˆ์ด": "์ฐจ๋‹จ"
});

http://img30.imageshack.us/img30/4094/chosen3.png

์ข‹์€ ์ƒ๊ฐ์ด๊ตฐ์š” @levushka. ๋‚ด ์ง€์ ์—์„œ ์ง€๊ธˆ ํ•ด๊ฒฐ๋จ: https://github.com/tompaton/chosen/commit/fda07051161f3fffe6049362b6c9b66ffbe857d1

์ข‹์•„, ๊ทธ๊ฒƒ๋ณด๋‹ค ์กฐ๊ธˆ ๋” ๋ณต์žกํ•˜๋‹ค. ํŽ˜์ด์ง€๋ฅผ ์Šคํฌ๋กคํ•œ ๊ฒฝ์šฐ ์œ„์˜ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ผ์ข…์˜ ์ˆ˜์ • ์„ธํŠธ๋กœ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ๋Š”๋ฐ ์ด์ œ ๋“œ๋กญ๋‹ค์šด์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ฐฐ์น˜๋˜์—ˆ์ง€๋งŒ ๋“œ๋กญ๋‹ค์šด์ด ํ‘œ์‹œ๋˜๋Š” ๋™์•ˆ ํŽ˜์ด์ง€๋ฅผ ์Šคํฌ๋กคํ•˜๋ฉด ์˜ˆ์ƒ๋Œ€๋กœ ์ด๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์„ฑ๊ฐ€์‹  ์ผ์ด์ง€๋งŒ ์‡ผ ์Šคํ† ํผ๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

iOS 5๋Š” ์ด ๋ฌธ์ œ๋ฅผ _์•„๋งˆ๋„_ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ iOS๋Š” ํ˜„์žฌ ๋ฐ์Šคํฌํ†ฑ ๋ธŒ๋ผ์šฐ์ €์™€ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ position: fixed๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Chosen์€ ๋ฐ์Šคํฌํ†ฑ์—์„œ ํ›Œ๋ฅญํ•˜๊ฒŒ ์ž‘๋™ํ•˜์ง€๋งŒ ์ž˜๋ชป ์„ค๊ณ„๋œ ๋ชจ๋ฐ”์ผ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์‚ฌ์šฉ์ด ์ œํ•œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค...

์—ฌ๊ธฐ์„œ Apple์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ Android์˜ ์ด์ „ ๋ฒ„์ „๋„ position: fixed์— ๋Œ€ํ•œ ์ง€์›์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.

jQuery 1.7(์•„์ง ๋ฆด๋ฆฌ์Šค๋˜์ง€ ์•Š์•˜์ง€๋งŒ ๋ฆด๋ฆฌ์Šค ํ›„๋ณด์— ์žˆ์Œ)๋ถ€ํ„ฐ CSS Position Fixed ์ง€์›์— ๋Œ€ํ•œ ๋‚ด์žฅ ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
http://bugs.jquery.com/ticket/6809

jQuery 1.7์„ ๊ฐ์ง€ํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ณ„๋„์˜ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ๊ฐ€์น˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณธ๋ฌธ ์š”์†Œ์˜ ๋ ์œ„์น˜์— ๋Œ€ํ•ด +1์ž…๋‹ˆ๋‹ค.

jquery ์œ„์ ฏ "์ž๋™ ์™„์„ฑ"์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๊ทธ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฝค ์ข‹์€ ํ•ด๊ฒฐ์ฑ…:

http://jqueryui.com/demos/autocomplete/

๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ  ํ›Œ๋ฅญํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ.

๋‚˜๋Š” ์ฃผ๋กœ ์›นํ‚ท ๋ธŒ๋ผ์šฐ์ €์—์„œ์ด ๋ฌธ์ œ๋ฅผ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. IE๋Š” ์„ ํƒ๊ณผ ํ•จ๊ป˜ ์ •์‹ ์„ ์ฐจ๋ฆฌ๊ฒŒ ๋˜๋ฏ€๋กœ ie๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. jquery๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์›นํ‚ท์ธ์ง€ ํ™•์ธํ•˜๊ณ  ๋‚ด๊ฐ€ ์„ ํƒํ•œ ํ•ญ๋ชฉ์ด ํฌํ•จ๋œ div์˜ ์˜ค๋ฒ„ํ”Œ๋กœ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

if($.browser.webkit) $(this).css("overflow",($(this).is(":visible"))?"visible":"hidden");

์—ฌ๊ธฐ์„œ ์ด๊ฒƒ์€ ์„ ํƒ๋œ ํ•ญ๋ชฉ์„ ํฌํ•จํ•˜๋Š” div์ž…๋‹ˆ๋‹ค.

+1 @levushka ๋ฐ @tompaton ์™„๋ฒฝํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ์ถฉ๋ถ„ํžˆ ์ข‹์Šต๋‹ˆ๋‹ค. ๊ฐ„์‹ ํžˆ :)

@levushka ์†”๋ฃจ์…˜์€ ํ›Œ๋ฅญํ•˜์ง€๋งŒ ์ „์—ญ์ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ window.top์—์„œ ์•„๋ž˜๋กœ ์Šคํฌ๋กคํ•˜์—ฌ ์„ ํƒ ํ•ญ๋ชฉ์„ ํด๋ฆญํ•˜๋ฉด ์ž˜๋ชป๋œ ์œ„์น˜๋กœ ๋กค๋‹ค์šด๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์—ฌ๊ธฐ ์ผ๋ฐ˜ ํŽ˜์ด์ง€ ๋ฐ ํŒ์—… ์ฐฝ์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Chosen.prototype.results_show์—์„œ

๋ฐ”๊พธ๋‹ค:

  this.dropdown.css({
    "top": dd_top + "px",
    "left": 0
  });

์™€ ํ•จ๊ป˜:

if($('.popup').length!=0) {

  var offset = this.container.offset();
  this.dropdown.css({
    "top": (offset.top+dd_top) + "px",
    "left": offset.left + "px",
    "display": "block"
  });

} else {

  this.dropdown.css({
    "top": dd_top + "px",
    "left": 0
  });

}

CSS:

   .popup .chzn-container .chzn-drop { position:fixed; }

jQuery UI ๋˜๋Š” ๋‹ค๋ฅธ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ z-index์— ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์„ ํƒํ•œ z-index๋ฅผ ๋” ๋†’์€ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค(jQuery UI๋Š” 1010+์ž„).

์ด์ œ FF์—์„œ ์ž‘๋™ํ•˜๋ฉฐ Chrome์˜ ๊ฒฝ์šฐ ๋‹ค์Œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

     .popup { overflow-x:visible; overflow-y:visible; }

์—ฐ์ธ ์š”์†Œ๋Š” ๋ฌธ์ œ ์—†์ด overlow:hidden ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณธ๋ฌธ์— ๋“œ๋กญ๋‹ค์šด์„ ๋ Œ๋”๋งํ•˜๊ณ  Jquery UI์˜ ์œ„์น˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์ž๋ฅผ ๋ฐฐ์น˜ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? http://jqueryui.com/demos/position/. ์ด๊ฒƒ์€ ๋งŽ์€ jquery ui ์œ„์ ฏ์— ์‚ฌ์šฉ๋˜๋Š” ํ‘œ์ค€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

$( ".czn-drop" ).position({
$( "#container" ),
๋‚ด: "์™ผ์ชฝ ์ƒ๋‹จ",
at: "์™ผ์ชฝ ํ•˜๋‹จ",
});

๋ผ์–ด๋“ค์–ด์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. jQueryUI ๋Œ€ํ™” ์ƒ์ž์—์„œ ์„ ํƒํ•œ ๋“œ๋กญ๋‹ค์šด์„ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ์˜ค๋ฒ„ํ”Œ๋กœ๋กœ ์ผ๋ฐ˜์ ์ธ ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ด๊ฒƒ์€ ๋‚ด ๋‹ค๋ฅธ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ์—‰๋ง์œผ๋กœ ๋งŒ๋“ค๊ณ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋Œ€์‹  ๋‚ด๊ฐ€ ํ•œ ๊ฒƒ์€ ๋‚ด ๋Œ€ํ™” ์ƒ์ž๋ฅผ ๊ณ ์ • ๋†’์ด๋กœ ์„ค์ •ํ•˜๊ณ  ์„ ํƒํ•œ ๋“œ๋กญ๋‹ค์šด๋„ ๊ณ ์ • ๋†’์ด๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.
CSS ๋Œ€์‹  ์„ ํƒํ•œ ์˜ต์…˜์—์„œ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ด ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

.chzn-drop {
์˜ค๋ฒ„ํ”Œ๋กœ: ์ž๋™;
์ตœ๋Œ€ ๋†’์ด: 75px;
}

์–ด์ฉŒ๋ฉด ์ด๊ฒƒ์€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฝค n00bish/RTFM ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋ณ€๋ช…์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ปจํ…Œ์ด๋„ˆ ์™ธ๋ถ€์—์„œ ๋“œ๋กญ๋‹ค์šด์„ ์–ด๋–ป๊ฒŒ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ(์˜ˆ: body )? ์ง€๊ธˆ ๋‹น์žฅ ์ƒ๊ฐ๋‚˜๋Š” ๊ฒƒ์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํฌํฌํ•˜๊ณ  ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋ฐ€์–ด๋„ฃ๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” ๋ณด๋‹ค ์šฐ์•„ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋“œ๋กญ๋‹ค์šด์ด ์—ด๋ฆฌ๊ฑฐ๋‚˜ ๋‹ซํž ๋•Œ ์„ ํƒํ•œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ๋ถ€๋ชจ div์˜ ์˜ค๋ฒ„ํ”Œ๋กœ ์„ค์ •์„ ํ‘œ์‹œ๋กœ ๋ณ€๊ฒฝํ•œ ๋‹ค์Œ ๋‹ค์‹œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‹œ๋„ํ–ˆ๋‹ค :

$(".chzn-drop").show(0, function () { 
   $(this).parents("div").css("overflow", "visible");
});    

๊ทธ๋ฆฌ๊ณ  ๋„ค, ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๊ฐ€ ์ถ”๊ฐ€ํ–ˆ์„ ๋•Œ :

$(".chzn-drop").hide(0, function () {
   $(this).parents("div").css("overflow", "");
});

๋” ์ด์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์–‘์‹์— ์„ ํƒํ•œ ์ปจํŠธ๋กค์ด ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์—ด๊ธฐ/๋‹ซ๊ธฐ ์ด๋ฒคํŠธ ์•ˆ์— ์ด ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์›ํ•˜๋Š” ๊ณณ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์›๋ž˜ ์„ ํƒ ์š”์†Œ์—์„œ ์ „๋‹ฌ๋œ liszt:showing_dropdown ๋ฐ liszt:hiding_dropdown ๋“ค์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค ... ๊ทธ๋ž˜์„œ ์ด๊ฒƒ์€ ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

$(".chzn-select").on(" liszt:showing_dropdown ", ํ•จ์ˆ˜() {
$(this).parents("div").css("overflow", "visible");
});
$(".chzn-select").on(" liszt:hiding_dropdown ", ํ•จ์ˆ˜() {
$(this).parents("div").css("์˜ค๋ฒ„ํ”Œ๋กœ", "");
});

๋ฌผ๋ก  ๋ชจ๋“  ๋ ˆ์ด์•„์›ƒ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค...๋ฐฅ

<body/> ์˜ ๋“œ๋กญ๋‹ค์šด ์ž์‹์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ๋ถ„๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„์ง ์ถฉ๋ถ„ํžˆ ํ…Œ์ŠคํŠธํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์—ฌ๊ธฐ์—์„œ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค -> https://github.com/gil/chosen

๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ, @tompaton? ์œ„์น˜๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ์ง€๊ธˆ ์Šคํฌ๋กค์„ ๊ฐ์ง€ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํฌํฌ๋Š” ๋‚˜๋ฅผ ์œ„ํ•ด ๋””์Šคํ”Œ๋ ˆ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์œผ๋ฉฐ ํŽ˜์ด์ง€ ํ•˜๋‹จ์—์„œ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์—ฌ ํ‘œ์‹œ๋˜๋Š” ๋†’์ด๋ฅผ ํ•ฉ๋ฆฌ์ ์ธ ๊ฒƒ์œผ๋กœ ์ œํ•œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํฌํฌ๋กœ ์ธํ•ด ๋‹ค์ค‘ ์„ ํƒ ๊ธฐ๋Šฅ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

@geoffweatherall ์ •๋ง์š”? ๋ฉ‹์ง„! :D ๋‹ค์ค‘ ์„ ํƒ์˜ ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋ฌด์—‡์ด ์ž‘๋™์„ ๋ฉˆ์ท„์Šต๋‹ˆ๊นŒ? example.jquery.html ํŒŒ์ผ์„ ์‹œ๋„ํ•ด๋ณด๊ณ  ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ €์—๊ฒŒ๋Š” ๊ดœ์ฐฎ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์˜ˆ, ์˜ˆ์ œ๋Š” ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค(FF 12).

๋‹จ์ผ ์„ ํƒ ์˜ˆ์ œ๋Š” ์ˆจ๊ฒจ์ง„ ์˜ค๋ฒ„ํ”Œ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” "ํŒจ๋„"์ด ์žˆ๋Š” ์ƒ๋‹นํžˆ ํ‰๋ฒ”ํ•œ html ํŽ˜์ด์ง€์— ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์ค‘ ์„ ํƒ ์˜ˆ์ œ๋Š” colorbox(http://www.jacklmoore.com/colorbox)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“  "๋Œ€ํ™” ์ƒ์ž"์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์œ ๋Š” ๋ฌป์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ํ”„๋กœ์ ํŠธ๋Š” ๋‚ด๊ฐ€ ๋„์ฐฉํ–ˆ์„ ๋•Œ ๊ทธ๋Œ€๋กœ์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๊ณผ ๊ด€๋ จ์ด ์žˆ์„ ๊ฒƒ ๊ฐ™์€๋ฐ, ์ฐพ์•„๋ด์•ผ๊ฒ ์Šต๋‹ˆ๋‹ค.

ํฌํฌ๋Š” ์ƒ‰์ƒ ์ƒ์ž(http://www.jacklmoore.com/colorbox) ๋‚ด์— ์ค‘์ฒฉ๋˜์ง€ ์•Š์€ ๋‹ค์ค‘ ์„ ํƒ์„ ํฌํ•จํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์—ฌ๋Ÿฌ ์œ„์น˜์—์„œ ์ž˜๋ฆผ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ์ปฌ๋Ÿฌ๋ฐ•์Šค ๋ฌธ์ œ๋Š” ์„ ํƒ์˜ ์ž˜๋ชป์ด ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ›Œ๋ฅญํ•œ ํฌํฌ :-)

์‹ค์ œ๋กœ ์ƒ˜ํ”Œ ํŽ˜์ด์ง€(example.jquery.html)์— ํ‘œ์‹œ๋˜๋Š” ํฌํฌ์—์„œ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์ค‘ ์„ ํƒ ์ปจํŠธ๋กค์˜ ๊ฒฝ์šฐ ์ปจํŠธ๋กค์„ ํด๋ฆญํ•˜์—ฌ ์˜ต์…˜ ๋ชฉ๋ก์„ ์—ฐ ๋‹ค์Œ ์œ„์ชฝ ํ™”์‚ดํ‘œ ๋ฐ ์•„๋ž˜์ชฝ ํ™”์‚ดํ‘œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชฉ๋ก์„ ํƒ์ƒ‰ํ•˜๋ฉด ์˜ต์…˜ ๋ชฉ๋ก์ด ํŽ˜์ด์ง€ ์ƒ๋‹จ์œผ๋กœ ๊นœ์ง ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ผ ์„ ํƒ์—์„œ๋Š” ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. FF12, Chrome 18 ๋ฐ IE8์—์„œ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@geoffweatherall ์•„๋งˆ๋„ ์„ ํƒ๋จ ๋“œ๋กญ๋‹ค์šด์„ ํ†ตํ•ด ๋ Œ๋”๋ง๋˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹œ๋„ํ•˜์—ฌ ๋„์›€์ด ๋˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

.chzn-drop {
    z-index: 999999 !important;
}

๋˜๋Š” ์ƒ‰์ƒ ์ƒ์ž ๋ถˆํˆฌ๋ช…๋„๋ฅผ 0.1๋กœ ์„ค์ •ํ•˜์—ฌ ์ƒ‰์ƒ ์ƒ์ž ์•„๋ž˜์— ๋“œ๋กญ๋‹ค์šด์ด ํ‘œ์‹œ๋˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

๋‹ค๋ฅธ ๋ฌธ์ œ๋Š” ํ‚ค์™€ ๊ด€๋ จํ•˜์—ฌ ๋ช‡ ๊ฐ€์ง€ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์œผ๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋‹ค์ค‘ ์„ ํƒ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์˜ ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ์„ ํƒ ์˜ต์…˜์— ๋” ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค.

์ข‹์•„, ๋‚˜๋Š” ์ด๊ฒƒ์„ ์‹œ๋„ํ–ˆ๊ณ  ๋“œ๋กญ ๋‹ค์šด์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ์œ„์น˜๊ฐ€ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ…์ŠคํŠธ ์ƒ์ž ์•„๋ž˜๋กœ ๊ฝค ๋งŽ์ด ๋–จ์–ด์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ํ–‰๋™์„ ๋ณด์—ฌ์ฃผ๋Š” ์ง•์ž…๋‹ˆ๋‹ค. http://screencast.com/t/c4PCIHC176RX

์•ˆ๋…•ํ•˜์„ธ์š” ๊ธธ๋‹˜

๋‚˜๋Š” ๋‹น์‹ ์˜ ๋ฒ„์ „์„ ์‹œ๋„ํ•˜๊ณ  ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค! ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!
์ž‘๋™์„ ๋ฉˆ์ถ˜ ์ž‘์€ ๊ฒƒ์ด ํ•˜๋‚˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ disable_search_threshold ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ ํ•„๋“œ๊ฐ€ ์‚ฌ๋ผ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์€ ์–ด๋–ค ์ƒ๊ฐ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ์‚ฌ!

์‹ ๊ฒฝ ์“ฐ์ง€ ๋งˆ์š”! ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์Šค์Šค๋กœ ๊ณ ์น  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ .. ์•„๋งˆ๋„ ์ฝ”๋“œ์—์„œ๋„ ๊ทธ๊ฒƒ์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ณ€ํ™”:

    if (this.form_field.options.length <= this.disable_search_threshold) {
      this.container.addClass("chzn-container-single-nosearch");
    } else {
      this.container.removeClass("chzn-container-single-nosearch");
    }

NS

    if (this.form_field.options.length <= this.disable_search_threshold) {
      this.dropdown.addClass("chzn-container-single-nosearch");
    } else {
      this.dropdown.removeClass("chzn-container-single-nosearch");
    }

์ด ํฌํฌ์˜ ์ƒํƒœ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋งˆ์Šคํ„ฐ๋กœ ๋ณ‘ํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์•„์ง ํ…Œ์ŠคํŠธ ์ค‘์ธ๊ฐ€์š”?

ํ•œ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ฌธ์ œ.. ํฌํฌ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ ํŒŒ์ด์–ดํญ์Šค์—์„œ๋Š” ํŽ˜์ด์ง€ ํ•˜๋‹จ์— ๋“œ๋กญ๋‹ค์šด div๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์Œ์ˆ˜ ์™ผ์ชฝ ์œ„์น˜๊ฐ€ ํ‘œ์‹œ ์˜์—ญ ๋ฐ–์œผ๋กœ ์ด๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๊ทธ๊ฒƒ์€ ๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ๋‹ค๋ฅธ ์Šคํƒ€์ผ ๋•Œ๋ฌธ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ์•„์ด๋””์–ด๋ผ๋„? ๋””์Šคํ”Œ๋ ˆ์ด๊ฐ€ ์—†์Œ์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š์€ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์›๋ž˜ ์ˆ˜์ • ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์˜ค๋ž˜ ์ „์— ํ’€ ์š”์ฒญ์„ ํ–ˆ์ง€๋งŒ
๊ฒฐ์ฝ” ๋ฐ›์•„ ๋“ค์—ฌ์ง€์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค (์ด์œ ๋Š” ๋ชจ๋ฆ…๋‹ˆ๋‹ค).

์ด ์Šค๋ ˆ๋“œ์—์„œ ์ œ์•ˆ๋œ ์ถ”๊ฐ€ ์กฐ์ •์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ ์ดํ›„๋กœ ๋‚˜๋Š” ์•„์ง ๊ทธ๋“ค ์ค‘ ์–ด๋Š ๊ฒƒ๊ณผ๋„ ํ”Œ๋ ˆ์ดํ•˜์ง€ ์•Š์•˜๊ณ  ํ™•์ธํ•˜์ง€๋„ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทธ๋“ค์„ ํ†ตํ•ฉํ•˜๋Š” ํฌํฌ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด(์—†๋Š” ๊ฒฝ์šฐ
ํ•˜๋‚˜, ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ํ•˜๋‚˜๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•˜๊ณ , ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ท€ํ•˜์˜ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์ž…๋‹ˆ๋‹ค.)

2012๋…„ 6์›” 7์ผ ๋ชฉ์š”์ผ ์˜ค์ „ 6์‹œ 44๋ถ„, Bob Archer
๋‹ต์žฅ@reply.github.com
์ผ๋‹ค:

ํ•œ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ฌธ์ œ.. ํฌํฌ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ ํŒŒ์ด์–ดํญ์Šค์—์„œ๋Š” ํŽ˜์ด์ง€ ํ•˜๋‹จ์— ๋“œ๋กญ๋‹ค์šด div๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์Œ์ˆ˜ ์™ผ์ชฝ ์œ„์น˜๊ฐ€ ํ‘œ์‹œ ์˜์—ญ ๋ฐ–์œผ๋กœ ์ด๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๊ทธ๊ฒƒ์€ ๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ๋‹ค๋ฅธ ์Šคํƒ€์ผ ๋•Œ๋ฌธ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ์•„์ด๋””์–ด๋ผ๋„? ๋””์Šคํ”Œ๋ ˆ์ด๊ฐ€ ์—†์Œ์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š์€ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?


์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/harvesthq/chosen/issues/86#issuecomment -6162299

๋‚˜๋Š” ๊ทธ๊ฒƒ๋“ค์„ ๋ชจ๋‘ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๊ทธ๋“ค ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋‚˜๋Š” ์ˆจ๊ฒจ์ง„ ์—ฌ๋Ÿฌ ํ•„๋“œ ์„ธํŠธ์™€ ์Šคํฌ๋กค๋˜๋Š” ๊ธด ์–‘์‹์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‚ด ์†”๋ฃจ์…˜์€ ๋“œ๋กญ๋‹ค์šด์„ ์ •์ ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์ฒ˜์Œ์—๋Š” ์ˆจ๊ฒจ์ง€๊ณ  ์—ด๋ฆด ๋•Œ ํ‘œ์‹œ๋˜์–ด ์ƒ์œ„ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์ด ํ•ด๊ฒฐ์ฑ…์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ™”๋ฉด ๋งจ ์•„๋ž˜์— ์žˆ๋”๋ผ๋„ ๋‚ด ๋ชจ๋“  ์–‘์‹์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

Chosen.prototype.results_show์—์„œ:

      this.dropdown.css({
        "top": dd_top + "px",
        "left": 0,
        "display": "block"
      });

Chosen.prototype.results_hide์—์„œ:

      this.dropdown.css({
        "left": "-9000px",
        "display": "none"
      });

selected.css์—์„œ:

.chzn-container .chzn-drop {
  position: static;
  display: none;
}

@gil , ๋‚˜๋Š” ๋‹น์‹ ์˜ ํฌํฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด ๋ฒ„๊ทธ ๋•Œ๋ฌธ์— ๋‚ด ํ”„๋กœ์ ํŠธ์— Chosen ์‚ฌ์šฉ์„ ํฌ๊ธฐํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ˆ˜ํ™•ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋ถ€๋™ ํŒ์—…์„ ์ œํ•œ๋œ ์ปจํ…Œ์ด๋„ˆ์— ๋ฐ”์ธ๋”ฉํ•˜๋Š” ๋ฐ ๋‚ด์žฌ๋œ ๊ฒฐํ•จ์„ ๋ณด์ง€ ๋ชปํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์— ์†”์งํžˆ ๊ฝค ๋†€๋ž์Šต๋‹ˆ๋‹ค. ์˜ค๋ฒ„ํ”Œ๋กœ ๊ทœ์น™์— ๊ด€๊ณ„์—†์ด ์‚ฌ๋žŒ๋“ค์ด ์œ„์ ฏ ์ฃผ๋ณ€์—์„œ ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ๋ชจ๋ฅด๋Š” ๊ณต๊ณต ๋„์„œ๊ด€์—๊ฒŒ๋Š” ์ข‹์€ ์ƒ๊ฐ์ด ์•„๋‹™๋‹ˆ๋‹ค.

์–˜๋“ค ์•„! ๋‚ด ํฌํฌ๊ฐ€ ์ด ๋ฌธ์ œ๋กœ ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์„ ๋•๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค... :)

๊ทธ๋“ค์ด ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•  ๊ณ„ํš์ธ์ง€ ์•„๋‹ˆ๋ฉด ์—ฌ๊ธฐ์— ์ œ์•ˆ๋œ ์ผ๋ถ€ ์†”๋ฃจ์…˜๊ณผ ๋ณ‘ํ•ฉํ•  ๊ณ„ํš์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ชจ๋“  ๊ฒฝ์šฐ์— ์ตœ์ƒ์˜ ์†”๋ฃจ์…˜์ด๋ผ๊ณ  ๊ฐ€์ •ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ๊ณ„์†ํ•˜๊ณ  ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํฌํ•จ๋œ pull ์š”์ฒญ์„ ๋ณด๋‚ด๋„๋ก ํ•ฉ์‹œ๋‹ค.

@geoffweatherall ํ‚ค๋ณด๋“œ ๋ฌธ์ œ์— ๋„์›€์ด ๋  ๊ฒƒ์œผ๋กœ ์ƒ๊ฐ๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž‘๋™ํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”! ;)

@PilotBob ๊ทธ ์ง•์—์„œ ์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‹ค๋ฅธ ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ๋Š” Firefox 12์—์„œ example.jquery.html ๋ฅผ ํ…Œ์ŠคํŠธํ–ˆ๋Š”๋ฐ ๊ดœ์ฐฎ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  left:-9000px ๋ฅผ display:none ๋กœ ๋Œ€์ฒดํ•˜๋ ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ์ž˜ ์•Œ์ง€ ๋ชปํ•˜์ง€๋งŒ display:block at results_show() ๋ฅผ ์„ค์ •ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@pruimmartin ์ˆ˜์ •

๊ธธ - ์•„๋‹ˆ, ๋” ์ด์ƒ ์ผ์–ด๋‚˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™๊ณ , ๋‚˜๋Š” ์•„๋ฌด๊ฒƒ๋„ ๋ฐ”๊พธ์ง€ ์•Š์•˜๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ผ์œผํ‚จ ๋‹ค๋ฅธ ๊ณณ์—์„œ js ์˜ค๋ฅ˜๊ฐ€์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์„ ํƒ์— ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ๊ต์ฒดํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ฃผ๋กœ ๋งˆ์Šคํ„ฐ์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ถ€์กฑํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@PilotBob ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ณ ๋ ค ์ค‘์ž…๋‹ˆ๋‹ค: https://github.com/ivaynberg/select2
๊ฐ™์€ ์˜ค๋ฒ„ํ”Œ๋กœ ๋ฌธ์ œ๊ฐ€ ์žˆ์ง€๋งŒ ๋ฒ„์ „ 3์—์„œ ๋ณ€๊ฒฝํ•  ๊ณ„ํš์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@gil - ๋‹น์‹ ์˜ ์†”๋ฃจ์…˜์€ ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ,์˜ ํญ li.search-field ๋กœ ๊ณ ์ • ์ˆ™๋ฐ• 25px . ์ฆ‰, ์˜ˆ์ œ ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•˜๋ฉด ๋ฉ”๋‰ด๊ฐ€ body ์š”์†Œ์— ์•„๋ฆ„๋‹ต๊ฒŒ ์ถ”๊ฐ€๋˜์ง€๋งŒ ์ž๋ฆฌ ํ‘œ์‹œ์ž ํ…์ŠคํŠธ์™€ ๋ชจ๋“  ์ž…๋ ฅ์€ 25px ๋„ˆ๋น„๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ๋Š” search_field_scale ๋ฉ”์„œ๋“œ๊ฐ€ ์ „ํ˜€ ์—†๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์—ฌ๊ธฐ์—์„œ ๋ญ”๊ฐ€๋ฅผ ๋†“์น˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

@rreusser search_field_scale ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์ค‘ ์„ ํƒ๊ณผ ์œ„์น˜๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋งŒ ์‚ฌ์šฉ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด ํฌํฌ์—๋Š” ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๋ธŒ๋ผ์šฐ์ €/๋ฒ„์ „/OS๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋ฅผ ์œ„ํ•ด ๊ฒ€์ƒ‰ ํ•„๋“œ ํฌ๊ธฐ๋Š” example.jquery.html ์—์„œ ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค.

@rreusser ์•ˆ๋…•ํ•˜์„ธ์š”, ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๋ฌด์—‡์ด ์ž˜๋ชป๋˜์—ˆ๋Š”์ง€ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ๋‚˜์ค‘์— ์ˆ˜์ •ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ์—†์–ด, @gil! ์‹ ์†ํ•œ ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ข€ ๋” ์‹คํ—˜์„ ํ•ด์•ผ ํ•˜์ง€๋งŒ ์ž„์˜์˜ ์š”์†Œ์— ์ฒจ๋ถ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ๋„ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋˜ํ•œ ์•„์ฃผ ์‚ฌ์†Œํ•œ ์ผ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์Šคํฌ๋กคํ•˜๋Š” div ์•ˆ์— ์„ ํƒ ์ƒ์ž๊ฐ€ ์žˆ๊ณ  ์†”๋ฃจ์…˜์ด ํด๋ฆฌํ•‘์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋™์•ˆ ๋ฉ”๋‰ด๋Š” ์Šคํฌ๋กคํ•  ๋•Œ div์™€ ํ•จ๊ป˜ ์ด๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์ด ์–ด๋”˜๊ฐ€์— ํ•˜๋‚˜์˜ ์ถ”๊ฐ€ div๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์ด๊ฒƒ์€ ์•ฝ๊ฐ„์˜ ์ˆ˜์ •์ด ํ•„์š”ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@rreusser ํ•ด๋‹น ์ปค๋ฐ‹์„

๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ์š”์†Œ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์•ฝ๊ฐ„์˜ ๊ตฌ์„ฑ์œผ๋กœ ์Šคํฌ๋กค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. <select /> ๊ฐ€ ์Šคํฌ๋กค๋ง div์˜ ์ง๊ณ„ ์ž์‹์ด ์•„๋‹Œ ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค.

$(".your-select").chosen({
    overflow_container: $(".scrolling-div")
});

๊ทธ๋Ÿฌ๋‚˜ <select /> ์˜ ๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ <div /> ๊ฒฝ์šฐ ์ด๊ฒƒ์€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@gil , ์ด ํฌํฌ๊ฐ€ ๋งˆ์Šคํ„ฐ์— ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์•„์ง ํ…Œ์ŠคํŠธ ์ค‘์ธ๊ฐ€์š”? ๋˜ํ•œ ํฌํฌ์˜ ํ‚ค๋ณด๋“œ ์ปจํŠธ๋กค์— ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์ชฝ ํ™”์‚ดํ‘œ ํ‚ค๊ฐ€ results_show ๋˜๋Š” results_toggle ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ :-)

@myfriendtodd ์•„์ง ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋ชจ๋‘๊ฐ€ ์•ˆ์ •์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•  ๋•Œ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์•„์ง ๋” ๋งŽ์€ ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์ฃผ๋ง์— ํ‚ค๋ณด๋“œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌ!

@myfriendtodd ํ—ค์ด, ๋‚ด๊ฐ€

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @gil ์ด ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€

@gil ํฌํฌ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์ • ์‚ฌํ•ญ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์•„๋ฆ„๋‹ต๊ฒŒ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค!

๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” Kickstrap์„ ์‚ฌ์šฉํ•˜์—ฌ Twitter Bootstrap์— ๋งž๊ฒŒ Chosen ์Šคํƒ€์ผ์„ ์ง€์ •ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ด ์ˆ˜์ •์ด ๋งค์šฐ ์‹ฌํ•˜๊ฒŒ ์†์ƒ๋œ Chosen์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋“œ๋กญ๋‹ค์šด์˜ ๋‚ด์šฉ์€ ํŽ˜์ด์ง€ ํ•˜๋‹จ์— ์Šคํƒ€์ผ์ด ์ง€์ •๋˜์ง€ ์•Š์€ https://skitch.com/dyad/euys2/login ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ Kickstrap์€ ๊ธฐ๋ณธ ์„ ํƒ๋œ ์Šคํƒ€์ผ์„ ๋ฎ์–ด์”๋‹ˆ๋‹ค.

์Šคํƒ€์ผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ LESS ํŒŒ์ผ์€ https://github.com/ajkochanowicz/Kickstrap/blob/master/extras/chosen/chosen.less ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ์–ด๋‚ ์ง€๋„?

์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์–˜๋“ค ์•„,

๋ณธ๋ฌธ์— ๋“œ๋กญ๋‹ค์šด์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋Œ€์‹  ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์œผ๋กœ ์ƒˆ ๋ฒ„์ „์„ ์ž‘์—…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฒ„์ „์€ ํ›จ์”ฌ ๊นจ๋—ํ•˜๊ณ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํฌ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ๋ฒ„๊ทธ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํšจ๊ณผ๊ฐ€ ์žˆ๋Š”์ง€ ํ•œ๋ฒˆ ํ•ด๋ณด์‹œ๊ฒ ์–ด์š”? ์ƒˆ ์ง€์ ์— ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/gil/chosen/tree/new_version

@conatus ์ด ๋ฒ„์ „์œผ๋กœ๋„ ์‹œ๋„ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? "master" ๋ถ„๊ธฐ์˜ ๋งˆ์ง€๋ง‰ ๋ฒ„์ „์€ CSS ํŒŒ์ผ์— ๋งŽ์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์—ˆ๊ณ  ์ด ๋ฒ„์ „์€ 3์ค„๋งŒ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. Kickstrap์˜ ์„ ํƒ๋œ CSS์—์„œ ๋‹ค์Œ์„ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค.

  • 4ํ–‰, "์œ„์น˜: ์ƒ๋Œ€"์—์„œ ๋ณ€๊ฒฝ "์œ„์น˜: ์ •์ ;"์œผ๋กœ.
  • "์œ„์น˜: ์ ˆ๋Œ€;"์—์„œ 13๋ฒˆ์งธ ์ค„ ๋ณ€๊ฒฝ "์œ„์น˜: ๊ณ ์ •;"์œผ๋กœ.
  • 128ํ–‰์—์„œ "left: -9000px;" ์•„๋ž˜์— ์ƒˆ ํ–‰ "display: none;"์„ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ํšจ๊ณผ๊ฐ€ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค! ;)

๋˜ํ•œ ์ด ์ƒˆ ๋ฒ„์ „์€ Harvestq์˜ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์™€ ๋™๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค!

๋ฏธ์•ˆํ•˜์ง€๋งŒ ์ด์ „์— ํ›„์† ์กฐ์น˜๋ฅผ ์ทจํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ํ”„๋กœ์ ํŠธ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์— ์ฐฉ์ˆ˜ํ–ˆ๊ณ  ์ด๊ฒƒ์€ ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ๋ฉ€์–ด์กŒ์Šต๋‹ˆ๋‹ค! ํ…Œ์ŠคํŠธํ•ด๋ณด๊ณ  ๊ธฐํšŒ๊ฐ€ ๋˜๋Š”๋Œ€๋กœ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ณ„์†ํ•ด์„œ ๋…ธ๋ ฅํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@gil - ๊ท€ํ•˜์˜ ๋ฒ„์ „์„ ํ…Œ์ŠคํŠธ

์ด์— ๋Œ€ํ•œ 2๊ฐ€์ง€ ๊ฐ€๋Šฅํ•œ ํ•ด๊ฒฐ์ฑ…๋งŒ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
1) selected๊ฐ€ ๊ณ ์ • ์œ„์น˜ ์š”์†Œ ๋‚ด๋ถ€์— ๋ฐฐ์น˜๋œ ๊ฒฝ์šฐ ๋“œ๋กญ๋‹ค์šด์€ chzn-container ๋‚ด๋ถ€์— ๋ฐฐ์น˜๋˜์–ด์•ผ ํ•˜๋ฉฐ ๊ณ ์ • ์œ„์น˜๋„ ์ œ๊ณต๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒ๋‹จ ์œ„์น˜๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ๊ณ ์ • ์œ„์น˜๋กœ ๊ณ„์‚ฐ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
2) ์Šคํฌ๋กคํ•˜๋Š” ๋™์•ˆ ๋“œ๋กญ๋‹ค์šด ์œ„์น˜ ๋‹ค์‹œ ๊ณ„์‚ฐ

์„ธ ๋ฒˆ์งธ ์˜ต์…˜์€ ์„ ํƒ ํ•ญ๋ชฉ์ด ๊ณ ์ • ์œ„์น˜ ์ปจํ…Œ์ด๋„ˆ์— ์žˆ์„ ๋•Œ๋งˆ๋‹ค ๋“œ๋กญ๋‹ค์šด์„ ๊ณ ์ •์‹œํ‚ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@ragulka @ChiperSoft ๋ฌธ์ œ๊ฐ€ ๋ณด์ž…๋‹ˆ๋‹ค... ํ™•์ธ์„ ์œ„ํ•ด ์ด jsfiddle์ด ์—ฌ๋Ÿฌ๋ถ„์ด ๋งํ•˜๋Š” ๊ฒƒ์„ ์žฌํ˜„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? http://jsfiddle.net/QY256/

๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋ญ”๊ฐ€๋ฅผ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. div๋งŒ ์Šคํฌ๋กคํ•  ๋•Œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ์Šคํฌ๋กค ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” overflow_container ๋ผ๋Š” ์ƒˆ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๋Š” ์ฐฝ์„ ์Šคํฌ๋กคํ•  ๋•Œ ์œ„์น˜๊ฐ€ ์ž˜๋ชป ์ง€์ •๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์Šคํฌ๋กค์„ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋‹ค๋ฅธ ์‚ฌ์†Œํ•œ ๋ฌธ์ œ(์˜ˆ <select /> ๊ฐ€ ์ ˆ๋ฐ˜๋งŒ ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ)๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด์–ธ๊ฐ€๊ฐ€ ์Šคํฌ๋กค๋  ๋•Œ Chosen์„ ๋‹ซ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

@ragulka @ChiperSoft ๋˜ํ•œ ์ž„์‹œ ์ˆ˜์ • ์‚ฌํ•ญ์œผ๋กœ update_position ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด 640๋ฒˆ ์ค„์„ ๋ณ€๊ฒฝํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

"top": (offset.top + dd_top) + "px",

NS:

"top": (offset.top + dd_top - $(window).scrollTop()) + "px", ?

@gil ์˜ˆ ๋ฐ ์•„๋‹ˆ์˜ค - ์ œ๊ณตํ•œ jsfiddle์— ๋ฌธ์ œ๊ฐ€ ํ‘œ์‹œ๋˜์ง€๋งŒ ๋‚˜์—๊ฒŒ๋Š” ๋ณธ๋ฌธ์„ ์Šคํฌ๋กคํ•  ๋•Œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค(๋‚ด ๊ณ ์ • ์š”์†Œ์—๋Š” ์Šคํฌ๋กค ๋ง‰๋Œ€๊ฐ€ ์—†์Œ). ๊ท€ํ•˜์˜ jsfiddle์—์„œ ๊ณ ์ • ์š”์†Œ์˜ ๋‚ด์šฉ์„ ์Šคํฌ๋กคํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ๋ณธ๋ฌธ์„ ์Šคํฌ๋กคํ•  ๋•Œ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@ragulka ๊ทธ๊ฒƒ์ด ์ตœ์„ ์˜ ํ•ด๊ฒฐ์ฑ…์ด ๊ณ ์ณค ์Šต๋‹ˆ๋‹ค. ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚ด๊ฐ€ ๋งํ–ˆ๋“ฏ์ด 640ํ–‰์„ ๋ณ€๊ฒฝํ•˜๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด Chosen์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

$(".your-select").chosen({
    overflow_container: $(".your-fixed-div").add( document )
});

์ด๊ฒƒ์€ div ๋ฐ document ์—์„œ ์Šคํฌ๋กค์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์œ„์น˜๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ๋งํ–ˆ๋“ฏ์ด, ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋‚˜์ค‘์— ์‚ฌ์šฉ์ž๊ฐ€ ์Šคํฌ๋กคํ•  ๋•Œ Chosen์ด ์ˆจ๊ธฐ๋„๋ก ๋ณ€๊ฒฝํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์„ ํƒ๋œ ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์„ ํƒ์— ๋Œ€ํ•œ ๋Œ€์ฒดํ’ˆ์œผ๋กœ select2๋กœ ์ „ํ™˜ํ–ˆ์œผ๋ฉฐ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ˆ˜ํ–‰ํ•  ํ•„์š” ์—†์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ค‘๊ฐ„์— Kickstrap์ด ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค - https://github.com/ajkochanowicz/Kickstrap/blob/beta/assets/Kickstrap/apps/chosen/chosen.css. ์ƒˆ ๋ธŒ๋žœ์น˜๋Š” ํ›Œ๋ฅญํ•˜๊ฒŒ ์ž‘๋™ํ•˜์ง€๋งŒ Kickstrap CSS์— ์ œ์•ˆํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ํšจ๊ณผ๊ฐ€ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋“œ๋กญ๋‹ค์šด ์ž์ฒด๊ฐ€ ๋” ์ด์ƒ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์•„์ด๋””์–ด? ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@gil๋‹˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!!! ๊ท€ํ•˜์˜ ์ง€์ (https://github.com/gil/chosen/tree/new_version)์ด ์ด ํŠน์ • ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ์กฐ์–ธ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. Bootstrap v2.1.1 ๋ชจ๋‹ฌ ๋ฐ Chosen v0.9.11์—์„œ ๋“œ๋กญ๋‹ค์šด์ด ์ž‘๋™ํ•˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ์œ„์˜ ์ œ์•ˆ ์‚ฌํ•ญ์„ ์•ฝ๊ฐ„ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€๊ฐ€ ์Šคํฌ๋กค๋œ ํ›„ ๋‹ค์‹œ ์—ด๋ ธ์„ ๋•Œ .chzn-drop์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์œ„์น˜ํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ์•ฝ๊ฐ„์˜ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์„ ๋•๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

CSS
.modal .chzn-container .chzn-drop {
  position:fixed;
}
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
Chosen.prototype.results_show = function() {

      var self = this;

      // hide .chzn-drop when the window resizes else it will stay fixed with previous top and left coordinates
      $(window).resize(function() {
        self.results_hide();
      });

      var dd_top;
      if (!this.is_multiple) {
        this.selected_item.addClass("chzn-single-with-drop");
        if (this.result_single_selected) {
          this.result_do_highlight(this.result_single_selected);
        }
      } else if (this.max_selected_options <= this.choices) {
        this.form_field_jq.trigger("liszt:maxselected", {
          chosen: this
        });
        return false;
      }
      dd_top = this.is_multiple ? this.container.height() : this.container.height() - 1;
      this.form_field_jq.trigger("liszt:showing_dropdown", {
        chosen: this
      });

      if($('.modal.in').length) {
        // when in a modal get the scroll distance and apply to top of .chzn-drop
        var offset = this.container.offset();
        var scrolly = parseInt($(window).scrollTop(), 10);
        scrolly = scrolly < 0 ? 0 : scrolly;
        var toppy = offset.top+ dd_top - scrolly;
        this.dropdown.css({
          "top": toppy + "px",
          "left": offset.left + "px"
        });
      } else {
        // proceed as normal
        this.dropdown.css({
          "top": dd_top + "px",
          "left": 0
        });
      }

      this.results_showing = true;
      this.search_field.focus();
      this.search_field.val(this.search_field.val());
      return this.winnow_results();
    };

๊ทธ๋ž˜์„œ ๋‚˜๋Š” Chosen 0.9.11๋กœ ์กฐ๊ธˆ ๋†€๊ณ  ์žˆ์—ˆ๊ณ  Chosen์—์„œ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค...

๋“œ๋ž˜๊ทธ ๊ฐ€๋Šฅํ•˜๊ณ  ์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ์žˆ๋Š” ์ตœ๋Œ€ ๋†’์ด๊ฐ€ ์žˆ๋Š” ํฌ๊ฒŒ ์ˆ˜์ •๋œ jQueryUI ๋Œ€ํ™” ์ƒ์ž ๋‚ด์—์„œ Chosen์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ Chosen์ด ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ".chzn-container .chzn-drop"์„ " position:fixed "๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  " display:none "์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ "Chosen.prototype.results_hide"์—์„œ "this.dropdown.css"์— " display:none "์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค...

this.dropdown.css({
    "left": "-9000px",
    "display": "none"
});

๊ทธ๋ฆฌ๊ณ  "Chosen.prototype.results_show"์—์„œ "this.dropdown.css"์˜ ๋‚ด์šฉ์„ " display:block "์œผ๋กœ ๋ฐ”๊ฟจ์Šต๋‹ˆ๋‹ค.
.chzn-drop div์˜ ์˜ฌ๋ฐ”๋ฅธ ์œ„์น˜๋ฅผ ์–ป์œผ๋ ค๋ฉด jQueryUI ์œ„์น˜ ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

this.dropdown.css({
    "display": "block"
}).position({ my: 'left top-1', at: 'left bottom', of: this.container, collision: 'fit',  });

"Chosen.prototype.search_field_scale" ๋ณ€๊ฒฝ์—์„œ...

return this.dropdown.css({
    "top": dd_top + "px"
});

... NS ...

return this.dropdown.position({ my: 'left top-1', at: 'left bottom', of: this.container, collision: 'fit',  });

์ด์ œ ํ•œ ๊ฐ€์ง€ ๋ฌธ์ œ๋งŒ ๋‚จ์•˜์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ์ด๋™ํ•˜๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ ์„ ํƒํ•œ ๋“œ๋กญ์„ ๋‹ซ์œผ๋ ค๋ฉด jQuery UI ๋Œ€ํ™” ์ƒ์ž ๋“œ๋ž˜๊ทธ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹  ๋Œ€๊ธฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๋ฏธ ์ด๊ฒƒ์„ ๋‹ฌ์„ฑํ–ˆ์ง€๋งŒ ์ฝ”๋“œ๋Š” ๊ฝค ๋”๋Ÿฝ์Šต๋‹ˆ๋‹ค :-)

์ด ๋ถ„๊ธฐ https://github.com/gil/chosen/commits/new_version์˜ ์ค‘์š”ํ•˜์ง€ ์•Š์€ ์ˆ˜์ • ์‚ฌํ•ญ์ด GWTchosen์œผ๋กœ ์ด์‹๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ?
GWTchosen์€ ๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ˜„์žฌ ์ƒํƒœ์—์„œ๋Š” LayoutPanel๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‹จ์ˆœํžˆ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋‚˜ ์ƒˆ ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ…์ŠคํŠธ ํ•„๋“œ ์œ„์— ๋ชฉ๋ก์ด ๋ Œ๋”๋ง๋˜๋Š” Chosen ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์ƒˆ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ์ด ๋ฐฉ๋ฒ•์œผ๋กœ ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ž˜ํ•‘ overflow:hidden div ์™ธ๋ถ€์—์„œ ๋ชฉ๋ก์„ ๋ Œ๋”๋งํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ์•„๋งˆ๋„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ถ”์‹ : ๋‚˜๋Š” ์ด๊ฒƒ์„ overflow:hidden ์ด ํ•˜๊ณ  ์žˆ๋Š” ์ผ์„ ์ •ํ™•ํžˆ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฌธ์ œ๋กœ ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ์ด ์žˆ์–ด์„œ ๋”์šฑ ์ข‹์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ.

+1 Klikerko์˜ ์ œ์•ˆ์—.

@sillysachin๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ GWTchosen ์„ ์‚ฌ์šฉํ•˜๊ณ  LayoutPanels, overflow:hidden ๋ฐ ChosenListBox์— ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค./

๋ˆ„๊ตฌ๋“ ์ง€ ์ด๊ฒƒ์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? @sillysachin ์—ฌ๊ธฐ์— ๊ฒŒ์‹œํ•œ ์ดํ›„๋กœ ๋ญ”๊ฐ€ ์ƒ๊ฐํ•ด ๋‚ธ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฏธ๋ฆฌ Tnx:)

์šฐ๋ฆฌ๋Š” ๋ถ€๋ชจ ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋“œ๋กญ๋‹ค์šด div๋ฅผ ๊ฐ€์ ธ์™€ ์ž„์‹œ๋กœ ํŒจ์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ๋‚˜๋Š” ๋ฆด๋ฆฌ์Šค์— ํœฉ์“ธ๋ ค ์—ฌ๊ธฐ์— ์ œ์ถœํ•˜๊ธฐ ์ „์— ํŒจ์น˜๋ฅผ ์ •๋ฆฌํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

https://github.com/tompaton/chosen/commit/3d9be332de23bfe69d53c7640e829e879e084983์˜ ์ด ์ปค๋ฐ‹์€ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ์ž˜ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ๋น„๊ต์  ์ตœ์‹  ๋ฒ„์ „์ด์ง€๋งŒ jQuery์šฉ์œผ๋กœ๋งŒ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

@robmcguinness ์ž‘๋™ํ•˜๋ ค๋ฉด ์ผ๋ถ€๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋“œ๋กญ๋‹ค์šด์„ ๋‹ซ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ.

 Chosen.prototype.results_show = function() {

 this.dropdown.css({
      "display": 'block'
    });

  var dd_top;
  $(window).resize(function() {
    this.results_hide();
  });

  if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
    this.form_field_jq.trigger("chosen:maxselected", {
      chosen: this
    });
    return false;
  }

  dd_top = this.is_multiple ? this.container.height() : this.container.height() - 1;
  this.container.addClass("chosen-with-drop");
  this.form_field_jq.trigger("chosen:showing_dropdown", {
    chosen: this
  });

  if($('.modal.in').length) {
    // when in a modal get the scroll distance and apply to top of .chzn-drop
    var offset = this.container.offset();
    var scrolly = parseInt($(window).scrollTop(), 10);
    scrolly = scrolly < 0 ? 0 : scrolly;
    var toppy = offset.top+ dd_top - scrolly;
    this.dropdown.css({"top": toppy + "px","left": offset.left + "px"});
  } else {
    // proceed as normal
    this.dropdown.css({
      "top": dd_top + "px",
      "left": 0
    });
  }




  this.results_showing = true;
  this.search_field.focus();
  this.search_field.val(this.search_field.val());
  return this.winnow_results();
};


Chosen.prototype.results_hide = function() {
  if (this.results_showing) {

    this.dropdown.css({
      "display": 'none'
    });

    this.result_clear_highlight();
    this.container.removeClass("chosen-with-drop");
    this.form_field_jq.trigger("chosen:hiding_dropdown", {
      chosen: this
    });
  }
  return this.results_showing = false;
};

CSS์— ๋„ˆ๋น„๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์‚ฌ์ดํŠธ ๋„ˆ๋น„๊ฐ€ 100%๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

.modal .chosen-container .chosen-drop {
์œ„์น˜: ๊ณ ์ •;
๋„ˆ๋น„: 300px;
}

์œ„์˜ ์ฝ”๋“œ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ 1๊ณผ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚ด ๊ฒƒ์ด ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•œ ์žฅ๋น„์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ง€๊ธˆ๊นŒ์ง€๋Š” ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ณธ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ๋Š” ๋ธŒ๋ผ์šฐ์ € ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์ธ๋ฐ ํ˜„์žฌ ๋ชจ๋“œ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฐ€๋Šฅํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ๊ณง ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ๋  ๊ฒƒ์ธ์ง€ ์•„๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•œ ๊ฑฐ๋ž˜ ์ฐจ๋‹จ๊ธฐ์ž…๋‹ˆ๋‹ค =/.

์šฐ๋ฆฌ๋Š” Select2๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค... ๋” ๋งŽ์€ ๊ธฐ๋Šฅ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

2013๋…„ 12์›” 19์ผ ๋ชฉ์š”์ผ ์˜ค์ „ 11์‹œ 24๋ถ„, Daniel Hoffmann Bernardes <
[email protected]>์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฐ€๋Šฅํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋Š” ๋ˆ„๊ตฌ๋‚˜ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๊ณง ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•œ ๊ฑฐ๋ž˜ ์ฐจ๋‹จ๊ธฐ์ž…๋‹ˆ๋‹ค =/.

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ Gi tHubhttps://github.com/harvesthq/chosen/issues/86#issuecomment -30942420์—์„œ ํ™•์ธํ•˜์„ธ์š”.
.

PilotBob ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋” ์ด์ƒ ์œ ์ง€ ๊ด€๋ฆฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์˜ ์‚ฌ์šฉ์ž์˜€๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋ฐœ๊ฒฌํ•œ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๋กœ ์ธํ•ด
๋Œ€์•ˆ.

2013๋…„ 12์›” 19์ผ ๋ชฉ์š”์ผ ์˜ค์ „ 11์‹œ 53๋ถ„, Daniel Hoffmann Bernardes <
[email protected]>์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

PilotBob ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋” ์ด์ƒ ์œ ์ง€ ๊ด€๋ฆฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ๋‹น์‹ ์ด ์›ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค
๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ Gi tHubhttps://github.com/harvesthq/chosen/issues/86#issuecomment -30945150์—์„œ ํ™•์ธํ•˜์„ธ์š”.
.

@DanielHoffmann Chosen์€ ์—ฌ์ „ํžˆ โ€‹โ€‹ํ™œ๋ฐœํžˆ ์œ ์ง€๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Select2๋Š” ์›๋ž˜ Chosen์˜ ํฌํฌ์˜€์ง€๋งŒ ๊ทธ ์ดํ›„๋กœ ์ž์‹ ์˜ ๊ฒƒ์ด ๋  ์ •๋„๋กœ ๋ฉ€์–ด์กŒ์Šต๋‹ˆ๋‹ค.

Chosen์€ ์˜๋„์ ์œผ๋กœ ๋‹จ์ˆœํ•˜๊ฒŒ ์œ ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. select ๋Œ€ํ•œ ๋“œ๋กญ์ธ ๊ต์ฒด๋ฅผ ์˜๋„ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณต์žกํ•œ ๊ธฐ๋Šฅ๊ณผ ๊ตฌ์„ฑ์„ ๋งŽ์ด ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Select2๋Š” ๋ฐ˜๋Œ€์˜ ๊ธธ์„ ํƒํ–ˆ๊ณ  ๋งŽ์€ ๊ธฐ๋Šฅ๊ณผ ๊ตฌ์„ฑ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ฒ ํ•™ ์ค‘ ์–ด๋Š ๊ฒƒ์„ ๋” ๊ฐ€์น˜ ์žˆ๊ฒŒ ์—ฌ๊ธฐ๋Š”์ง€๋Š” ๊ท€ํ•˜์—๊ฒŒ ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.

์ด _ํŠน์ •_ ๋ฌธ์ œ๋Š” ๋ถˆํ–‰ํžˆ๋„ ๋ฌธ์ œ์ผ ๋ฟ ์ˆ˜์ •์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ํ’€ ์š”์ฒญ์„ ์ œ์ถœํ•˜๋ฉด ๋ณ‘ํ•ฉ์ด ๊ณ ๋ ค๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ OSS๋Š” ๋ฉ”์ธํ…Œ์ด๋„ˆ์˜ ์ฃผ์š” ์—…๋ฌด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ํ’€ํƒ€์ž„ ์—…๋ฌด๋ฅผ ํ•  ์ˆ˜ ์žˆ์„ ๋•Œ ์ž‘์—…ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ญ์ƒ ๊ทธ๋ ‡๋“ฏ์ด ์ง์ ‘ ์ˆ˜์ •ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ "pull requests ํ—ˆ์šฉ"์„ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค!

์ด ๋ฌธ์ œ๋Š” ์–ธ์ œ ์ˆ˜์ •๋˜๋‚˜์š”? ๋„ˆ๋ฌด ์˜ค๋ž˜๋˜์—ˆ์ง€๋งŒ ๋งŽ์€ ํ”„๋กœ์ ํŠธ์— ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค! ์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ์ฒ˜๋ฆฌํ•ด์ฃผ์„ธ์š”!

๊ฐ์‚ฌ ํ•ด์š”!

์„ ํƒํ•œ ํฌํฌ์— ๋งŽ์€ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์œผ๋ฏ€๋กœ ์ด๋Ÿฌํ•œ ์ˆ˜์ • ์‚ฌํ•ญ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

@domnulnopcea ์ด์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ œ์ถœํ•œ PR์€ ์—†์œผ๋ฉฐ ๋ณด๊ณ ์„œ๊ฐ€ ์ค‘๋ณต๋ฉ๋‹ˆ๋‹ค. ๊ณ ์น  ์ƒ๊ฐ์ด ์žˆ์œผ๋ฉด PR์„ ๋ณด๋‚ด์ฃผ์„ธ์š”. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฒ€ํ† ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ด ํŠน์ • ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ํฌํฌ์— ๋Œ€ํ•ด ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊นจ๋—ํ•œ ํฌํฌ๊ฐ€ ์•„๋‹ˆ๋ฉฐ ๋‹ค๋ฅธ ์ €์žฅ์†Œ์— ๋ฌปํ˜€ ์žˆ๊ณ  jQuery ๋ฒ„์ „์—๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค. (์•„๋‹ˆ, ๋‚œ ๋‚ด ์ž์‹ ์ด ์ž๋ž‘์Šค๋Ÿฝ์ง€ ์•Š์•„)

๋ณธ๋ฌธ ์š”์†Œ์— ๋“œ๋กญ๋‹ค์šด ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ํŽ˜์ด์ง€๋ฅผ ์Šคํฌ๋กคํ•˜๊ฑฐ๋‚˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•  ๋•Œ ์œ„์น˜๋ฅผ ์ ˆ๋Œ€์ ์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋“œ๋กญ๋‹ค์šด์ด ํ•„๋“œ ์œ„ ๋˜๋Š” ์•„๋ž˜์— ์žˆ์–ด์•ผ ํ•˜๋Š”์ง€์™€ ๋†’์ด๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋˜์–ด์•ผ ํ•˜๋Š”์ง€๋„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋ž˜์„œ ํŽ˜์ด์ง€์—์„œ ์ž˜๋ฆฌ์ง€ ์•Š๋„๋ก).

์ด๊ฒƒ์ด ๋ณ‘ํ•ฉ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฒƒ์ด๋ผ๋ฉด(๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ๋กœ ๋‹ค๋ฅธ ํฌํฌ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ) ๋จผ์ง€๋ฅผ ํ„ธ์–ด๋‚ด๊ณ  ํ’€ ์š”์ฒญ์„ ์ƒ์„ฑํ•  ์‹œ๊ฐ„์„ ์ฐพ์œผ๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

https://gist.github.com/msaspence/11032254

@domnulnopcea ์ด๊ฒƒ์€ ์„ ํƒ๋œ ์ž์ฒด AFAIK์— ํฌํ•จํ•˜๊ธฐ ์œ„ํ•ด ์ œ์ถœ๋œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ž‘์—…์„ ์กฐ์‚ฌํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ํฌํฌ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ž์œ  ์‹œ๊ฐ„์— Chosen์— ๋Œ€ํ•ด ์ž‘์—…ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋งŽ์€ ์ €์žฅ์†Œ์—์„œ ์ˆ˜์ฒœ ๊ฐœ์˜ ์ปค๋ฐ‹์„ ๊ฒ€์‚ฌํ•˜์—ฌ ๊ทธ๋“ค์ด ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐ ๋ช‡ ์ฃผ๋ฅผ ํ• ์• ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@stof ๋‹น์‹ ์˜ ๋…ธ๊ณ ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋‚ด ํ”„๋กœ์ ํŠธ(www.ubirimi.com)์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด์ œ ์ปค๋ฐ‹์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ œ๊ณตํ–ˆ์œผ๋ฏ€๋กœ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‚ดํŽด๋ณด๊ณ  ์„ ํƒํ•œ ๊ณต์‹ ์ €์žฅ์†Œ์— ์ ์šฉํ•ด๋„ ๋ ๊นŒ์š”?

์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

์ง์ ‘ ์ ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ ์„ ๊ฐ์•ˆํ•  ๋•Œ(11๊ฐœ์›” ์ดํ›„ ์ฝ”๋“œ๊ฐ€ ๋งŽ์ด ๋ณ€๊ฒฝ๋จ) ์‹œ๊ฐ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค(๋˜ํ•œ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•จ). ๊ทธ๋ž˜์„œ ์ง€๊ธˆ์€ ํ•  ์ˆ˜ ์—†๋‹ค.

@stof ์ƒ๊ฐ

@domnulnopcea ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค๋ฉด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‚ดํŽด๋ณด๊ณ  ์ง์ ‘ pull ์š”์ฒญ์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์œผ

@msaspence ํ•˜์ง€๋งŒ ์ €๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค! ๋‚˜๋Š” JS์™€ ๊ทธ ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ ์ธก ๋ฌผ๊ฑด์— ์ต์ˆ™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

AJAX ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— Select2๋กœ ๋„˜์–ด๊ฐ”์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์€ ๊ทธ๊ฒƒ์„๋ณด๊ณ  ์‹ถ์–ด ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๋‹จ๊ณ„์—์„œ ๋ชจ๋‘๊ฐ€ Select2๋กœ ์ด๋™ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. Chosen์„ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ค ์ด์ ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋ฅผ ์œ„ํ•ด PilotBob ์†”๋ฃจ์…˜์ด ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค!

๋‚ด ์ฝ”๋“œ์— ์ด๊ฒƒ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

$(๋ฌธ์„œ).ready(ํ•จ์ˆ˜() {
$(".chzn-select").on(" liszt:showing_dropdown ", ํ•จ์ˆ˜() {
$(this).parents("div").css("overflow", "visible");
});
}

๋งค์šฐ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!!!

๋ฌธ์ œ๋Š” ์˜ต์…˜ ๋ชฉ๋ก์˜ ์œ„์น˜๊ฐ€ absolute ์ด๊ณ  ์ƒ์œ„ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ™•์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ œ์•ˆํ•˜๋Š” ์†”๋ฃจ์…˜์€ float: left | right ๋กœ DOM ๊ฐœ์ฒด๋ฅผ ์ถ”๊ฐ€ํ•œ ํ›„ ๋ถ€๋ชจ๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— clear:both

๋‚ด CSS์—์„œ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๊ฒƒ์„ (jquery-ui ๋Œ€ํ™” ์ƒ์ž์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ) ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

#clone-budget-dialog {overflow: visible;}

@grduggan ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ CSS์—์„œ ์†”๋ฃจ์…˜์„ ์ œ์•ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
๋‚˜๋Š” ๋‹น์‹ ์˜ ํ•ด๊ฒฐ์ฑ…์ด ์œ ํšจํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ‘ธ์‹œ ์š”์ฒญ์„ ํ•˜์„ธ์š”!
+1

์ „์— ํ•œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ์กฐ์‚ฌ๋ฅผ ํ•ด์•ผ๊ฒ ๋‹ค. CSS์— ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์„ ํƒ ์ƒ์ž๊ฐ€ ํŽ˜์ด์ง€ ๋์— ๊ฐ€๊นŒ์šธ ๋•Œ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์„ ํƒ ์ƒ์ž๋Š” ์ด ๋ฌธ์ œ๋ฅผ ๋“œ๋กญ๋‹ค์šด ๋Œ€์‹  ์—ฌ๋Š” ๊ฒƒ์œผ๋กœ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์™œ ์•ˆ ๋ผ?

์˜ค๋ฒ„ํ”Œ๋กœ: ๋ณด์ด๋Š”; ์ปจํ…Œ์ด๋„ˆ์˜ div์—์„œ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค! ๊ฐ์‚ฌ.

float๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํ•ญ์ƒ overflow:hidden์ด ํ•„์š”ํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค

&:์ „์—,
&:ํ›„์— {
์ฝ˜ํ…์ธ : " "; // 1
๋””์Šคํ”Œ๋ ˆ์ด: ํ…Œ์ด๋ธ”; // 2
}
&:ํ›„์— {
ํด๋ฆฌ์–ด: ๋‘˜ ๋‹ค;
}

์ด๊ฒƒ์ด ๋ถ€ํŠธ ์ŠคํŠธ๋žฉ์—์„œ clearfix ํด๋ž˜์Šค๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

CSS๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค(์•„๋ž˜ ์ฐธ์กฐ). ๋‚ด ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค.

.chosen-container .chosen-drop {
์œ„์น˜: ์ƒ๋Œ€; //์ปจํ…Œ์ด๋„ˆ์˜ ์˜ค๋ฒ„ํ”Œ๋กœ ์ฐจ๋‹จ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์ ˆ๋Œ€๊ฐ’์—์„œ ๋ณ€๊ฒฝ๋จ_/
์ƒ๋‹จ: 100%;
์™ผ์ชฝ: -9999px;
z-์ธ๋ฑ์Šค: 1010;
๋„ˆ๋น„: 100%;
ํ…Œ๋‘๋ฆฌ: 1px ์†”๋ฆฌ๋“œ #aaa;
๊ฒฝ๊ณ„ ์ƒ๋‹จ: 0;
๋ฐฐ๊ฒฝ: #fff;
์ƒ์ž ๊ทธ๋ฆผ์ž: 0px 4px 5px rgba(0,0,0,0.15);
}

.chosen-container .chosen-results {
์ƒ‰์ƒ: #444;
์œ„์น˜: ์ƒ๋Œ€;
overflow-x: ์ˆจ๊น€;
์˜ค๋ฒ„ํ”Œ๋กœ-y: ์ž๋™;
์—ฌ๋ฐฑ: 0 4px 4px 0;
ํŒจ๋”ฉ: 0 0 0 4px;
์ตœ๋Œ€ ๋†’์ด: 200px; // 240ํ”ฝ์…€์—์„œ ๋ณ€๊ฒฝ๋จ_/
-webkit-overflow-scrolling: ํ„ฐ์น˜;

/*Added to clearfix because we changed the chosen-drop to a relative position*/
&:before,
&:after {
    content: " "; // 1
    display: table; // 2
}
&:after {
    clear: both;
}

}

fieldset ์š”์†Œ์—์„œ select(๋ฐ Chosen)๋ฅผ ๋ž˜ํ•‘ํ•˜๋ฉด ์›นํ‚ท ๋ธŒ๋ผ์šฐ์ €์—์„œ ์›์น˜ ์•Š๋Š” ํšจ๊ณผ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(์ฆ‰, ๋ถ€๋ชจ๊ฐ€ overflow: hidden ๊ฐ€์งˆ ๋•Œ ์ž˜๋ผ๋‚ด๊ธฐ).
์ด๋Š” webkit์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•„๋“œ ์„ธํŠธ์— min-width: -webkit-min-content; ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

fieldset { min-width: 0; }

@chassq ํ  ์†”๋ฃจ์…˜์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. .. ์ด ์Šคํฌ๋ฆฐ์ƒท ์ฐธ์กฐ:

image

๋‚˜๋Š” ์„ ํƒํ•œ ์„ ํƒ ์ฃผ์œ„์— div๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  max-height: 200px;
  overflow-y: auto;
  overflow-x: hidden;

์ด๋ฏธ position: fixed ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•œ ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์†”๋ฃจ์…˜์ด ํฌํ•จ๋œ jsfiddle์ž…๋‹ˆ๋‹ค(์„ ํƒํ•œ CSS ํด๋ž˜์Šค๋ฅผ ๋ฎ์–ด์”๋‹ˆ๋‹ค).
http://jsfiddle.net/jwbL8utx/1/ ;)

์•„๋ž˜๋กœ ์Šคํฌ๋กคํ•˜์—ฌ(์ตœ๋Œ€ ๋†’์ด ์‚ฌ์šฉ) ์„ ํƒํ•œ ํ•ญ๋ชฉ์— ์˜คํ”„์…‹์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์—ฌ์ „ํžˆ 1๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋กœ ์Šคํฌ๋กคํ•˜์—ฌ ๋‘ ๋ฒˆ์งธ ์„ ํƒ๋œ ํ•ญ๋ชฉ์„ ์—ด ๋•Œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

http://jsfiddle.net/jwbL8utx/2/

์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

http://jsfiddle.net/0w4a4dq5/1/

์ด ์ˆ˜์ •์€ ์„ ํƒํ•œ ๋ฉ”๋‰ด ์ž์ฒด ์ด์™ธ์˜ ๋‹ค๋ฅธ ์š”์†Œ๋ฅผ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆฌ๋ฉด ๋ฉ”๋‰ด๊ฐ€ ๋‹ค์‹œ ์ˆจ๊ฒจ์ง€๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๊ฒƒ์€ ๋‚ด ์š”๊ตฌ ์‚ฌํ•ญ์— ๋”ฐ๋ฅธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•ญ์ƒ ๋งจ ์œ„์— ์œ ์ง€ํ•˜๋ ค๋ฉด ์Šคํฌ๋กค ์ด๋ฒคํŠธ๋ฅผ div ์ปจํ…Œ์ด๋„ˆ์— ๋ฐ”์ธ๋”ฉํ•˜๊ณ  ' selected:close.chosen ' ์ด๋ฒคํŠธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@typologist ํ›Œ๋ฅญํ•œ ์†”๋ฃจ์…˜์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
JS์—๋Š” ๋‘ ๊ฐ€์ง€ ์‚ฌ์†Œํ•œ ๋ฒ„๊ทธ๊ฐ€ ์žˆ์ง€๋งŒ ์–ธ๊ธ‰ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
51ํ–‰์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

'top': y - $(document).scrollTop()

๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํŠน์ • ์กฐ๊ฑด์—์„œ ํŒ์—…์ด ์˜ฎ๊ฒจ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

23ํ–‰์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹ 

$('.chosen-container')

์ด๋ฒคํŠธ๋ฅผ ๋ฐ”์ธ๋”ฉํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

$chosenSelect.next('.chosen-container')

์ˆ˜์ •ํ•ด์•ผ ํ•  ๋‹ค๋ฅธ selected() ์œ„์ ฏ์œผ๋กœ ํ•จ์ˆ˜๊ฐ€ ๋‘ ๋ฒˆ ์ด์ƒ ํ˜ธ์ถœ๋˜๋Š” ๊ฒฝ์šฐ ๋‹ค์ค‘ ๋ฐ”์ธ๋”ฉ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด.

Chosen v1.4.2์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜์ด ์žˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

.chosen-container.chosen-with-drop .chosen-drop {
    position: relative;
}

overflow-y: visible

๋ ˆ์ด์•„์›ƒ์„ ํฌํ•จํ•˜๋Š” ์ƒ์œ„ div์— ์ด๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค. ์ œ ๊ฒฝ์šฐ์—๋Š” _overflow-y: auto_๊ฐ€ ์žˆ๊ณ  ์ด๋ฅผ _overflow-y: visible_์œผ๋กœ ๋Œ€์ฒดํ•˜๋Š” Modal ๋Œ€ํ™” ์ƒ์ž ํ•˜์œ„ div์˜€์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์•„์ง ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ํ”„๋กœ์ ํŠธ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‘๋‹ต์ด ์žˆ์Šต๋‹ˆ๋‹ค.
http://jsbin.com/finufihaji/edit?html

์กฐ๊ธˆ๋งŒ ์ฐพ์•„๋ณด๊ณ  ํ…Œ์ŠคํŠธํ•ด๋ณด๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ•ด๊ฒฐ์ฑ…์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  ์˜ต์…˜์ด ์„ ํƒ ๊ฐ€๋Šฅํ•˜๊ณ  ์ƒ์œ„ div ์˜ค๋ฒ„ํ”Œ๋กœ ์ง€์‹œ๋ฌธ์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋„๋ก .chosen-drop ๋ฐ .chosen-results๋ฅผ ์žฌ์ •์˜ํ•˜๊ณ  ๊ณ ์ • ๋†’์ด๋ฅผ ๋‘˜ ๋‹ค๋กœ ์„ค์ •ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ ์–ด๋„ ์ด๊ฒƒ์€ ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ œ๊ฐ€ ์„ ํƒํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๋ถ„์•ผ์—๋Š” 3~4๊ฐœ์˜ ์˜ต์…˜๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค. 1(์ˆจ๊ฒจ์ง„ ๊ฒƒ)๋งŒ ์•ฝ 12๋ฅผ ๊ฐ€์ง€๋ฉฐ ๊ฐ€๊นŒ์šด ์žฅ๋ž˜์— ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋ฒ„ํ”Œ๋กœ๊ฐ€ ์žˆ๋Š” ๋ถ€๋ชจ div์— ๋‹ค์Œ์„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

.profile-content { /* Hack to stop profile-content from cropping Chosen dropdown */ padding-bottom: 100px; margin-bottom: -100px; }

์ถœ์ฒ˜: ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ

@doowruc ๋Œ€๋‹จํ•œ ํ•ดํ‚น!

์„ ํƒํ•œ ๋“œ๋กญ๋‹ค์šด์„ ํŠน์ • ๋Œ€์ƒ์— ์—ฐ๊ฒฐํ•˜์—ฌ ๋Œ€ํ™” ์ƒ์ž ๋Œ€์‹  ๋ฌธ์„œ ๋ณธ๋ฌธ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ด ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•˜๋ฉด ๋Œ€ํ™” ์ƒ์ž์—์„œ ํ˜๋Ÿฌ๋‚˜์˜ค๊ณ  ๋Œ€ํ™” ์ƒ์ž์— ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

.ui-dialog-content{
    overflow:visible !important;
 }

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ๋‹ค.

๋‚˜๋Š” ์—ฌ์ „ํžˆ ์ด๊ฒƒ์œผ๋กœ ์–ด๋ ค์›€์„ ๊ฒช๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์š”์†Œ๋ฅผ ๋ณธ๋ฌธ์œผ๋กœ ์ด๋™ํ•˜๊ณ  ์Šคํฌ๋กคํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ์•ˆ์ •์ ์œผ๋กœ ์ ˆ๋Œ€ ์œ„์น˜๋ฅผ ์„ค์ •ํ•˜๋Š” ์˜ต์…˜์„ ๋ณด์—ฌ์ฃผ๋Š” Fiddle์ž…๋‹ˆ๋‹ค.

https://jsfiddle.net/phil_ayres/gvn8bkaL/

https://github.com/R1p8p8e8r/chosen
๋‚ด ์†”๋ฃจ์…˜์ด ๋„์›€์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰