์์์ด ์๋ div๊ฐ ์์ต๋๋ค. div์๋ CSS์ " overflow:hidden " ์ต์
์ด ์์ต๋๋ค.
Chosen์ด ์์ฑ๋๊ณ div์ ํ๋จ ๋ผ์ธ ์๋๋ก ๋ด๋ ค๊ฐ๋ฉด ์๋ฆฝ๋๋ค.
๋ค์์ ์คํฌ๋ฆฐ์ท์ ๋๋ค.
์ด๊ฒ์ 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์ ์ต์ํ์ง ์์ผ๋ฏ๋ก ์ฝ๋๋ฅผ ๊ฒ์ํด์ผ ํ๋ ๋ค๋ฅธ ์ฅ์๊ฐ ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์)
์ด ์ฝ๋๋ ๋ค์์ ํจ๊ณผ์ ์ผ๋ก ์ํํฉ๋๋ค.
ํฅ๋ฏธ๋ก์ด ์์ด๋์ด 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",
"๋์คํ๋ ์ด": "์ฐจ๋จ"
});
์ข์ ์๊ฐ์ด๊ตฐ์ @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์์ ๋ค์์ ๋ณ๊ฒฝํ์ญ์์ค.
์ด๊ฒ์ด ํจ๊ณผ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค! ;)
๋ํ ์ด ์ ๋ฒ์ ์ 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์ด ์ฌ๋ฐ๋ฅด๊ฒ ์์นํ๋๋ก ํ๋ ค๋ฉด ์ฝ๊ฐ์ ๋ณ๊ฒฝ์ด ํ์ํ์ต๋๋ค.
์ด๊ฒ์ด ๋ค๋ฅธ ์ฌ๋๋ค์ ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
.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 ๋ฒ์ ์๋ง ์์ต๋๋ค. (์๋, ๋ ๋ด ์์ ์ด ์๋์ค๋ฝ์ง ์์)
๋ณธ๋ฌธ ์์์ ๋๋กญ๋ค์ด ์์๋ฅผ ์ถ๊ฐํ๊ณ ํ์ด์ง๋ฅผ ์คํฌ๋กคํ๊ฑฐ๋ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ๋ ์์น๋ฅผ ์ ๋์ ์ผ๋ก ์ค์ ํ์ฌ ์๋ํฉ๋๋ค. ๋ํ ๋๋กญ๋ค์ด์ด ํ๋ ์ ๋๋ ์๋์ ์์ด์ผ ํ๋์ง์ ๋์ด๊ฐ ์ผ๋ง๋ ๋์ด์ผ ํ๋์ง๋ ์ ์ ์์ต๋๋ค(๊ทธ๋์ ํ์ด์ง์์ ์๋ฆฌ์ง ์๋๋ก).
์ด๊ฒ์ด ๋ณํฉ์ ๊ด์ฌ์ด ์๋ ๊ฒ์ด๋ผ๋ฉด(๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ๋ค๋ฅธ ํฌํฌ๊ฐ ์๋ ๊ฒฝ์ฐ) ๋จผ์ง๋ฅผ ํธ์ด๋ด๊ณ ํ ์์ฒญ์ ์์ฑํ ์๊ฐ์ ์ฐพ์ผ๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค.
@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 ํ ์๋ฃจ์ ์ด ์๋ํ์ง ์์ต๋๋ค. .. ์ด ์คํฌ๋ฆฐ์ท ์ฐธ์กฐ:
๋๋ ์ ํํ ์ ํ ์ฃผ์์ div๊ฐ ์์ต๋๋ค.
max-height: 200px;
overflow-y: auto;
overflow-x: hidden;
์ด๋ฏธ position: fixed
์๋ฃจ์
์ ์ ๊ณตํ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๋ค์์ ์๋ฃจ์
์ด ํฌํจ๋ jsfiddle์
๋๋ค(์ ํํ CSS ํด๋์ค๋ฅผ ๋ฎ์ด์๋๋ค).
http://jsfiddle.net/jwbL8utx/1/ ;)
์๋๋ก ์คํฌ๋กคํ์ฌ(์ต๋ ๋์ด ์ฌ์ฉ) ์ ํํ ํญ๋ชฉ์ ์คํ์ ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ ํ 1๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์๋๋ก ์คํฌ๋กคํ์ฌ ๋ ๋ฒ์งธ ์ ํ๋ ํญ๋ชฉ์ ์ด ๋ ๋ณผ ์ ์๋ฏ์ด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด๊ฒ์ด ๋ด๊ฐ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ ๋๋ค.
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://github.com/R1p8p8e8r/chosen
๋ด ์๋ฃจ์
์ด ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ