(function(c, ea, aa, M) {
var ba = 0,
r, N = function() {
var c = M.userAgent,
a = /msie\s\d+/i;
return 0 < c.search(a) && (c = a.exec(c).toString(), c = c.split(" ")[1], 9 > c) ? !0 : !1
} (),
X = "ontouchstart" in aa || 0 < M.msMaxTouchPoints,
O = function(c) {
"number" !== typeof c && (c = parseFloat(c));
return isNaN(c) ? null: c
},
H = {
init: function(fa) {
return this.each(function() {
var a = c.extend({
min: null,
max: null,
from: null,
to: null,
type: "single",
step: null,
prefix: "",
postfix: "",
maxPostfix: "",
hasGrid: !1,
gridMargin: 0,
hideMinMax: !1,
hideFromTo: !1,
prettify: !0,
disable: !1,
values: null,
onLoad: null,
onChange: null,
onFinish: null
},
fa),
e = c(this),
l = this,
I = !1,
g = null;
if (!e.data("isActive")) {
e.data("isActive", !0);
this.plugin_count = ba += 1;
e.prop("value") && (g = e.prop("value").split(";"));
"single" === a.type ? g && 1 < g.length ? ("number" !== typeof a.min ? a.min = parseFloat(g[0]) : "number" !== typeof a.from && (a.from = parseFloat(g[0])), "number" !== typeof a.max && (a.max = parseFloat(g[1]))) : g && 1 === g.length && "number" !== typeof a.from && (a.from = parseFloat(g[0])) : "double" === a.type && (g && 1 < g.length ? ("number" !== typeof a.min ? a.min = parseFloat(g[0]) : "number" !== typeof a.from && (a.from = parseFloat(g[0])), "number" !== typeof a.max ? a.max = parseFloat(g[1]) : "number" !== typeof a.to && (a.to = parseFloat(g[1]))) : g && 1 === g.length && ("number" !== typeof a.min ? a.min = parseFloat(g[0]) : "number" !== typeof a.from && (a.from = parseFloat(g[0]))));
"number" === typeof e.data("min") && (a.min = parseFloat(e.data("min")));
"number" === typeof e.data("max") && (a.max = parseFloat(e.data("max")));
"number" === typeof e.data("from") && (a.from = parseFloat(e.data("from")));
"number" === typeof e.data("to") && (a.to = parseFloat(e.data("to")));
e.data("step") && (a.step = parseFloat(e.data("step")));
e.data("type") && (a.type = e.data("type"));
e.data("prefix") && (a.prefix = e.data("prefix"));
e.data("postfix") && (a.postfix = e.data("postfix"));
e.data("maxpostfix") && (a.maxPostfix = e.data("maxpostfix"));
e.data("hasgrid") && (a.hasGrid = e.data("hasgrid"));
e.data("gridmargin") && (a.gridMargin = +e.data("gridmargin"));
e.data("hideminmax") && (a.hideMinMax = e.data("hideminmax"));
e.data("hidefromto") && (a.hideFromTo = e.data("hidefromto"));
e.data("prettify") && (a.prettify = e.data("prettify"));
e.data("disable") && (a.disable = e.data("disable"));
e.data("values") && (a.values = e.data("values").split(","));
a.min = O(a.min);
a.min || 0 === a.min || (a.min = 10);
a.max = O(a.max);
a.max || 0 === a.max || (a.max = 100);
"[object Array]" !== Object.prototype.toString.call(a.values) && (a.values = null);
a.values && 0 < a.values.length && (a.min = 0, a.max = a.values.length - 1, a.step = 1, I = !0);
a.from = O(a.from);
a.from || 0 === a.from || (a.from = a.min);
a.to = O(a.to);
a.to || 0 === a.to || (a.to = a.max);
a.step = O(a.step);
a.step || (a.step = 1);
a.from < a.min && (a.from = a.min);
a.from > a.max && (a.from = a.min);
a.to < a.min && (a.to = a.max);
a.to > a.max && (a.to = a.max);
"double" === a.type && (a.from > a.to && (a.from = a.to), a.to < a.from && (a.to = a.from));
var z = function(b) {
b = b.toString();
a.prettify && (b = b.replace(/(\d{1,3}(?=(?:\d\d\d)+(?!\d)))/g, "$1 "));
return b
},
g = '<span class="irs" id="irs-' + this.plugin_count + '"></span>';
e[0].style.display = "none";
e.before(g);
var n = e.prev(),
C = c(ea.body),
P = c(aa),
p,
D,
E,
A,
B,
w,
x,
m,
s,
q,
H,
Y,
v = !1,
y = !1,
J = !0,
f = {},
U = 0,
Q = 0,
R = 0,
t = 0,
F = 0,
G = 0,
V = 0,
S = 0,
T = 0,
Z = 0,
u = 0;
parseInt(a.step, 10) !== parseFloat(a.step) && (u = a.step.toString().split(".")[1], u = Math.pow(10, u.length));
this.updateData = function(b) {
c.extend(a, b);
n.find("*").off();
P.off("mouseup.irs" + l.plugin_count);
C.off("mouseup.irs" + l.plugin_count);
C.off("mouseleave.irs" + l.plugin_count);
C.off("mousemove.irs" + l.plugin_count);
n.html("");
M()
};
//www.jq22.com
this.removeSlider = function() {
n.find("*").off();
P.off("mouseup.irs" + l.plugin_count);
C.off("mouseup.irs" + l.plugin_count);
C.off("mouseleave.irs" + l.plugin_count);
C.off("mousemove.irs" + l.plugin_count);
n.html("").remove();
e.data("isActive", !1);
e.show()
};
var M = function() {
n.html('<span class="irs"><span class="irs-line"><span class="irs-line-left"></span><span class="irs-line-mid"></span><span class="irs-line-right"></span></span><span class="irs-min">0</span><span class="irs-max">1</span><span class="irs-from">0</span><span class="irs-to">0</span><span class="irs-single">0</span></span><span class="irs-grid"></span>');
p = n.find(".irs");
D = p.find(".irs-min");
E = p.find(".irs-max");
A = p.find(".irs-from");
B = p.find(".irs-to");
w = p.find(".irs-single");
Y = n.find(".irs-grid");
a.hideFromTo && (A[0].style.visibility = "hidden", B[0].style.visibility = "hidden", w[0].style.visibility = "hidden");
a.hideFromTo || (A[0].style.visibility = "visible", B[0].style.visibility = "visible", w[0].style.visibility = "visible");
a.hideMinMax && (D[0].style.visibility = "hidden", E[0].style.visibility = "hidden", R = Q = 0);
a.hideMinMax || (D[0].style.visibility = "visible", E[0].style.visibility = "visible", a.values ? (D.html(a.prefix + a.values[0] + a.postfix), E.html(a.prefix + a.values[a.values.length - 1] + a.maxPostfix + a.postfix)) : (D.html(a.prefix + z(a.min) + a.postfix), E.html(a.prefix + z(a.max) + a.maxPostfix + a.postfix)), Q = D.outerWidth(!1), R = E.outerWidth(!1));
ga()
},
ga = function() {
if ("single" === a.type) {
if (p.append('<span class="irs-slider single"></span>'), x = p.find(".single"), x.on("mousedown",
function(a) {
a.preventDefault();
a.stopPropagation();
K(a, c(this), null);
y = v = !0;
r = l.plugin_count;
N && c("*").prop("unselectable", !0)
}), X) x.on("touchstart",
function(a) {
a.preventDefault();
a.stopPropagation();
K(a.originalEvent.touches[0], c(this), null);
y = v = !0;
r = l.plugin_count
})
} else "double" === a.type && (p.append('<span class="irs-diapason"></span><span class="irs-slider from"></span><span class="irs-slider to"></span>'), m = p.find(".from"), s = p.find(".to"), H = p.find(".irs-diapason"), L(), m.on("mousedown",
function(a) {
a.preventDefault();
a.stopPropagation();
c(this).addClass("last");
s.removeClass("last");
K(a, c(this), "from");
y = v = !0;
r = l.plugin_count;
N && c("*").prop("unselectable", !0)
}), s.on("mousedown",
function(a) {
a.preventDefault();
a.stopPropagation();
c(this).addClass("last");
m.removeClass("last");
K(a, c(this), "to");
y = v = !0;
r = l.plugin_count;
N && c("*").prop("unselectable", !0)
}), X && (m.on("touchstart",
function(a) {
a.preventDefault();
a.stopPropagation();
c(this).addClass("last");
s.removeClass("last");
K(a.originalEvent.touches[0], c(this), "from");
y = v = !0;
r = l.plugin_count
}), s.on("touchstart",
function(a) {
a.preventDefault();
a.stopPropagation();
c(this).addClass("last");
m.removeClass("last");
K(a.originalEvent.touches[0], c(this), "to");
y = v = !0;
r = l.plugin_count
})), a.to === a.max && m.addClass("last"));
var b = function() {
r === l.plugin_count && v && (v = y = !1, q.removeAttr("id"), q = null, "double" === a.type && L(), $(), N && c("*").prop("unselectable", !1))
};
P.on("mouseup.irs" + l.plugin_count,
function() {
b()
});
if (N) C.on("mouseleave.irs" + l.plugin_count,
function() {
b()
});
C.on("mousemove.irs" + l.plugin_count,
function(a) {
v && (U = a.pageX, W())
});
n.on("mousedown",
function() {
r = l.plugin_count
});
n.on("mouseup",
function(b) {
if (r === l.plugin_count && !v && !a.disable) {
b = b.pageX;
J = !1;
b -= n.offset().left;
var h = f.fromX + (f.toX - f.fromX) / 2;
S = 0;
V = p.width() - G;
T = p.width() - G;
"single" === a.type ? (q = x, q.prop("id", "irs-active-slider"), W(b)) : "double" === a.type && (q = b <= h ? m: s, q.prop("id", "irs-active-slider"), W(b), L());
q.removeAttr("id");
q = null
}
});
X && (P.on("touchend",
function() {
v && (v = y = !1, q.removeAttr("id"), q = null, "double" === a.type && L(), $())
}), P.on("touchmove",
function(a) {
v && (U = a.originalEvent.touches[0].pageX, W())
}));
ca();
ha();
a.hasGrid && ia();
a.disable ? (n.addClass("irs-disabled"), n.append('<span class="irs-disable-mask"></span>')) : (n.removeClass("irs-disabled"), n.find(".irs-disable-mask").remove())
},
ca = function() {
t = p.width();
G = x ? x.width() : m.width();
F = t - G
},
K = function(b, d, h) {
ca();
J = !1;
q = d;
q.prop("id", "irs-active-slider");
d = q.offset().left;
Z = d + (b.pageX - d) - q.position().left;
"single" === a.type ? V = p.width() - G: "double" === a.type && ("from" === h ? (S = 0, T = parseInt(s.css("left"), 10)) : (S = parseInt(m.css("left"), 10), T = p.width() - G))
},
L = function() {
var a = m.width(),
d = c.data(m[0], "x") || parseInt(m[0].style.left, 10) || m.position().left,
h = (c.data(s[0], "x") || parseInt(s[0].style.left, 10) || s.position().left) - d;
H[0].style.left = d + a / 2 + "px";
H[0].style.width = h + "px"
},
W = function(b) {
var d = U - Z,
d = b ? b: U - Z;
"single" === a.type ? (0 > d && (d = 0), d > V && (d = V)) : "double" === a.type && (d < S && (d = S), d > T && (d = T), L());
c.data(q[0], "x", d);
$();
b = Math.round(d);
q[0].style.left = b + "px"
},
$ = function() {
var b = {
input: e,
slider: n,
min: a.min,
max: a.max,
fromNumber: 0,
toNumber: 0,
fromPers: 0,
toPers: 0,
fromX: 0,
fromX_pure: 0,
toX: 0,
toX_pure: 0
},
d = a.max - a.min,
h;
"single" === a.type ? (b.fromX = c.data(x[0], "x") || parseInt(x[0].style.left, 10) || x.position().left, b.fromPers = b.fromX / F * 100, h = d / 100 * b.fromPers + a.min, b.fromNumber = Math.round(h / a.step) * a.step, b.fromNumber < a.min && (b.fromNumber = a.min), b.fromNumber > a.max && (b.fromNumber = a.max), u && (b.fromNumber = parseInt(b.fromNumber * u, 10) / u), I && (b.fromValue = a.values[b.fromNumber])) : "double" === a.type && (b.fromX = c.data(m[0], "x") || parseInt(m[0].style.left, 10) || m.position().left, b.fromPers = b.fromX / F * 100, h = d / 100 * b.fromPers + a.min, b.fromNumber = Math.round(h / a.step) * a.step, b.fromNumber < a.min && (b.fromNumber = a.min), b.toX = c.data(s[0], "x") || parseInt(s[0].style.left, 10) || s.position().left, b.toPers = b.toX / F * 100, d = d / 100 * b.toPers + a.min, b.toNumber = Math.round(d / a.step) * a.step, b.toNumber > a.max && (b.toNumber = a.max), u && (b.fromNumber = parseInt(b.fromNumber * u, 10) / u, b.toNumber = parseInt(b.toNumber * u, 10) / u), I && (b.fromValue = a.values[b.fromNumber], b.toValue = a.values[b.toNumber]));
f = b;
da()
},
ha = function() {
var b = {
input: e,
slider: n,
min: a.min,
max: a.max,
fromNumber: a.from,
toNumber: a.to,
fromPers: 0,
toPers: 0,
fromX: 0,
fromX_pure: 0,
toX: 0,
toX_pure: 0
},
d = a.max - a.min;
"single" === a.type ? (b.fromPers = 0 !== d ? (b.fromNumber - a.min) / d * 100 : 0, b.fromX_pure = F / 100 * b.fromPers, b.fromX = Math.round(b.fromX_pure), x[0].style.left = b.fromX + "px", c.data(x[0], "x", b.fromX_pure)) : "double" === a.type && (b.fromPers = 0 !== d ? (b.fromNumber - a.min) / d * 100 : 0, b.fromX_pure = F / 100 * b.fromPers, b.fromX = Math.round(b.fromX_pure), m[0].style.left = b.fromX + "px", c.data(m[0], "x", b.fromX_pure), b.toPers = 0 !== d ? (b.toNumber - a.min) / d * 100 : 1, b.toX_pure = F / 100 * b.toPers, b.toX = Math.round(b.toX_pure), s[0].style.left = b.toX + "px", c.data(s[0], "x", b.toX_pure), L());
f = b;
da()
},
da = function() {
var b, d, h, c, g, k;
k = G / 2;
h = "";
"single" === a.type ? (h = f.fromNumber === a.max ? a.maxPostfix: "", A[0].style.display = "none", B[0].style.display = "none", h = I ? a.prefix + a.values[f.fromNumber] + h + a.postfix: a.prefix + z(f.fromNumber) + h + a.postfix, w.html(h), g = w.outerWidth(!1), k = f.fromX - g / 2 + k, 0 > k && (k = 0), k > t - g && (k = t - g), w[0].style.left = k + "px", a.hideMinMax || a.hideFromTo || (D[0].style.display = k < Q ? "none": "block", E[0].style.display = k + g > t - R ? "none": "block"), e.prop("value", parseFloat(f.fromNumber))) : "double" === a.type && (h = f.toNumber === a.max ? a.maxPostfix: "", I ? (b = a.prefix + a.values[f.fromNumber] + a.postfix, d = a.prefix + a.values[f.toNumber] + h + a.postfix, h = f.fromNumber !== f.toNumber ? a.prefix + a.values[f.fromNumber] + " \u2014 " + a.prefix + a.values[f.toNumber] + h + a.postfix: a.prefix + a.values[f.fromNumber] + h + a.postfix) : (b = a.prefix + z(f.fromNumber) + a.postfix, d = a.prefix + z(f.toNumber) + h + a.postfix, h = f.fromNumber !== f.toNumber ? a.prefix + z(f.fromNumber) + " \u2014 " + a.prefix + z(f.toNumber) + h + a.postfix: a.prefix + z(f.fromNumber) + h + a.postfix), A.html(b), B.html(d), w.html(h), b = A.outerWidth(!1), d = f.fromX - b / 2 + k, 0 > d && (d = 0), d > t - b && (d = t - b), A[0].style.left = d + "px", h = B.outerWidth(!1), c = f.toX - h / 2 + k, 0 > c && (c = 0), c > t - h && (c = t - h), B[0].style.left = c + "px", g = w.outerWidth(!1), k = f.fromX + (f.toX - f.fromX) / 2 - g / 2 + k, 0 > k && (k = 0), k > t - g && (k = t - g), w[0].style.left = k + "px", d + b < c ? (w[0].style.display = "none", A[0].style.display = "block", B[0].style.display = "block") : (w[0].style.display = "block", A[0].style.display = "none", B[0].style.display = "none"), a.hideMinMax || a.hideFromTo || (D[0].style.display = k < Q || d < Q ? "none": "block", E[0].style.display = k + g > t - R || c + h > t - R ? "none": "block"), e.prop("value", parseFloat(f.fromNumber) + ";" + parseFloat(f.toNumber)));
a.from = f.fromNumber;
a.to = f.toNumber;
ja()
},
ja = function() {
"function" !== typeof a.onFinish || y || J || a.onFinish.call(this, f);
"function" !== typeof a.onChange || J || a.onChange.call(this, f);
"function" === typeof a.onLoad && !y && J && (a.onLoad.call(this, f), J = !1)
},
ia = function() {
n.addClass("irs-with-grid");
var b, d = "",
c = 0,
c = 0,
e = "",
f = t - 2 * a.gridMargin;
for (b = 0; 20 >= b; b += 1) c = Math.floor(f / 20 * b),
c >= f && (c = f - 1),
e += '<span class="irs-grid-pol small" style="left: ' + c + 'px;"></span>';
for (b = 0; 4 >= b; b += 1) c = Math.floor(f / 4 * b),
c >= f && (c = f - 1),
e += '<span class="irs-grid-pol" style="left: ' + c + 'px;"></span>',
u ? (d = a.min + (a.max - a.min) / 4 * b, d = d / a.step * a.step, d = parseInt(d * u, 10) / u) : (d = Math.round(a.min + (a.max - a.min) / 4 * b), d = Math.round(d / a.step) * a.step, d = z(d)),
I && (a.hideMinMax ? (d = Math.round(a.min + (a.max - a.min) / 4 * b), d = Math.round(d / a.step) * a.step, d = 0 === b || 4 === b ? a.values[d] : "") : d = ""),
0 === b ? e += '<span class="irs-grid-text" style="left: ' + c + 'px; text-align: left;">' + d + "</span>": 4 === b ? (c -= 100, e += '<span class="irs-grid-text" style="left: ' + c + 'px; text-align: right;">' + d + "</span>") : (c -= 50, e += '<span class="irs-grid-text" style="left: ' + c + 'px;">' + d + "</span>");
Y.html(e);
Y[0].style.left = a.gridMargin + "px"
};
M()
}
})
},
update: function(c) {
return this.each(function() {
this.updateData(c)
})
},
remove: function() {
return this.each(function() {
this.removeSlider()
})
}
};
//www.jq22.com
c.fn.ionRangeSlider = function(r) {
if (H[r]) return H[r].apply(this, Array.prototype.slice.call(arguments, 1));
if ("object" !== typeof r && r) c.error("Method " + r + " does not exist for jQuery.ionRangeSlider");
else return H.init.apply(this, arguments)
}
})(jQuery, document, window, navigator);
jQuery控件
猜你喜欢
转载自blog.csdn.net/wangmeng0804/article/details/94740773
今日推荐
周排行