first commit
This commit is contained in:
33
plugins/responsive-slides/responsiveslides.css
Normal file
33
plugins/responsive-slides/responsiveslides.css
Normal file
@@ -0,0 +1,33 @@
|
||||
/*! http://responsiveslides.com v1.55 by @viljamis */
|
||||
|
||||
.rslides {
|
||||
position: relative;
|
||||
list-style: none;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.rslides li {
|
||||
-webkit-backface-visibility: hidden;
|
||||
position: absolute;
|
||||
display: none;
|
||||
width: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.rslides li:first-child {
|
||||
position: relative;
|
||||
display: block;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.rslides img {
|
||||
display: block;
|
||||
height: auto;
|
||||
float: left;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
}
|
||||
391
plugins/responsive-slides/responsiveslides.js
Normal file
391
plugins/responsive-slides/responsiveslides.js
Normal file
@@ -0,0 +1,391 @@
|
||||
/*! ResponsiveSlides.js v1.55
|
||||
* http://responsiveslides.com
|
||||
* http://viljamis.com
|
||||
*
|
||||
* Copyright (c) 2011-2012 @viljamis
|
||||
* Available under the MIT license
|
||||
*/
|
||||
|
||||
/*jslint browser: true, sloppy: true, vars: true, plusplus: true, indent: 2 */
|
||||
|
||||
(function ($, window, i) {
|
||||
$.fn.responsiveSlides = function (options) {
|
||||
|
||||
// Default settings
|
||||
var settings = $.extend({
|
||||
"auto": true, // Boolean: Animate automatically, true or false
|
||||
"speed": 500, // Integer: Speed of the transition, in milliseconds
|
||||
"timeout": 4000, // Integer: Time between slide transitions, in milliseconds
|
||||
"pager": false, // Boolean: Show pager, true or false
|
||||
"nav": false, // Boolean: Show navigation, true or false
|
||||
"random": false, // Boolean: Randomize the order of the slides, true or false
|
||||
"pause": false, // Boolean: Pause on hover, true or false
|
||||
"pauseControls": true, // Boolean: Pause when hovering controls, true or false
|
||||
"prevText": "Previous", // String: Text for the "previous" button
|
||||
"nextText": "Next", // String: Text for the "next" button
|
||||
"maxwidth": "", // Integer: Max-width of the slideshow, in pixels
|
||||
"navContainer": "", // Selector: Where auto generated controls should be appended to, default is after the <ul>
|
||||
"manualControls": "", // Selector: Declare custom pager navigation
|
||||
"namespace": "rslides", // String: change the default namespace used
|
||||
"before": $.noop, // Function: Before callback
|
||||
"after": $.noop // Function: After callback
|
||||
}, options);
|
||||
|
||||
return this.each(function () {
|
||||
|
||||
// Index for namespacing
|
||||
i++;
|
||||
|
||||
var $this = $(this),
|
||||
|
||||
// Local variables
|
||||
vendor,
|
||||
selectTab,
|
||||
startCycle,
|
||||
restartCycle,
|
||||
rotate,
|
||||
$tabs,
|
||||
|
||||
// Helpers
|
||||
index = 0,
|
||||
$slide = $this.children(),
|
||||
length = $slide.length,
|
||||
fadeTime = parseFloat(settings.speed),
|
||||
waitTime = parseFloat(settings.timeout),
|
||||
maxw = parseFloat(settings.maxwidth),
|
||||
|
||||
// Namespacing
|
||||
namespace = settings.namespace,
|
||||
namespaceIdx = namespace + i,
|
||||
|
||||
// Classes
|
||||
navClass = namespace + "_nav " + namespaceIdx + "_nav",
|
||||
activeClass = namespace + "_here",
|
||||
visibleClass = namespaceIdx + "_on",
|
||||
slideClassPrefix = namespaceIdx + "_s",
|
||||
|
||||
// Pager
|
||||
$pager = $("<ul class='" + namespace + "_tabs " + namespaceIdx + "_tabs' />"),
|
||||
|
||||
// Styles for visible and hidden slides
|
||||
visible = {"float": "left", "position": "relative", "opacity": 1, "zIndex": 2},
|
||||
hidden = {"float": "none", "position": "absolute", "opacity": 0, "zIndex": 1},
|
||||
|
||||
// Detect transition support
|
||||
supportsTransitions = (function () {
|
||||
var docBody = document.body || document.documentElement;
|
||||
var styles = docBody.style;
|
||||
var prop = "transition";
|
||||
if (typeof styles[prop] === "string") {
|
||||
return true;
|
||||
}
|
||||
// Tests for vendor specific prop
|
||||
vendor = ["Moz", "Webkit", "Khtml", "O", "ms"];
|
||||
prop = prop.charAt(0).toUpperCase() + prop.substr(1);
|
||||
var i;
|
||||
for (i = 0; i < vendor.length; i++) {
|
||||
if (typeof styles[vendor[i] + prop] === "string") {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
})(),
|
||||
|
||||
// Fading animation
|
||||
slideTo = function (idx) {
|
||||
settings.before(idx);
|
||||
// If CSS3 transitions are supported
|
||||
if (supportsTransitions) {
|
||||
$slide
|
||||
.removeClass(visibleClass)
|
||||
.css(hidden)
|
||||
.eq(idx)
|
||||
.addClass(visibleClass)
|
||||
.css(visible);
|
||||
index = idx;
|
||||
setTimeout(function () {
|
||||
settings.after(idx);
|
||||
}, fadeTime);
|
||||
// If not, use jQuery fallback
|
||||
} else {
|
||||
$slide
|
||||
.stop()
|
||||
.fadeOut(fadeTime, function () {
|
||||
$(this)
|
||||
.removeClass(visibleClass)
|
||||
.css(hidden)
|
||||
.css("opacity", 1);
|
||||
})
|
||||
.eq(idx)
|
||||
.fadeIn(fadeTime, function () {
|
||||
$(this)
|
||||
.addClass(visibleClass)
|
||||
.css(visible);
|
||||
settings.after(idx);
|
||||
index = idx;
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// Random order
|
||||
if (settings.random) {
|
||||
$slide.sort(function () {
|
||||
return (Math.round(Math.random()) - 0.5);
|
||||
});
|
||||
$this
|
||||
.empty()
|
||||
.append($slide);
|
||||
}
|
||||
|
||||
// Add ID's to each slide
|
||||
$slide.each(function (i) {
|
||||
this.id = slideClassPrefix + i;
|
||||
});
|
||||
|
||||
// Add max-width and classes
|
||||
$this.addClass(namespace + " " + namespaceIdx);
|
||||
if (options && options.maxwidth) {
|
||||
$this.css("max-width", maxw);
|
||||
}
|
||||
|
||||
// Hide all slides, then show first one
|
||||
$slide
|
||||
.hide()
|
||||
.css(hidden)
|
||||
.eq(0)
|
||||
.addClass(visibleClass)
|
||||
.css(visible)
|
||||
.show();
|
||||
|
||||
// CSS transitions
|
||||
if (supportsTransitions) {
|
||||
$slide
|
||||
.show()
|
||||
.css({
|
||||
// -ms prefix isn't needed as IE10 uses prefix free version
|
||||
"-webkit-transition": "opacity " + fadeTime + "ms ease-in-out",
|
||||
"-moz-transition": "opacity " + fadeTime + "ms ease-in-out",
|
||||
"-o-transition": "opacity " + fadeTime + "ms ease-in-out",
|
||||
"transition": "opacity " + fadeTime + "ms ease-in-out"
|
||||
});
|
||||
}
|
||||
|
||||
// Only run if there's more than one slide
|
||||
if ($slide.length > 1) {
|
||||
|
||||
// Make sure the timeout is at least 100ms longer than the fade
|
||||
if (waitTime < fadeTime + 100) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Pager
|
||||
if (settings.pager && !settings.manualControls) {
|
||||
var tabMarkup = [];
|
||||
$slide.each(function (i) {
|
||||
var n = i + 1;
|
||||
tabMarkup +=
|
||||
"<li>" +
|
||||
"<a href='#' class='" + slideClassPrefix + n + "'></a>" +
|
||||
"</li>";
|
||||
});
|
||||
$pager.append(tabMarkup);
|
||||
|
||||
// Inject pager
|
||||
if (options.navContainer) {
|
||||
$(settings.navContainer).append($pager);
|
||||
} else {
|
||||
$this.after($pager);
|
||||
}
|
||||
}
|
||||
|
||||
// Manual pager controls
|
||||
if (settings.manualControls) {
|
||||
$pager = $(settings.manualControls);
|
||||
$pager.addClass(namespace + "_tabs " + namespaceIdx + "_tabs");
|
||||
}
|
||||
|
||||
// Add pager slide class prefixes
|
||||
if (settings.pager || settings.manualControls) {
|
||||
$pager.find('li').each(function (i) {
|
||||
$(this).addClass(slideClassPrefix + (i + 1));
|
||||
});
|
||||
}
|
||||
|
||||
// If we have a pager, we need to set up the selectTab function
|
||||
if (settings.pager || settings.manualControls) {
|
||||
$tabs = $pager.find('a');
|
||||
|
||||
// Select pager item
|
||||
selectTab = function (idx) {
|
||||
$tabs
|
||||
.closest("li")
|
||||
.removeClass(activeClass)
|
||||
.eq(idx)
|
||||
.addClass(activeClass);
|
||||
};
|
||||
}
|
||||
|
||||
// Auto cycle
|
||||
if (settings.auto) {
|
||||
|
||||
startCycle = function () {
|
||||
rotate = setInterval(function () {
|
||||
|
||||
// Clear the event queue
|
||||
$slide.stop(true, true);
|
||||
|
||||
var idx = index + 1 < length ? index + 1 : 0;
|
||||
|
||||
// Remove active state and set new if pager is set
|
||||
if (settings.pager || settings.manualControls) {
|
||||
selectTab(idx);
|
||||
}
|
||||
|
||||
slideTo(idx);
|
||||
}, waitTime);
|
||||
};
|
||||
|
||||
// Init cycle
|
||||
startCycle();
|
||||
}
|
||||
|
||||
// Restarting cycle
|
||||
restartCycle = function () {
|
||||
if (settings.auto) {
|
||||
// Stop
|
||||
clearInterval(rotate);
|
||||
// Restart
|
||||
startCycle();
|
||||
}
|
||||
};
|
||||
|
||||
// Pause on hover
|
||||
if (settings.pause) {
|
||||
$this.hover(function () {
|
||||
clearInterval(rotate);
|
||||
}, function () {
|
||||
restartCycle();
|
||||
});
|
||||
}
|
||||
|
||||
// Pager click event handler
|
||||
if (settings.pager || settings.manualControls) {
|
||||
$tabs.bind("click", function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
if (!settings.pauseControls) {
|
||||
restartCycle();
|
||||
}
|
||||
|
||||
// Get index of clicked tab
|
||||
var idx = $tabs.index(this);
|
||||
|
||||
// Break if element is already active or currently animated
|
||||
if (index === idx || $("." + visibleClass).queue('fx').length) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Remove active state from old tab and set new one
|
||||
selectTab(idx);
|
||||
|
||||
// Do the animation
|
||||
slideTo(idx);
|
||||
})
|
||||
.eq(0)
|
||||
.closest("li")
|
||||
.addClass(activeClass);
|
||||
|
||||
// Pause when hovering pager
|
||||
if (settings.pauseControls) {
|
||||
$tabs.hover(function () {
|
||||
clearInterval(rotate);
|
||||
}, function () {
|
||||
restartCycle();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Navigation
|
||||
if (settings.nav) {
|
||||
var navMarkup =
|
||||
"<a href='#' class='" + navClass + " prev'>" + settings.prevText + "</a>" +
|
||||
"<a href='#' class='" + navClass + " next'>" + settings.nextText + "</a>";
|
||||
|
||||
// Inject navigation
|
||||
if (options.navContainer) {
|
||||
$(settings.navContainer).append(navMarkup);
|
||||
} else {
|
||||
$this.after(navMarkup);
|
||||
}
|
||||
|
||||
var $trigger = $("." + namespaceIdx + "_nav"),
|
||||
$prev = $trigger.filter(".prev");
|
||||
|
||||
// Click event handler
|
||||
$trigger.bind("click", function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
var $visibleClass = $("." + visibleClass);
|
||||
|
||||
// Prevent clicking if currently animated
|
||||
if ($visibleClass.queue('fx').length) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Adds active class during slide animation
|
||||
// $(this)
|
||||
// .addClass(namespace + "_active")
|
||||
// .delay(fadeTime)
|
||||
// .queue(function (next) {
|
||||
// $(this).removeClass(namespace + "_active");
|
||||
// next();
|
||||
// });
|
||||
|
||||
// Determine where to slide
|
||||
var idx = $slide.index($visibleClass),
|
||||
prevIdx = idx - 1,
|
||||
nextIdx = idx + 1 < length ? index + 1 : 0;
|
||||
|
||||
// Go to slide
|
||||
slideTo($(this)[0] === $prev[0] ? prevIdx : nextIdx);
|
||||
if (settings.pager || settings.manualControls) {
|
||||
selectTab($(this)[0] === $prev[0] ? prevIdx : nextIdx);
|
||||
}
|
||||
|
||||
if (!settings.pauseControls) {
|
||||
restartCycle();
|
||||
}
|
||||
});
|
||||
|
||||
// Pause when hovering navigation
|
||||
if (settings.pauseControls) {
|
||||
$trigger.hover(function () {
|
||||
clearInterval(rotate);
|
||||
}, function () {
|
||||
restartCycle();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Max-width fallback
|
||||
if (typeof document.body.style.maxWidth === "undefined" && options.maxwidth) {
|
||||
var widthSupport = function () {
|
||||
$this.css("width", "100%");
|
||||
if ($this.width() > maxw) {
|
||||
$this.css("width", maxw);
|
||||
}
|
||||
};
|
||||
|
||||
// Init fallback
|
||||
widthSupport();
|
||||
$(window).bind("resize", function () {
|
||||
widthSupport();
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
};
|
||||
})(jQuery, this, 0);
|
||||
8
plugins/responsive-slides/responsiveslides.min.js
vendored
Normal file
8
plugins/responsive-slides/responsiveslides.min.js
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
/*! http://responsiveslides.com v1.55 by @viljamis */
|
||||
(function(c,K,C){c.fn.responsiveSlides=function(m){var a=c.extend({auto:!0,speed:500,timeout:4E3,pager:!1,nav:!1,random:!1,pause:!1,pauseControls:!0,prevText:"Previous",nextText:"Next",maxwidth:"",navContainer:"",manualControls:"",namespace:"rslides",before:c.noop,after:c.noop},m);return this.each(function(){C++;var f=c(this),u,t,v,n,q,r,p=0,e=f.children(),D=e.length,h=parseFloat(a.speed),E=parseFloat(a.timeout),w=parseFloat(a.maxwidth),g=a.namespace,d=g+C,F=g+"_nav "+d+"_nav",x=g+"_here",k=d+"_on",
|
||||
y=d+"_s",l=c("<ul class='"+g+"_tabs "+d+"_tabs' />"),z={"float":"left",position:"relative",opacity:1,zIndex:2},A={"float":"none",position:"absolute",opacity:0,zIndex:1},G=function(){var b=(document.body||document.documentElement).style,a="transition";if("string"===typeof b[a])return!0;u=["Moz","Webkit","Khtml","O","ms"];var a=a.charAt(0).toUpperCase()+a.substr(1),c;for(c=0;c<u.length;c++)if("string"===typeof b[u[c]+a])return!0;return!1}(),B=function(b){a.before(b);G?(e.removeClass(k).css(A).eq(b).addClass(k).css(z),
|
||||
p=b,setTimeout(function(){a.after(b)},h)):e.stop().fadeOut(h,function(){c(this).removeClass(k).css(A).css("opacity",1)}).eq(b).fadeIn(h,function(){c(this).addClass(k).css(z);a.after(b);p=b})};a.random&&(e.sort(function(){return Math.round(Math.random())-.5}),f.empty().append(e));e.each(function(a){this.id=y+a});f.addClass(g+" "+d);m&&m.maxwidth&&f.css("max-width",w);e.hide().css(A).eq(0).addClass(k).css(z).show();G&&e.show().css({"-webkit-transition":"opacity "+h+"ms ease-in-out","-moz-transition":"opacity "+
|
||||
h+"ms ease-in-out","-o-transition":"opacity "+h+"ms ease-in-out",transition:"opacity "+h+"ms ease-in-out"});if(1<e.length){if(E<h+100)return;if(a.pager&&!a.manualControls){var H=[];e.each(function(a){a+=1;H+="<li><a href='#' class='"+y+a+"'>"+a+"</a></li>"});l.append(H);m.navContainer?c(a.navContainer).append(l):f.after(l)}a.manualControls&&(l=c(a.manualControls),l.addClass(g+"_tabs "+d+"_tabs"));(a.pager||a.manualControls)&&l.find("li").each(function(a){c(this).addClass(y+(a+1))});if(a.pager||a.manualControls)r=
|
||||
l.find("a"),t=function(a){r.closest("li").removeClass(x).eq(a).addClass(x)};a.auto&&(v=function(){q=setInterval(function(){e.stop(!0,!0);var b=p+1<D?p+1:0;(a.pager||a.manualControls)&&t(b);B(b)},E)},v());n=function(){a.auto&&(clearInterval(q),v())};a.pause&&f.hover(function(){clearInterval(q)},function(){n()});if(a.pager||a.manualControls)r.bind("click",function(b){b.preventDefault();a.pauseControls||n();b=r.index(this);p===b||c("."+k).queue("fx").length||(t(b),B(b))}).eq(0).closest("li").addClass(x),
|
||||
a.pauseControls&&r.hover(function(){clearInterval(q)},function(){n()});if(a.nav){g="<a href='#' class='"+F+" prev'>"+a.prevText+"</a><a href='#' class='"+F+" next'>"+a.nextText+"</a>";m.navContainer?c(a.navContainer).append(g):f.after(g);var d=c("."+d+"_nav"),I=d.filter(".prev");d.bind("click",function(b){b.preventDefault();b=c("."+k);if(!b.queue("fx").length){var d=e.index(b);b=d-1;d=d+1<D?p+1:0;B(c(this)[0]===I[0]?b:d);(a.pager||a.manualControls)&&t(c(this)[0]===I[0]?b:d);a.pauseControls||n()}});
|
||||
a.pauseControls&&d.hover(function(){clearInterval(q)},function(){n()})}}if("undefined"===typeof document.body.style.maxWidth&&m.maxwidth){var J=function(){f.css("width","100%");f.width()>w&&f.css("width",w)};J();c(K).bind("resize",function(){J()})}})}})(jQuery,this,0);
|
||||
Reference in New Issue
Block a user