/*
* jQuery Nivo Slider v2.3
* http://nivo.dev7studios.com
*
* Copyright 2010, Gilbert Pellegrom
* Free to use and abuse under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function (b) {
var a = function (j, q) {
var g = b.extend({}, b.fn.nivoSlider.defaults, q);
var m = { currentSlide: 0, currentImage: "", totalSlides: 0, randAnim: "", running: false, paused: false, stop: false };
var d = b(j);
d.data("nivo:vars", m);
d.css("position", "relative");
d.addClass("nivoSlider");
var e = d.children();
e.each(function () {
var t = b(this);
var s = "";
if (!t.is("img")) {
if (t.is("a")) {
t.addClass("nivo-imageLink");
s = t
}
t = t.find("img:first")
}
var r = t.width();
if (r == 0) {
r = t.attr("width")
}
var i = t.height();
if (i == 0) {
i = t.attr("height")
}
if (r > d.width()) {
d.width(r)
}
if (i > d.height()) {
d.height(i)
}
if (s != "") {
s.css("display", "none")
}
t.css("display", "none");
m.totalSlides++
});
if (g.startSlide > 0) {
if (g.startSlide >= m.totalSlides) {
g.startSlide = m.totalSlides - 1
}
m.currentSlide = g.startSlide
}
if (b(e[m.currentSlide]).is("img")) {
m.currentImage = b(e[m.currentSlide])
}
else {
m.currentImage = b(e[m.currentSlide]).find("img:first")
}
if (b(e[m.currentSlide]).is("a")) {
b(e[m.currentSlide]).css("display", "block")
}
d.css("background", "url(" + m.currentImage.attr("src") + ") no-repeat");
for (var k = 0; k < g.slices; k++) {
var o = Math.round(d.width() / g.slices);
if (k == g.slices - 1) {
d.append(b('<div class="nivo-slice"></div>').css({ left: (o * k) + "px", width: (d.width() - (o * k)) + "px" }))
}
else {
d.append(b('<div class="nivo-slice"></div>').css({ left: (o * k) + "px", width: o + "px" }))
}
}
d.append(b('<div class="nivo-caption"><p></p></div>').css({ display: "none", opacity: g.captionOpacity }));
if (m.currentImage.attr("title") != "") {
var n = m.currentImage.attr("title");
if (n.substr(0, 1) == "#") {
n = b(n).html()
}
b(".nivo-caption p", d).html(n);
b(".nivo-caption", d).fadeIn(g.animSpeed)
}
var c = 0;
if (!g.manualAdvance && e.length > 1) {
c = setInterval(function () { p(d, e, g, false) }, g.pauseTime)
}
if (g.directionNav) {
d.append('<div class="nivo-directionNav"><a class="nivo-prevNav">Prev</a><a class="nivo-nextNav">Next</a></div>');
if (g.directionNavHide) {
b(".nivo-directionNav", d).hide();
d.hover(function () { b(".nivo-directionNav", d).show() }, function () { b(".nivo-directionNav", d).hide() })
}
b("a.nivo-prevNav", d).live("click", function () {
if (m.running) {
return false
}
clearInterval(c);
c = "";
m.currentSlide -= 2;
p(d, e, g, "prev")
});
b("a.nivo-nextNav", d).live("click", function () {
if (m.running) {
return false
}
clearInterval(c);
c = "";
p(d, e, g, "next")
})
}
if (g.controlNav) {
var l = b('<div class="nivo-controlNav"></div>');
d.append(l);
for (var k = 0; k < e.length; k++) {
if (g.controlNavThumbs) {
var f = e.eq(k);
if (!f.is("img")) {
f = f.find("img:first")
}
if (g.controlNavThumbsFromRel) {
l.append('<a class="nivo-control" rel="' + k + '"><img src="' + f.attr("rel") + '" alt="" /></a>')
}
else {
l.append('<a class="nivo-control" rel="' + k + '"><img src="' + f.attr("src").replace(g.controlNavThumbsSearch, g.controlNavThumbsReplace) + '" alt="" /></a>')
}
}
else {
l.append('<a class="nivo-control" rel="' + k + '">' + (k + 1) + "</a>")
}
}
b(".nivo-controlNav a:eq(" + m.currentSlide + ")", d).addClass("active");
b(".nivo-controlNav a", d).live("click", function () {
if (m.running) {
return false
}
if (b(this).hasClass("active")) {
return false
}
clearInterval(c);
c = "";
d.css("background", "url(" + m.currentImage.attr("src") + ") no-repeat");
m.currentSlide = b(this).attr("rel") - 1;
p(d, e, g, "control")
})
}
if (g.keyboardNav) {
b(window).keypress(function (i) {
if (i.keyCode == "37") {
if (m.running) {
return false
}
clearInterval(c);
c = "";
m.currentSlide -= 2;
p(d, e, g, "prev")
}
if (i.keyCode == "39") {
if (m.running) {
return false
}
clearInterval(c);
c = "";
p(d, e, g, "next")
}
})
}
if (g.pauseOnHover) {
d.hover(function () {
m.paused = true;
clearInterval(c);
c = ""
},
function () {
m.paused = false;
if (c == "" && !g.manualAdvance) {
c = setInterval(function () {
p(d, e, g, false)
}, g.pauseTime)
}
})
}
d.bind("nivo:animFinished", function () {
m.running = false;
b(e).each(function () {
if (b(this).is("a")) {
b(this).css("display", "none")
}
});
if (b(e[m.currentSlide]).is("a")) {
b(e[m.currentSlide]).css("display", "block")
}
if (c == "" && !m.paused && !g.manualAdvance) {
c = setInterval(function () {
p(d, e, g, false)
}, g.pauseTime)
}
g.afterChange.call(this)
});
var p = function (r, s, u, x) {
var y = r.data("nivo:vars");
if (y && (y.currentSlide == y.totalSlides - 1)) {
u.lastSlide.call(this)
}
if ((!y || y.stop) && !x) {
return false
}
u.beforeChange.call(this);
if (!x) {
r.css("background", "url(" + y.currentImage.attr("src") + ") no-repeat")
} else {
if (x == "prev") {
r.css("background", "url(" + y.currentImage.attr("src") + ") no-repeat")
}
if (x == "next") {
r.css("background", "url(" + y.currentImage.attr("src") + ") no-repeat")
}
}
y.currentSlide++;
if (y.currentSlide == y.totalSlides) {
y.currentSlide = 0;
u.slideshowEnd.call(this)
}
if (y.currentSlide < 0) {
y.currentSlide = (y.totalSlides - 1)
}
if (b(s[y.currentSlide]).is("img")) {
y.currentImage = b(s[y.currentSlide])
}
else {
y.currentImage = b(s[y.currentSlide]).find("img:first")
}
if (u.controlNav) {
b(".nivo-controlNav a", r).removeClass("active");
b(".nivo-controlNav a:eq(" + y.currentSlide + ")", r).addClass("active")
}
if (y.currentImage.attr("title") != "") {
var z = y.currentImage.attr("title");
if (z.substr(0, 1) == "#") {
z = b(z).html()
}
if (b(".nivo-caption", r).css("display") == "block") {
b(".nivo-caption p", r).fadeOut(u.animSpeed, function () {
b(this).html(z);
b(this).fadeIn(u.animSpeed)
})
}
else {
b(".nivo-caption p", r).html(z)
}
b(".nivo-caption", r).fadeIn(u.animSpeed)
}
else {
b(".nivo-caption", r).fadeOut(u.animSpeed)
}
var w = 0;
b(".nivo-slice", r).each(function () {
var i = Math.round(r.width() / u.slices);
b(this).css({ height: "0px", opacity: "0", background: "url(" + y.currentImage.attr("src") + ") no-repeat -" + ((i + (w * i)) - i) + "px 0%" });
w++
});
if (u.effect == "random") {
var A = new Array("sliceDownRight", "sliceDownLeft", "sliceUpRight", "sliceUpLeft", "sliceUpDown", "sliceUpDownLeft", "fold", "fade");
y.randAnim = A[Math.floor(Math.random() * (A.length + 1))];
if (y.randAnim == undefined) {
y.randAnim = "fade"
}
}
if (u.effect.indexOf(",") != -1) {
var A = u.effect.split(",");
y.randAnim = b.trim(A[Math.floor(Math.random() * A.length)])
}
y.running = true;
if (u.effect == "sliceDown" || u.effect == "sliceDownRight" || y.randAnim == "sliceDownRight" || u.effect == "sliceDownLeft" || y.randAnim == "sliceDownLeft") {
var t = 0;
var w = 0;
var C = b(".nivo-slice", r);
if (u.effect == "sliceDownLeft" || y.randAnim == "sliceDownLeft") {
C = b(".nivo-slice", r)._reverse()
}
C.each(function () {
var i = b(this);
i.css("top", "0px");
if (w == u.slices - 1) {
setTimeout(function () {
i.animate({ height: "100%", opacity: "1.0" }, u.animSpeed, "", function () { r.trigger("nivo:animFinished") })
}, (100 + t))
}
else {
setTimeout(function () { i.animate({ height: "100%", opacity: "1.0" }, u.animSpeed) }, (100 + t))
}
t += 50;
w++
})
}
else {
if (u.effect == "sliceUp" || u.effect == "sliceUpRight" || y.randAnim == "sliceUpRight" || u.effect == "sliceUpLeft" || y.randAnim == "sliceUpLeft") {
var t = 0;
var w = 0;
var C = b(".nivo-slice", r);
if (u.effect == "sliceUpLeft" || y.randAnim == "sliceUpLeft") {
C = b(".nivo-slice", r)._reverse()
}
C.each(function () {
var i = b(this);
i.css("bottom", "0px");
if (w == u.slices - 1) {
setTimeout(function () { i.animate({ height: "100%", opacity: "1.0" }, u.animSpeed, "", function () { r.trigger("nivo:animFinished") }) }, (100 + t))
}
else {
setTimeout(function () { i.animate({ height: "100%", opacity: "1.0" }, u.animSpeed) }, (100 + t))
}
t += 50;
w++
})
}
else {
if (u.effect == "sliceUpDown" || u.effect == "sliceUpDownRight" || y.randAnim == "sliceUpDown" || u.effect == "sliceUpDownLeft" || y.randAnim == "sliceUpDownLeft") {
var t = 0;
var w = 0;
var B = 0;
var C = b(".nivo-slice", r);
if (u.effect == "sliceUpDownLeft" || y.randAnim == "sliceUpDownLeft") {
C = b(".nivo-slice", r)._reverse()
}
C.each(function () {
var i = b(this);
if (w == 0) {
i.css("top", "0px");
w++
}
else {
i.css("bottom", "0px");
w = 0
}
if (B == u.slices - 1) {
setTimeout(function () {
i.animate({ height: "100%", opacity: "1.0" }, u.animSpeed, "", function () { r.trigger("nivo:animFinished") })
}, (100 + t))
}
else {
setTimeout(function () {
i.animate({ height: "100%", opacity: "1.0" },
u.animSpeed)
},
(100 + t))
}
t += 50;
B++
})
}
else {
if (u.effect == "fold" || y.randAnim == "fold") {
var t = 0;
var w = 0;
b(".nivo-slice", r).each(function () {
var i = b(this); var v = i.width(); i.css({ top: "0px", height: "100%", width: "0px" });
if (w == u.slices - 1) {
setTimeout(function () { i.animate({ width: v, opacity: "1.0" }, u.animSpeed, "", function () { r.trigger("nivo:animFinished") }) }, (100 + t))
}
else {
setTimeout(function () { i.animate({ width: v, opacity: "1.0" }, u.animSpeed) }, (100 + t))
} t += 50; w++
})
}
else {
if (u.effect == "fade" || y.randAnim == "fade") {
var w = 0; b(".nivo-slice", r).each(function () {
b(this).css("height", "100%");
if (w == u.slices - 1) {
b(this).animate({ opacity: "1.0" }, (u.animSpeed * 2), "", function () { r.trigger("nivo:animFinished") })
}
else {
b(this).animate({ opacity: "1.0" }, (u.animSpeed * 2))
}
w++
})
}
}
}
}
}
};
var h = function (i) {
if (this.console && typeof console.log != "undefined") {
console.log(i)
}
};
this.stop = function () {
if (!b(j).data("nivo:vars").stop) {
b(j).data("nivo:vars").stop = true;
h("Stop Slider")
}
};
this.start = function () {
if (b(j).data("nivo:vars").stop) {
b(j).data("nivo:vars").stop = false;
h("Start Slider")
}
};
g.afterLoad.call(this)
};
b.fn.nivoSlider = function (c) {
return this.each(function () {
var d = b(this);
if (d.data("nivoslider")) {
return
} var e = new a(this, c);
d.data("nivoslider", e)
})
};
b.fn.nivoSlider.defaults = {
effect: "random",
slices: 15,
animSpeed: 500,
pauseTime: 3000,
startSlide: 0,
directionNav: true,
directionNavHide: true,
controlNav: true,
controlNavThumbs: false,
controlNavThumbsFromRel: false,
controlNavThumbsSearch: ".jpg",
controlNavThumbsReplace: "_thumb.jpg",
keyboardNav: true,
pauseOnHover: true,
manualAdvance: false,
captionOpacity: 0.8,
beforeChange: function () { },
afterChange: function () { },
slideshowEnd: function () { },
lastSlide: function () { },
afterLoad: function () { }
};
b.fn._reverse = [].reverse
})(jQuery);
动画效果
最新推荐文章于 2023-06-22 21:22:32 发布