2024-09-19 20:59:56 +09:00
|
|
|
(function ($) {
|
|
|
|
|
$.fn.fancyList = function (element, clear) {
|
|
|
|
|
var cfg = {
|
|
|
|
|
element: "li",
|
|
|
|
|
clear: "clear"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if (typeof element == "object")
|
|
|
|
|
cfg = $.extend(cfg, element);
|
|
|
|
|
else {
|
|
|
|
|
if (element)
|
|
|
|
|
cfg = $.extend(cfg, { element: element });
|
|
|
|
|
if (clear)
|
|
|
|
|
cfg = $.extend(cfg, { clear: clear });
|
|
|
|
|
}
|
2022-09-17 20:50:50 +09:00
|
|
|
|
2024-09-19 20:59:56 +09:00
|
|
|
var $element = this.find(cfg.element);
|
|
|
|
|
var $this = this;
|
2022-09-17 20:50:50 +09:00
|
|
|
|
2024-09-19 20:59:56 +09:00
|
|
|
if ($element.size() < 1)
|
|
|
|
|
return;
|
2022-09-17 20:50:50 +09:00
|
|
|
|
2024-09-19 20:59:56 +09:00
|
|
|
function item_arrange() {
|
|
|
|
|
var $el = $element.filter(":first");
|
|
|
|
|
var padding = 0;
|
|
|
|
|
if ($el.data("padding-right") == undefined) {
|
|
|
|
|
padding = parseInt($el.css("padding-right"));
|
|
|
|
|
$el.data("padding-right", padding);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
padding = $el.data("padding-right");
|
2022-09-17 20:50:50 +09:00
|
|
|
|
2024-09-19 20:59:56 +09:00
|
|
|
$element.css("padding-left", 0).css("padding-right", padding);
|
|
|
|
|
$element.filter("." + cfg.clear).removeClass(cfg.clear);
|
2022-09-17 20:50:50 +09:00
|
|
|
|
2024-09-19 20:59:56 +09:00
|
|
|
var wrap_width = parseInt($this.width());
|
|
|
|
|
var item_width = parseInt($el.outerWidth());
|
|
|
|
|
var line_count = parseInt((wrap_width + padding) / item_width);
|
2022-09-17 20:50:50 +09:00
|
|
|
|
2024-09-19 20:59:56 +09:00
|
|
|
if (line_count == 0)
|
|
|
|
|
return;
|
2022-09-17 20:50:50 +09:00
|
|
|
|
2024-09-19 20:59:56 +09:00
|
|
|
var space = parseInt(wrap_width % item_width);
|
2022-09-17 20:50:50 +09:00
|
|
|
|
2024-09-19 20:59:56 +09:00
|
|
|
if ((space + padding) < item_width) {
|
|
|
|
|
space = wrap_width - ((item_width - padding) * line_count);
|
|
|
|
|
var new_padding = parseInt(space / (line_count * 2));
|
2022-09-17 20:50:50 +09:00
|
|
|
|
2024-09-19 20:59:56 +09:00
|
|
|
if (new_padding > padding)
|
|
|
|
|
$element.css("padding-left", new_padding + "px").css("padding-right", new_padding);
|
|
|
|
|
}
|
2022-09-17 20:50:50 +09:00
|
|
|
|
2024-09-19 20:59:56 +09:00
|
|
|
$element.filter(":nth-child(" + line_count + "n)").css("padding-right", 0);
|
|
|
|
|
$element.filter(":nth-child(" + line_count + "n+1)").addClass(cfg.clear);
|
|
|
|
|
}
|
2022-09-17 20:50:50 +09:00
|
|
|
|
2024-09-19 20:59:56 +09:00
|
|
|
item_arrange();
|
2022-09-17 20:50:50 +09:00
|
|
|
|
2024-09-19 20:59:56 +09:00
|
|
|
$(window).resize(function () {
|
|
|
|
|
item_arrange();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}(jQuery));
|