You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2 lines
4.4 KiB
2 lines
4.4 KiB
/** layui-v2.1.5 MIT License By http://www.layui.com */
|
|
; layui.define("jquery", function (e) { "use strict"; var i = layui.$, n = (layui.hint(), layui.device(), { config: {}, set: function (e) { var n = this; return n.config = i.extend({}, n.config, e), n }, on: function (e, i) { return layui.onevent.call(this, t, e, i) } }), t = "carousel", a = "layui-this", l = ">*[carousel-item]>*", o = "layui-carousel-left", r = "layui-carousel-right", d = "layui-carousel-prev", s = "layui-carousel-next", u = "layui-carousel-arrow", c = "layui-carousel-ind", m = function (e) { var t = this; t.config = i.extend({}, t.config, n.config, e), t.render() }; m.prototype.config = { width: "600px", height: "280px", full: !1, arrow: "hover", indicator: "inside", autoplay: !0, interval: 3e3, anim: "", trigger: "click", index: 0 }, m.prototype.render = function () { var e = this, n = e.config; n.elem = i(n.elem), n.elem[0] && (e.elemItem = n.elem.find(l), n.index < 0 && (n.index = 0), n.index >= e.elemItem.length && (n.index = e.elemItem.length - 1), n.interval < 800 && (n.interval = 800), n.full ? n.elem.css({ position: "fixed", width: "100%", height: "100%", zIndex: 9999 }) : n.elem.css({ width: n.width, height: n.height }), n.elem.attr("lay-anim", n.anim), e.elemItem.eq(n.index).addClass(a), e.indicator(), e.elemItem.length <= 1 || (e.arrow(), e.autoplay(), e.events())) }, m.prototype.reload = function (e) { var n = this; clearInterval(n.timer), n.config = i.extend({}, n.config, e), n.render() }, m.prototype.prevIndex = function () { var e = this, i = e.config, n = i.index - 1; return n < 0 && (n = e.elemItem.length - 1), n }, m.prototype.nextIndex = function () { var e = this, i = e.config, n = i.index + 1; return n >= e.elemItem.length && (n = 0), n }, m.prototype.addIndex = function (e) { var i = this, n = i.config; e = e || 1, n.index = n.index + e, n.index >= i.elemItem.length && (n.index = 0) }, m.prototype.subIndex = function (e) { var i = this, n = i.config; e = e || 1, n.index = n.index - e, n.index < 0 && (n.index = i.elemItem.length - 1) }, m.prototype.autoplay = function () { var e = this, i = e.config; i.autoplay && (e.timer = setInterval(function () { e.slide() }, i.interval)) }, m.prototype.arrow = function () { var e = this, n = e.config, t = i(['<button class="layui-icon ' + u + '" lay-type="sub">' + ("updown" === n.anim ? "" : "") + "</button>", '<button class="layui-icon ' + u + '" lay-type="add">' + ("updown" === n.anim ? "" : "") + "</button>"].join("")); n.elem.attr("lay-arrow", n.arrow), n.elem.find("." + u)[0] && n.elem.find("." + u).remove(), n.elem.append(t), t.on("click", function () { var n = i(this), t = n.attr("lay-type"); e.slide(t) }) }, m.prototype.indicator = function () { var e = this, n = e.config, t = e.elemInd = i(['<div class="' + c + '"><ul>', function () { var i = []; return layui.each(e.elemItem, function (e) { i.push("<li" + (n.index === e ? ' class="layui-this"' : "") + "></li>") }), i.join("") }(), "</ul></div>"].join("")); n.elem.attr("lay-indicator", n.indicator), n.elem.find("." + c)[0] && n.elem.find("." + c).remove(), n.elem.append(t), "updown" === n.anim && t.css("margin-top", -(t.height() / 2)), t.find("li").on("hover" === n.trigger ? "mouseover" : n.trigger, function () { var t = i(this), a = t.index(); a > n.index ? e.slide("add", a - n.index) : a < n.index && e.slide("sub", n.index - a) }) }, m.prototype.slide = function (e, i) { var n = this, l = n.elemItem, u = n.config, c = u.index, m = u.elem.attr("lay-filter"); n.haveSlide || ("sub" === e ? (n.subIndex(i), l.eq(u.index).addClass(d), setTimeout(function () { l.eq(c).addClass(r), l.eq(u.index).addClass(r) }, 50)) : (n.addIndex(i), l.eq(u.index).addClass(s), setTimeout(function () { l.eq(c).addClass(o), l.eq(u.index).addClass(o) }, 50)), setTimeout(function () { l.removeClass(a + " " + d + " " + s + " " + o + " " + r), l.eq(u.index).addClass(a), n.haveSlide = !1 }, 300), n.elemInd.find("li").eq(u.index).addClass(a).siblings().removeClass(a), n.haveSlide = !0, layui.event.call(this, t, "change(" + m + ")", { index: u.index, prevIndex: c, item: l.eq(u.index) })) }, m.prototype.events = function () { var e = this, i = e.config; i.elem.data("haveEvents") || (i.elem.on("mouseenter", function () { clearInterval(e.timer) }).on("mouseleave", function () { e.autoplay() }), i.elem.data("haveEvents", !0)) }, n.render = function (e) { var i = new m(e); return i }, e(t, n) });
|