nivo_slider 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +15 -0
- data/README.md +45 -0
- data/lib/generators/nivo_slider/install/USAGE +8 -0
- data/lib/generators/nivo_slider/install/install_generator.rb +58 -0
- data/lib/nivo_slider/assert_select.rb +25 -0
- data/lib/nivo_slider/rails/engine.rb +6 -0
- data/lib/nivo_slider/rails/railtie.rb +13 -0
- data/lib/nivo_slider/rails.rb +8 -0
- data/lib/nivo_slider.rb +1 -0
- data/vendor/assets/images/arrows.png +0 -0
- data/vendor/assets/images/bullets.png +0 -0
- data/vendor/assets/images/loading.gif +0 -0
- data/vendor/assets/javascripts/jquery.nivo.slider.js +662 -0
- data/vendor/assets/javascripts/jquery.nivo.slider.pack.js +10 -0
- data/vendor/assets/stylesheets/nivo-slider.css +113 -0
- data/vendor/assets/stylesheets/nivo_default.css +93 -0
- metadata +58 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
OTVjZGY0MDQxZDE4OTg4MTVmNGE1OTdmNDNhNDhjNzlhODM1NWQyNQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZGJkNjYwNjJiODUxOGRjODY3ZGZiZjE3MmRmNjIzODI3MzEwYmE0Mg==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NDAzOWNlYTNhYjllYTM0ZjUxMmFkMGVjMzc5N2QzMjYwYzEyNTlmMjhlZDM2
|
10
|
+
ZWRiMDNiMTc3NGRiY2ZkNmMyZTZhYTgwOGM3NjVmNTE3ZmJiYTc0ODkxODk1
|
11
|
+
NmQ4ZjdlN2MyZDYwNGU1YjVlNTkzYWJlNzM2ZDVhOTVkYjI4MGQ=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
N2MzZDBmY2MwMDZhNWI1YzVkMzgyYzY0YmUyZDdlNDQ1M2FhMjAwOWYzMWEy
|
14
|
+
M2ExYzJiNjJmYmQ0YmI3NzM1ZGY3Y2Y2N2YxOWZmNDkwMWU4NDc4ZDBkMzk2
|
15
|
+
YWM3NWU0NTI1OGRlMjJmNTU1MTQyZmJlZGU1ODkzMjZjOTQ0MDY=
|
data/README.md
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
slim_scroll is a small jQuery plugin gem that transforms any div into a scrollable area with a nice scrollbar - similar to the one Facebook and Google started using in their products recently. slim_scroll doesn't occupy any visual space as it only appears on a user initiated mouse-over. User can drag the scrollbar or use mouse-wheel to change the scroll value..
|
2
|
+
|
3
|
+
## Setup
|
4
|
+
|
5
|
+
Add the gem to your Gemfile and run the `bundle` command to install it.
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
gem "slim_scroll"
|
9
|
+
```
|
10
|
+
|
11
|
+
Run the generator to create the initial files.
|
12
|
+
|
13
|
+
```
|
14
|
+
rails g slim_scroll:install
|
15
|
+
```
|
16
|
+
**In Rails 3.1** add the JavaScript file to your application.js file manifest.
|
17
|
+
|
18
|
+
```javascript
|
19
|
+
//= require slim_scroll
|
20
|
+
```
|
21
|
+
|
22
|
+
|
23
|
+
**In Rails 3.0** add the generated slim_scroll file to your layout.
|
24
|
+
|
25
|
+
```rhtml
|
26
|
+
<%= javascript_include_tag "slim_scroll" %>
|
27
|
+
|
28
|
+
## Usage
|
29
|
+
Slim scroll provide various option to for user
|
30
|
+
```rhtml
|
31
|
+
<%= subscribe_to "/messages/new" %>
|
32
|
+
```
|
33
|
+
Use the `publish_to` helper method to send JavaScript to that channel. This is usually done in a JavaScript AJAX template (such as a create.js.erb file).
|
34
|
+
|
35
|
+
```rhtml
|
36
|
+
<% publish_to "/messages/new" do %>
|
37
|
+
$("#chat").append("<%= j render(@messages) %>");
|
38
|
+
<% end %>
|
39
|
+
```
|
40
|
+
|
41
|
+
This JavaScript will be immediately evaluated on all clients who have subscribed to that channel. In this example they will see the new chat message appear in real-time without reloading the browser.
|
42
|
+
|
43
|
+
## Development & Feedback
|
44
|
+
|
45
|
+
Questions or comments? Please use the [issue tracker](https://github.com/ciserfan/slim_scroll/issues). Tests can be run with `bundle` and `rake` commands.
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'rails'
|
2
|
+
|
3
|
+
# Supply generator for Rails 3.0.x or if asset pipeline is not enabled
|
4
|
+
if ::Rails.version < "3.1"
|
5
|
+
module NivoSlider
|
6
|
+
module Generators
|
7
|
+
class InstallGenerator < ::Rails::Generators::Base
|
8
|
+
desc "This generator installs Nivo slider"
|
9
|
+
source_root File.expand_path('../../../../../vendor/assets/', __FILE__)
|
10
|
+
def copy_nivo_slider
|
11
|
+
say_status("copying", "nivo_slider", :green)
|
12
|
+
copy_file "javascripts/jquery.nivo.slider.js", "public/javascripts/jquery.nivo.slider.js"
|
13
|
+
copy_file "javascripts/jquery.nivo.slider.pack.js", "public/javascripts/jquery.nivo.slider.pack.js"
|
14
|
+
copy_file "stylesheets/nivo-slider.css", "public/stylesheets/nivo-slider.css"
|
15
|
+
copy_file "stylesheets/nivo_default.css", "public/stylesheets/nivo_default.css"
|
16
|
+
copy_file "images/arrows.png", "public/images/arrows.png"
|
17
|
+
copy_file "images/bullets.png", "public/images/bullets.png"
|
18
|
+
copy_file "images/loading.gif", "public/images/loading.gif"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
else
|
24
|
+
module NivoSlider
|
25
|
+
module Generators
|
26
|
+
class InstallGenerator < ::Rails::Generators::Base
|
27
|
+
desc "This generator add nivo slider to application.js or application.js.coffee"
|
28
|
+
source_root File.expand_path('../../../../../vendor/assets/', __FILE__)
|
29
|
+
def add_assets
|
30
|
+
js_manifest = 'app/assets/javascripts/application.js'
|
31
|
+
if File.exist?(js_manifest)
|
32
|
+
insert_into_file js_manifest, "//= require jquery.nivo.slider\n", :after => "jquery_ujs\n"
|
33
|
+
else
|
34
|
+
copy_file "application.js", js_manifest
|
35
|
+
end
|
36
|
+
css_manifest = 'app/assets/stylesheets/application.css'
|
37
|
+
if File.exist?(css_manifest)
|
38
|
+
# Add our own require:
|
39
|
+
content = File.read(css_manifest)
|
40
|
+
if content.match(/require_tree\s+\.\s*$/)
|
41
|
+
# Good enough - that'll include our bootstrap_and_overrides.css.less
|
42
|
+
else
|
43
|
+
insert_into_file css_manifest, " *= require nivo_default\n", :after => "require_self\n"
|
44
|
+
insert_into_file css_manifest, " *= require nivo-slider\n", :after => "require_self\n"
|
45
|
+
end
|
46
|
+
else
|
47
|
+
copy_file "application.css", "app/assets/stylesheets/application.css"
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
def detect_js_format
|
52
|
+
return ['.js.coffee', '#='] if File.exist?('app/assets/javascripts/application.js.coffee')
|
53
|
+
return ['.js', '//='] if File.exist?('app/assets/javascripts/application.js')
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module ActionDispatch
|
2
|
+
module Assertions
|
3
|
+
module SelectorAssertions
|
4
|
+
|
5
|
+
PATTERN_HTML = %Q{"((\\\\\"|[^\"])*)"}
|
6
|
+
PATTERN_UNICODE_ESCAPED_CHAR = /\\u([0-9a-zA-Z]{4})/
|
7
|
+
|
8
|
+
private
|
9
|
+
|
10
|
+
# Unescapes a JS string.
|
11
|
+
def unescape_js(js_string)
|
12
|
+
# js encodes double quotes and line breaks.
|
13
|
+
unescaped= js_string.gsub('\"', '"')
|
14
|
+
unescaped.gsub!('\\\'', "'")
|
15
|
+
unescaped.gsub!(/\\\//, '/')
|
16
|
+
unescaped.gsub!('\n', "\n")
|
17
|
+
unescaped.gsub!('\076', '>')
|
18
|
+
unescaped.gsub!('\074', '<')
|
19
|
+
# js encodes non-ascii characters.
|
20
|
+
unescaped.gsub!(PATTERN_UNICODE_ESCAPED_CHAR) {|u| [$1.hex].pack('U*')}
|
21
|
+
unescaped
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# Used to ensure that Rails 3.0.x, as well as Rails >= 3.1 with asset pipeline disabled
|
2
|
+
# get the minified version of the scripts included into the layout in production.
|
3
|
+
module NivoSlider
|
4
|
+
module Rails
|
5
|
+
class Railtie < ::Rails::Railtie
|
6
|
+
config.before_configuration do
|
7
|
+
if config.action_view.javascript_expansions
|
8
|
+
nivo_slider_defaults = ::Rails.env.production? || ::Rails.env.test? ? %w(jquery.nivo.slider.pack) : %w(jquery.nivo.slider)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/nivo_slider.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'nivo_slider/rails'
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,662 @@
|
|
1
|
+
/*
|
2
|
+
* jQuery Nivo Slider v3.2
|
3
|
+
* http://nivo.dev7studios.com
|
4
|
+
*
|
5
|
+
* Copyright 2012, Dev7studios
|
6
|
+
* Free to use and abuse under the MIT license.
|
7
|
+
* http://www.opensource.org/licenses/mit-license.php
|
8
|
+
*/
|
9
|
+
|
10
|
+
(function($) {
|
11
|
+
var NivoSlider = function(element, options){
|
12
|
+
// Defaults are below
|
13
|
+
var settings = $.extend({}, $.fn.nivoSlider.defaults, options);
|
14
|
+
|
15
|
+
// Useful variables. Play carefully.
|
16
|
+
var vars = {
|
17
|
+
currentSlide: 0,
|
18
|
+
currentImage: '',
|
19
|
+
totalSlides: 0,
|
20
|
+
running: false,
|
21
|
+
paused: false,
|
22
|
+
stop: false,
|
23
|
+
controlNavEl: false
|
24
|
+
};
|
25
|
+
console.log(vars);
|
26
|
+
// Get this slider
|
27
|
+
var slider = $(element);
|
28
|
+
slider.data('nivo:vars', vars).addClass('nivoSlider');
|
29
|
+
|
30
|
+
// Find our slider children
|
31
|
+
var kids = slider.children();
|
32
|
+
kids.each(function() {
|
33
|
+
var child = $(this);
|
34
|
+
var link = '';
|
35
|
+
if(!child.is('img')){
|
36
|
+
if(child.is('a')){
|
37
|
+
child.addClass('nivo-imageLink');
|
38
|
+
link = child;
|
39
|
+
}
|
40
|
+
child = child.find('img:first');
|
41
|
+
}
|
42
|
+
// Get img width & height
|
43
|
+
var childWidth = (childWidth === 0) ? child.attr('width') : child.width(),
|
44
|
+
childHeight = (childHeight === 0) ? child.attr('height') : child.height();
|
45
|
+
|
46
|
+
if(link !== ''){
|
47
|
+
link.css('display','none');
|
48
|
+
}
|
49
|
+
child.css('display','none');
|
50
|
+
vars.totalSlides++;
|
51
|
+
});
|
52
|
+
|
53
|
+
// If randomStart
|
54
|
+
if(settings.randomStart){
|
55
|
+
settings.startSlide = Math.floor(Math.random() * vars.totalSlides);
|
56
|
+
}
|
57
|
+
|
58
|
+
// Set startSlide
|
59
|
+
if(settings.startSlide > 0){
|
60
|
+
if(settings.startSlide >= vars.totalSlides) { settings.startSlide = vars.totalSlides - 1; }
|
61
|
+
vars.currentSlide = settings.startSlide;
|
62
|
+
}
|
63
|
+
|
64
|
+
// Get initial image
|
65
|
+
if($(kids[vars.currentSlide]).is('img')){
|
66
|
+
vars.currentImage = $(kids[vars.currentSlide]);
|
67
|
+
} else {
|
68
|
+
vars.currentImage = $(kids[vars.currentSlide]).find('img:first');
|
69
|
+
}
|
70
|
+
|
71
|
+
// Show initial link
|
72
|
+
if($(kids[vars.currentSlide]).is('a')){
|
73
|
+
$(kids[vars.currentSlide]).css('display','block');
|
74
|
+
}
|
75
|
+
|
76
|
+
// Set first background
|
77
|
+
var sliderImg = $('<img/>').addClass('nivo-main-image');
|
78
|
+
sliderImg.attr('src', vars.currentImage.attr('src')).show();
|
79
|
+
slider.append(sliderImg);
|
80
|
+
|
81
|
+
// Detect Window Resize
|
82
|
+
$(window).resize(function() {
|
83
|
+
slider.children('img').width(slider.width());
|
84
|
+
sliderImg.attr('src', vars.currentImage.attr('src'));
|
85
|
+
sliderImg.stop().height('auto');
|
86
|
+
$('.nivo-slice').remove();
|
87
|
+
$('.nivo-box').remove();
|
88
|
+
});
|
89
|
+
|
90
|
+
//Create caption
|
91
|
+
slider.append($('<div class="nivo-caption"></div>'));
|
92
|
+
|
93
|
+
// Process caption function
|
94
|
+
var processCaption = function(settings){
|
95
|
+
var nivoCaption = $('.nivo-caption', slider);
|
96
|
+
if(vars.currentImage.attr('title') != '' && vars.currentImage.attr('title') != undefined){
|
97
|
+
var title = vars.currentImage.attr('title');
|
98
|
+
if(title.substr(0,1) == '#') title = $(title).html();
|
99
|
+
|
100
|
+
if(nivoCaption.css('display') == 'block'){
|
101
|
+
setTimeout(function(){
|
102
|
+
nivoCaption.html(title);
|
103
|
+
}, settings.animSpeed);
|
104
|
+
} else {
|
105
|
+
nivoCaption.html(title);
|
106
|
+
nivoCaption.stop().fadeIn(settings.animSpeed);
|
107
|
+
}
|
108
|
+
} else {
|
109
|
+
nivoCaption.stop().fadeOut(settings.animSpeed);
|
110
|
+
}
|
111
|
+
}
|
112
|
+
|
113
|
+
//Process initial caption
|
114
|
+
processCaption(settings);
|
115
|
+
|
116
|
+
// In the words of Super Mario "let's a go!"
|
117
|
+
var timer = 0;
|
118
|
+
if(!settings.manualAdvance && kids.length > 1){
|
119
|
+
timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime);
|
120
|
+
}
|
121
|
+
|
122
|
+
// Add Direction nav
|
123
|
+
if(settings.directionNav){
|
124
|
+
slider.append('<div class="nivo-directionNav"><a class="nivo-prevNav">'+ settings.prevText +'</a><a class="nivo-nextNav">'+ settings.nextText +'</a></div>');
|
125
|
+
|
126
|
+
$(slider).on('click', 'a.nivo-prevNav', function(){
|
127
|
+
if(vars.running) { return false; }
|
128
|
+
clearInterval(timer);
|
129
|
+
timer = '';
|
130
|
+
vars.currentSlide -= 2;
|
131
|
+
nivoRun(slider, kids, settings, 'prev');
|
132
|
+
});
|
133
|
+
|
134
|
+
$(slider).on('click', 'a.nivo-nextNav', function(){
|
135
|
+
if(vars.running) { return false; }
|
136
|
+
clearInterval(timer);
|
137
|
+
timer = '';
|
138
|
+
nivoRun(slider, kids, settings, 'next');
|
139
|
+
});
|
140
|
+
}
|
141
|
+
|
142
|
+
// Add Control nav
|
143
|
+
if(settings.controlNav){
|
144
|
+
vars.controlNavEl = $('<div class="nivo-controlNav"></div>');
|
145
|
+
slider.after(vars.controlNavEl);
|
146
|
+
for(var i = 0; i < kids.length; i++){
|
147
|
+
if(settings.controlNavThumbs){
|
148
|
+
vars.controlNavEl.addClass('nivo-thumbs-enabled');
|
149
|
+
var child = kids.eq(i);
|
150
|
+
if(!child.is('img')){
|
151
|
+
child = child.find('img:first');
|
152
|
+
}
|
153
|
+
if(child.attr('data-thumb')) vars.controlNavEl.append('<a class="nivo-control" rel="'+ i +'"><img src="'+ child.attr('data-thumb') +'" alt="" /></a>');
|
154
|
+
} else {
|
155
|
+
vars.controlNavEl.append('<a class="nivo-control" rel="'+ i +'">'+ (i + 1) +'</a>');
|
156
|
+
}
|
157
|
+
}
|
158
|
+
|
159
|
+
//Set initial active link
|
160
|
+
$('a:eq('+ vars.currentSlide +')', vars.controlNavEl).addClass('active');
|
161
|
+
|
162
|
+
$('a', vars.controlNavEl).bind('click', function(){
|
163
|
+
if(vars.running) return false;
|
164
|
+
if($(this).hasClass('active')) return false;
|
165
|
+
clearInterval(timer);
|
166
|
+
timer = '';
|
167
|
+
sliderImg.attr('src', vars.currentImage.attr('src'));
|
168
|
+
vars.currentSlide = $(this).attr('rel') - 1;
|
169
|
+
nivoRun(slider, kids, settings, 'control');
|
170
|
+
});
|
171
|
+
}
|
172
|
+
|
173
|
+
//For pauseOnHover setting
|
174
|
+
if(settings.pauseOnHover){
|
175
|
+
slider.hover(function(){
|
176
|
+
vars.paused = true;
|
177
|
+
clearInterval(timer);
|
178
|
+
timer = '';
|
179
|
+
}, function(){
|
180
|
+
vars.paused = false;
|
181
|
+
// Restart the timer
|
182
|
+
if(timer === '' && !settings.manualAdvance){
|
183
|
+
timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime);
|
184
|
+
}
|
185
|
+
});
|
186
|
+
}
|
187
|
+
|
188
|
+
// Event when Animation finishes
|
189
|
+
slider.bind('nivo:animFinished', function(){
|
190
|
+
sliderImg.attr('src', vars.currentImage.attr('src'));
|
191
|
+
vars.running = false;
|
192
|
+
// Hide child links
|
193
|
+
$(kids).each(function(){
|
194
|
+
if($(this).is('a')){
|
195
|
+
$(this).css('display','none');
|
196
|
+
}
|
197
|
+
});
|
198
|
+
// Show current link
|
199
|
+
if($(kids[vars.currentSlide]).is('a')){
|
200
|
+
$(kids[vars.currentSlide]).css('display','block');
|
201
|
+
}
|
202
|
+
// Restart the timer
|
203
|
+
if(timer === '' && !vars.paused && !settings.manualAdvance){
|
204
|
+
timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime);
|
205
|
+
}
|
206
|
+
// Trigger the afterChange callback
|
207
|
+
settings.afterChange.call(this);
|
208
|
+
});
|
209
|
+
|
210
|
+
// Add slices for slice animations
|
211
|
+
var createSlices = function(slider, settings, vars) {
|
212
|
+
if($(vars.currentImage).parent().is('a')) $(vars.currentImage).parent().css('display','block');
|
213
|
+
$('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').width(slider.width()).css('visibility', 'hidden').show();
|
214
|
+
var sliceHeight = ($('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').parent().is('a')) ? $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').parent().height() : $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').height();
|
215
|
+
|
216
|
+
for(var i = 0; i < settings.slices; i++){
|
217
|
+
var sliceWidth = Math.round(slider.width()/settings.slices);
|
218
|
+
|
219
|
+
if(i === settings.slices-1){
|
220
|
+
slider.append(
|
221
|
+
$('<div class="nivo-slice" name="'+i+'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block !important; top:0; left:-'+ ((sliceWidth + (i * sliceWidth)) - sliceWidth) +'px;" /></div>').css({
|
222
|
+
left:(sliceWidth*i)+'px',
|
223
|
+
width:(slider.width()-(sliceWidth*i))+'px',
|
224
|
+
height:sliceHeight+'px',
|
225
|
+
opacity:'0',
|
226
|
+
overflow:'hidden'
|
227
|
+
})
|
228
|
+
);
|
229
|
+
} else {
|
230
|
+
slider.append(
|
231
|
+
$('<div class="nivo-slice" name="'+i+'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block !important; top:0; left:-'+ ((sliceWidth + (i * sliceWidth)) - sliceWidth) +'px;" /></div>').css({
|
232
|
+
left:(sliceWidth*i)+'px',
|
233
|
+
width:sliceWidth+'px',
|
234
|
+
height:sliceHeight+'px',
|
235
|
+
opacity:'0',
|
236
|
+
overflow:'hidden'
|
237
|
+
})
|
238
|
+
);
|
239
|
+
}
|
240
|
+
}
|
241
|
+
|
242
|
+
$('.nivo-slice', slider).height(sliceHeight);
|
243
|
+
sliderImg.stop().animate({
|
244
|
+
height: $(vars.currentImage).height()
|
245
|
+
}, settings.animSpeed);
|
246
|
+
};
|
247
|
+
|
248
|
+
// Add boxes for box animations
|
249
|
+
var createBoxes = function(slider, settings, vars){
|
250
|
+
if($(vars.currentImage).parent().is('a')) $(vars.currentImage).parent().css('display','block');
|
251
|
+
$('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').width(slider.width()).css('visibility', 'hidden').show();
|
252
|
+
var boxWidth = Math.round(slider.width()/settings.boxCols),
|
253
|
+
boxHeight = Math.round($('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').height() / settings.boxRows);
|
254
|
+
|
255
|
+
|
256
|
+
for(var rows = 0; rows < settings.boxRows; rows++){
|
257
|
+
for(var cols = 0; cols < settings.boxCols; cols++){
|
258
|
+
if(cols === settings.boxCols-1){
|
259
|
+
slider.append(
|
260
|
+
$('<div class="nivo-box" name="'+ cols +'" rel="'+ rows +'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block; top:-'+ (boxHeight*rows) +'px; left:-'+ (boxWidth*cols) +'px;" /></div>').css({
|
261
|
+
opacity:0,
|
262
|
+
left:(boxWidth*cols)+'px',
|
263
|
+
top:(boxHeight*rows)+'px',
|
264
|
+
width:(slider.width()-(boxWidth*cols))+'px'
|
265
|
+
|
266
|
+
})
|
267
|
+
);
|
268
|
+
$('.nivo-box[name="'+ cols +'"]', slider).height($('.nivo-box[name="'+ cols +'"] img', slider).height()+'px');
|
269
|
+
} else {
|
270
|
+
slider.append(
|
271
|
+
$('<div class="nivo-box" name="'+ cols +'" rel="'+ rows +'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block; top:-'+ (boxHeight*rows) +'px; left:-'+ (boxWidth*cols) +'px;" /></div>').css({
|
272
|
+
opacity:0,
|
273
|
+
left:(boxWidth*cols)+'px',
|
274
|
+
top:(boxHeight*rows)+'px',
|
275
|
+
width:boxWidth+'px'
|
276
|
+
})
|
277
|
+
);
|
278
|
+
$('.nivo-box[name="'+ cols +'"]', slider).height($('.nivo-box[name="'+ cols +'"] img', slider).height()+'px');
|
279
|
+
}
|
280
|
+
}
|
281
|
+
}
|
282
|
+
|
283
|
+
sliderImg.stop().animate({
|
284
|
+
height: $(vars.currentImage).height()
|
285
|
+
}, settings.animSpeed);
|
286
|
+
};
|
287
|
+
|
288
|
+
// Private run method
|
289
|
+
var nivoRun = function(slider, kids, settings, nudge){
|
290
|
+
// Get our vars
|
291
|
+
var vars = slider.data('nivo:vars');
|
292
|
+
|
293
|
+
// Trigger the lastSlide callback
|
294
|
+
if(vars && (vars.currentSlide === vars.totalSlides - 1)){
|
295
|
+
settings.lastSlide.call(this);
|
296
|
+
}
|
297
|
+
|
298
|
+
// Stop
|
299
|
+
if((!vars || vars.stop) && !nudge) { return false; }
|
300
|
+
|
301
|
+
// Trigger the beforeChange callback
|
302
|
+
settings.beforeChange.call(this);
|
303
|
+
|
304
|
+
// Set current background before change
|
305
|
+
if(!nudge){
|
306
|
+
sliderImg.attr('src', vars.currentImage.attr('src'));
|
307
|
+
} else {
|
308
|
+
if(nudge === 'prev'){
|
309
|
+
sliderImg.attr('src', vars.currentImage.attr('src'));
|
310
|
+
}
|
311
|
+
if(nudge === 'next'){
|
312
|
+
sliderImg.attr('src', vars.currentImage.attr('src'));
|
313
|
+
}
|
314
|
+
}
|
315
|
+
|
316
|
+
vars.currentSlide++;
|
317
|
+
// Trigger the slideshowEnd callback
|
318
|
+
if(vars.currentSlide === vars.totalSlides){
|
319
|
+
vars.currentSlide = 0;
|
320
|
+
settings.slideshowEnd.call(this);
|
321
|
+
}
|
322
|
+
if(vars.currentSlide < 0) { vars.currentSlide = (vars.totalSlides - 1); }
|
323
|
+
// Set vars.currentImage
|
324
|
+
if($(kids[vars.currentSlide]).is('img')){
|
325
|
+
vars.currentImage = $(kids[vars.currentSlide]);
|
326
|
+
} else {
|
327
|
+
vars.currentImage = $(kids[vars.currentSlide]).find('img:first');
|
328
|
+
}
|
329
|
+
|
330
|
+
// Set active links
|
331
|
+
if(settings.controlNav){
|
332
|
+
$('a', vars.controlNavEl).removeClass('active');
|
333
|
+
$('a:eq('+ vars.currentSlide +')', vars.controlNavEl).addClass('active');
|
334
|
+
}
|
335
|
+
|
336
|
+
// Process caption
|
337
|
+
processCaption(settings);
|
338
|
+
|
339
|
+
// Remove any slices from last transition
|
340
|
+
$('.nivo-slice', slider).remove();
|
341
|
+
|
342
|
+
// Remove any boxes from last transition
|
343
|
+
$('.nivo-box', slider).remove();
|
344
|
+
|
345
|
+
var currentEffect = settings.effect,
|
346
|
+
anims = '';
|
347
|
+
|
348
|
+
// Generate random effect
|
349
|
+
if(settings.effect === 'random'){
|
350
|
+
anims = new Array('sliceDownRight','sliceDownLeft','sliceUpRight','sliceUpLeft','sliceUpDown','sliceUpDownLeft','fold','fade',
|
351
|
+
'boxRandom','boxRain','boxRainReverse','boxRainGrow','boxRainGrowReverse');
|
352
|
+
currentEffect = anims[Math.floor(Math.random()*(anims.length + 1))];
|
353
|
+
if(currentEffect === undefined) { currentEffect = 'fade'; }
|
354
|
+
}
|
355
|
+
|
356
|
+
// Run random effect from specified set (eg: effect:'fold,fade')
|
357
|
+
if(settings.effect.indexOf(',') !== -1){
|
358
|
+
anims = settings.effect.split(',');
|
359
|
+
currentEffect = anims[Math.floor(Math.random()*(anims.length))];
|
360
|
+
if(currentEffect === undefined) { currentEffect = 'fade'; }
|
361
|
+
}
|
362
|
+
|
363
|
+
// Custom transition as defined by "data-transition" attribute
|
364
|
+
if(vars.currentImage.attr('data-transition')){
|
365
|
+
currentEffect = vars.currentImage.attr('data-transition');
|
366
|
+
}
|
367
|
+
|
368
|
+
// Run effects
|
369
|
+
vars.running = true;
|
370
|
+
var timeBuff = 0,
|
371
|
+
i = 0,
|
372
|
+
slices = '',
|
373
|
+
firstSlice = '',
|
374
|
+
totalBoxes = '',
|
375
|
+
boxes = '';
|
376
|
+
|
377
|
+
if(currentEffect === 'sliceDown' || currentEffect === 'sliceDownRight' || currentEffect === 'sliceDownLeft'){
|
378
|
+
createSlices(slider, settings, vars);
|
379
|
+
timeBuff = 0;
|
380
|
+
i = 0;
|
381
|
+
slices = $('.nivo-slice', slider);
|
382
|
+
if(currentEffect === 'sliceDownLeft') { slices = $('.nivo-slice', slider)._reverse(); }
|
383
|
+
|
384
|
+
slices.each(function(){
|
385
|
+
var slice = $(this);
|
386
|
+
slice.css({ 'top': '0px' });
|
387
|
+
if(i === settings.slices-1){
|
388
|
+
setTimeout(function(){
|
389
|
+
slice.animate({opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
|
390
|
+
}, (100 + timeBuff));
|
391
|
+
} else {
|
392
|
+
setTimeout(function(){
|
393
|
+
slice.animate({opacity:'1.0' }, settings.animSpeed);
|
394
|
+
}, (100 + timeBuff));
|
395
|
+
}
|
396
|
+
timeBuff += 50;
|
397
|
+
i++;
|
398
|
+
});
|
399
|
+
} else if(currentEffect === 'sliceUp' || currentEffect === 'sliceUpRight' || currentEffect === 'sliceUpLeft'){
|
400
|
+
createSlices(slider, settings, vars);
|
401
|
+
timeBuff = 0;
|
402
|
+
i = 0;
|
403
|
+
slices = $('.nivo-slice', slider);
|
404
|
+
if(currentEffect === 'sliceUpLeft') { slices = $('.nivo-slice', slider)._reverse(); }
|
405
|
+
|
406
|
+
slices.each(function(){
|
407
|
+
var slice = $(this);
|
408
|
+
slice.css({ 'bottom': '0px' });
|
409
|
+
if(i === settings.slices-1){
|
410
|
+
setTimeout(function(){
|
411
|
+
slice.animate({opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
|
412
|
+
}, (100 + timeBuff));
|
413
|
+
} else {
|
414
|
+
setTimeout(function(){
|
415
|
+
slice.animate({opacity:'1.0' }, settings.animSpeed);
|
416
|
+
}, (100 + timeBuff));
|
417
|
+
}
|
418
|
+
timeBuff += 50;
|
419
|
+
i++;
|
420
|
+
});
|
421
|
+
} else if(currentEffect === 'sliceUpDown' || currentEffect === 'sliceUpDownRight' || currentEffect === 'sliceUpDownLeft'){
|
422
|
+
createSlices(slider, settings, vars);
|
423
|
+
timeBuff = 0;
|
424
|
+
i = 0;
|
425
|
+
var v = 0;
|
426
|
+
slices = $('.nivo-slice', slider);
|
427
|
+
if(currentEffect === 'sliceUpDownLeft') { slices = $('.nivo-slice', slider)._reverse(); }
|
428
|
+
|
429
|
+
slices.each(function(){
|
430
|
+
var slice = $(this);
|
431
|
+
if(i === 0){
|
432
|
+
slice.css('top','0px');
|
433
|
+
i++;
|
434
|
+
} else {
|
435
|
+
slice.css('bottom','0px');
|
436
|
+
i = 0;
|
437
|
+
}
|
438
|
+
|
439
|
+
if(v === settings.slices-1){
|
440
|
+
setTimeout(function(){
|
441
|
+
slice.animate({opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
|
442
|
+
}, (100 + timeBuff));
|
443
|
+
} else {
|
444
|
+
setTimeout(function(){
|
445
|
+
slice.animate({opacity:'1.0' }, settings.animSpeed);
|
446
|
+
}, (100 + timeBuff));
|
447
|
+
}
|
448
|
+
timeBuff += 50;
|
449
|
+
v++;
|
450
|
+
});
|
451
|
+
} else if(currentEffect === 'fold'){
|
452
|
+
createSlices(slider, settings, vars);
|
453
|
+
timeBuff = 0;
|
454
|
+
i = 0;
|
455
|
+
|
456
|
+
$('.nivo-slice', slider).each(function(){
|
457
|
+
var slice = $(this);
|
458
|
+
var origWidth = slice.width();
|
459
|
+
slice.css({ top:'0px', width:'0px' });
|
460
|
+
if(i === settings.slices-1){
|
461
|
+
setTimeout(function(){
|
462
|
+
slice.animate({ width:origWidth, opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
|
463
|
+
}, (100 + timeBuff));
|
464
|
+
} else {
|
465
|
+
setTimeout(function(){
|
466
|
+
slice.animate({ width:origWidth, opacity:'1.0' }, settings.animSpeed);
|
467
|
+
}, (100 + timeBuff));
|
468
|
+
}
|
469
|
+
timeBuff += 50;
|
470
|
+
i++;
|
471
|
+
});
|
472
|
+
} else if(currentEffect === 'fade'){
|
473
|
+
createSlices(slider, settings, vars);
|
474
|
+
|
475
|
+
firstSlice = $('.nivo-slice:first', slider);
|
476
|
+
firstSlice.css({
|
477
|
+
'width': slider.width() + 'px'
|
478
|
+
});
|
479
|
+
|
480
|
+
firstSlice.animate({ opacity:'1.0' }, (settings.animSpeed*2), '', function(){ slider.trigger('nivo:animFinished'); });
|
481
|
+
} else if(currentEffect === 'slideInRight'){
|
482
|
+
createSlices(slider, settings, vars);
|
483
|
+
|
484
|
+
firstSlice = $('.nivo-slice:first', slider);
|
485
|
+
firstSlice.css({
|
486
|
+
'width': '0px',
|
487
|
+
'opacity': '1'
|
488
|
+
});
|
489
|
+
|
490
|
+
firstSlice.animate({ width: slider.width() + 'px' }, (settings.animSpeed*2), '', function(){ slider.trigger('nivo:animFinished'); });
|
491
|
+
} else if(currentEffect === 'slideInLeft'){
|
492
|
+
createSlices(slider, settings, vars);
|
493
|
+
|
494
|
+
firstSlice = $('.nivo-slice:first', slider);
|
495
|
+
firstSlice.css({
|
496
|
+
'width': '0px',
|
497
|
+
'opacity': '1',
|
498
|
+
'left': '',
|
499
|
+
'right': '0px'
|
500
|
+
});
|
501
|
+
|
502
|
+
firstSlice.animate({ width: slider.width() + 'px' }, (settings.animSpeed*2), '', function(){
|
503
|
+
// Reset positioning
|
504
|
+
firstSlice.css({
|
505
|
+
'left': '0px',
|
506
|
+
'right': ''
|
507
|
+
});
|
508
|
+
slider.trigger('nivo:animFinished');
|
509
|
+
});
|
510
|
+
} else if(currentEffect === 'boxRandom'){
|
511
|
+
createBoxes(slider, settings, vars);
|
512
|
+
|
513
|
+
totalBoxes = settings.boxCols * settings.boxRows;
|
514
|
+
i = 0;
|
515
|
+
timeBuff = 0;
|
516
|
+
|
517
|
+
boxes = shuffle($('.nivo-box', slider));
|
518
|
+
boxes.each(function(){
|
519
|
+
var box = $(this);
|
520
|
+
if(i === totalBoxes-1){
|
521
|
+
setTimeout(function(){
|
522
|
+
box.animate({ opacity:'1' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
|
523
|
+
}, (100 + timeBuff));
|
524
|
+
} else {
|
525
|
+
setTimeout(function(){
|
526
|
+
box.animate({ opacity:'1' }, settings.animSpeed);
|
527
|
+
}, (100 + timeBuff));
|
528
|
+
}
|
529
|
+
timeBuff += 20;
|
530
|
+
i++;
|
531
|
+
});
|
532
|
+
} else if(currentEffect === 'boxRain' || currentEffect === 'boxRainReverse' || currentEffect === 'boxRainGrow' || currentEffect === 'boxRainGrowReverse'){
|
533
|
+
createBoxes(slider, settings, vars);
|
534
|
+
|
535
|
+
totalBoxes = settings.boxCols * settings.boxRows;
|
536
|
+
i = 0;
|
537
|
+
timeBuff = 0;
|
538
|
+
|
539
|
+
// Split boxes into 2D array
|
540
|
+
var rowIndex = 0;
|
541
|
+
var colIndex = 0;
|
542
|
+
var box2Darr = [];
|
543
|
+
box2Darr[rowIndex] = [];
|
544
|
+
boxes = $('.nivo-box', slider);
|
545
|
+
if(currentEffect === 'boxRainReverse' || currentEffect === 'boxRainGrowReverse'){
|
546
|
+
boxes = $('.nivo-box', slider)._reverse();
|
547
|
+
}
|
548
|
+
boxes.each(function(){
|
549
|
+
box2Darr[rowIndex][colIndex] = $(this);
|
550
|
+
colIndex++;
|
551
|
+
if(colIndex === settings.boxCols){
|
552
|
+
rowIndex++;
|
553
|
+
colIndex = 0;
|
554
|
+
box2Darr[rowIndex] = [];
|
555
|
+
}
|
556
|
+
});
|
557
|
+
|
558
|
+
// Run animation
|
559
|
+
for(var cols = 0; cols < (settings.boxCols * 2); cols++){
|
560
|
+
var prevCol = cols;
|
561
|
+
for(var rows = 0; rows < settings.boxRows; rows++){
|
562
|
+
if(prevCol >= 0 && prevCol < settings.boxCols){
|
563
|
+
/* Due to some weird JS bug with loop vars
|
564
|
+
being used in setTimeout, this is wrapped
|
565
|
+
with an anonymous function call */
|
566
|
+
(function(row, col, time, i, totalBoxes) {
|
567
|
+
var box = $(box2Darr[row][col]);
|
568
|
+
var w = box.width();
|
569
|
+
var h = box.height();
|
570
|
+
if(currentEffect === 'boxRainGrow' || currentEffect === 'boxRainGrowReverse'){
|
571
|
+
box.width(0).height(0);
|
572
|
+
}
|
573
|
+
if(i === totalBoxes-1){
|
574
|
+
setTimeout(function(){
|
575
|
+
box.animate({ opacity:'1', width:w, height:h }, settings.animSpeed/1.3, '', function(){ slider.trigger('nivo:animFinished'); });
|
576
|
+
}, (100 + time));
|
577
|
+
} else {
|
578
|
+
setTimeout(function(){
|
579
|
+
box.animate({ opacity:'1', width:w, height:h }, settings.animSpeed/1.3);
|
580
|
+
}, (100 + time));
|
581
|
+
}
|
582
|
+
})(rows, prevCol, timeBuff, i, totalBoxes);
|
583
|
+
i++;
|
584
|
+
}
|
585
|
+
prevCol--;
|
586
|
+
}
|
587
|
+
timeBuff += 100;
|
588
|
+
}
|
589
|
+
}
|
590
|
+
};
|
591
|
+
|
592
|
+
// Shuffle an array
|
593
|
+
var shuffle = function(arr){
|
594
|
+
for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i, 10), x = arr[--i], arr[i] = arr[j], arr[j] = x);
|
595
|
+
return arr;
|
596
|
+
};
|
597
|
+
|
598
|
+
// For debugging
|
599
|
+
var trace = function(msg){
|
600
|
+
if(this.console && typeof console.log !== 'undefined') { console.log(msg); }
|
601
|
+
};
|
602
|
+
|
603
|
+
// Start / Stop
|
604
|
+
this.stop = function(){
|
605
|
+
if(!$(element).data('nivo:vars').stop){
|
606
|
+
$(element).data('nivo:vars').stop = true;
|
607
|
+
trace('Stop Slider');
|
608
|
+
}
|
609
|
+
};
|
610
|
+
|
611
|
+
this.start = function(){
|
612
|
+
if($(element).data('nivo:vars').stop){
|
613
|
+
$(element).data('nivo:vars').stop = false;
|
614
|
+
trace('Start Slider');
|
615
|
+
}
|
616
|
+
};
|
617
|
+
|
618
|
+
// Trigger the afterLoad callback
|
619
|
+
settings.afterLoad.call(this);
|
620
|
+
|
621
|
+
return this;
|
622
|
+
};
|
623
|
+
|
624
|
+
$.fn.nivoSlider = function(options) {
|
625
|
+
return this.each(function(key, value){
|
626
|
+
var element = $(this);
|
627
|
+
// Return early if this element already has a plugin instance
|
628
|
+
if (element.data('nivoslider')) { return element.data('nivoslider'); }
|
629
|
+
// Pass options to plugin constructor
|
630
|
+
var nivoslider = new NivoSlider(this, options);
|
631
|
+
// Store plugin object in this element's data
|
632
|
+
element.data('nivoslider', nivoslider);
|
633
|
+
});
|
634
|
+
};
|
635
|
+
|
636
|
+
//Default settings
|
637
|
+
$.fn.nivoSlider.defaults = {
|
638
|
+
effect: 'random',
|
639
|
+
slices: 15,
|
640
|
+
boxCols: 8,
|
641
|
+
boxRows: 4,
|
642
|
+
animSpeed: 500,
|
643
|
+
pauseTime: 3000,
|
644
|
+
startSlide: 0,
|
645
|
+
directionNav: true,
|
646
|
+
controlNav: true,
|
647
|
+
controlNavThumbs: false,
|
648
|
+
pauseOnHover: true,
|
649
|
+
manualAdvance: false,
|
650
|
+
prevText: 'Prev',
|
651
|
+
nextText: 'Next',
|
652
|
+
randomStart: false,
|
653
|
+
beforeChange: function(){},
|
654
|
+
afterChange: function(){},
|
655
|
+
slideshowEnd: function(){},
|
656
|
+
lastSlide: function(){},
|
657
|
+
afterLoad: function(){}
|
658
|
+
};
|
659
|
+
|
660
|
+
$.fn._reverse = [].reverse;
|
661
|
+
|
662
|
+
})(jQuery);
|
@@ -0,0 +1,10 @@
|
|
1
|
+
/*
|
2
|
+
* jQuery Nivo Slider v3.2
|
3
|
+
* http://nivo.dev7studios.com
|
4
|
+
*
|
5
|
+
* Copyright 2012, Dev7studios
|
6
|
+
* Free to use and abuse under the MIT license.
|
7
|
+
* http://www.opensource.org/licenses/mit-license.php
|
8
|
+
*/
|
9
|
+
|
10
|
+
(function(e){var t=function(t,n){var r=e.extend({},e.fn.nivoSlider.defaults,n);var i={currentSlide:0,currentImage:"",totalSlides:0,running:false,paused:false,stop:false,controlNavEl:false};var s=e(t);s.data("nivo:vars",i).addClass("nivoSlider");var o=s.children();o.each(function(){var t=e(this);var n="";if(!t.is("img")){if(t.is("a")){t.addClass("nivo-imageLink");n=t}t=t.find("img:first")}var r=r===0?t.attr("width"):t.width(),s=s===0?t.attr("height"):t.height();if(n!==""){n.css("display","none")}t.css("display","none");i.totalSlides++});if(r.randomStart){r.startSlide=Math.floor(Math.random()*i.totalSlides)}if(r.startSlide>0){if(r.startSlide>=i.totalSlides){r.startSlide=i.totalSlides-1}i.currentSlide=r.startSlide}if(e(o[i.currentSlide]).is("img")){i.currentImage=e(o[i.currentSlide])}else{i.currentImage=e(o[i.currentSlide]).find("img:first")}if(e(o[i.currentSlide]).is("a")){e(o[i.currentSlide]).css("display","block")}var u=e("<img/>").addClass("nivo-main-image");u.attr("src",i.currentImage.attr("src")).show();s.append(u);e(window).resize(function(){s.children("img").width(s.width());u.attr("src",i.currentImage.attr("src"));u.stop().height("auto");e(".nivo-slice").remove();e(".nivo-box").remove()});s.append(e('<div class="nivo-caption"></div>'));var a=function(t){var n=e(".nivo-caption",s);if(i.currentImage.attr("title")!=""&&i.currentImage.attr("title")!=undefined){var r=i.currentImage.attr("title");if(r.substr(0,1)=="#")r=e(r).html();if(n.css("display")=="block"){setTimeout(function(){n.html(r)},t.animSpeed)}else{n.html(r);n.stop().fadeIn(t.animSpeed)}}else{n.stop().fadeOut(t.animSpeed)}};a(r);var f=0;if(!r.manualAdvance&&o.length>1){f=setInterval(function(){d(s,o,r,false)},r.pauseTime)}if(r.directionNav){s.append('<div class="nivo-directionNav"><a class="nivo-prevNav">'+r.prevText+'</a><a class="nivo-nextNav">'+r.nextText+"</a></div>");e(s).on("click","a.nivo-prevNav",function(){if(i.running){return false}clearInterval(f);f="";i.currentSlide-=2;d(s,o,r,"prev")});e(s).on("click","a.nivo-nextNav",function(){if(i.running){return false}clearInterval(f);f="";d(s,o,r,"next")})}if(r.controlNav){i.controlNavEl=e('<div class="nivo-controlNav"></div>');s.after(i.controlNavEl);for(var l=0;l<o.length;l++){if(r.controlNavThumbs){i.controlNavEl.addClass("nivo-thumbs-enabled");var c=o.eq(l);if(!c.is("img")){c=c.find("img:first")}if(c.attr("data-thumb"))i.controlNavEl.append('<a class="nivo-control" rel="'+l+'"><img src="'+c.attr("data-thumb")+'" alt="" /></a>')}else{i.controlNavEl.append('<a class="nivo-control" rel="'+l+'">'+(l+1)+"</a>")}}e("a:eq("+i.currentSlide+")",i.controlNavEl).addClass("active");e("a",i.controlNavEl).bind("click",function(){if(i.running)return false;if(e(this).hasClass("active"))return false;clearInterval(f);f="";u.attr("src",i.currentImage.attr("src"));i.currentSlide=e(this).attr("rel")-1;d(s,o,r,"control")})}if(r.pauseOnHover){s.hover(function(){i.paused=true;clearInterval(f);f=""},function(){i.paused=false;if(f===""&&!r.manualAdvance){f=setInterval(function(){d(s,o,r,false)},r.pauseTime)}})}s.bind("nivo:animFinished",function(){u.attr("src",i.currentImage.attr("src"));i.running=false;e(o).each(function(){if(e(this).is("a")){e(this).css("display","none")}});if(e(o[i.currentSlide]).is("a")){e(o[i.currentSlide]).css("display","block")}if(f===""&&!i.paused&&!r.manualAdvance){f=setInterval(function(){d(s,o,r,false)},r.pauseTime)}r.afterChange.call(this)});var h=function(t,n,r){if(e(r.currentImage).parent().is("a"))e(r.currentImage).parent().css("display","block");e('img[src="'+r.currentImage.attr("src")+'"]',t).not(".nivo-main-image,.nivo-control img").width(t.width()).css("visibility","hidden").show();var i=e('img[src="'+r.currentImage.attr("src")+'"]',t).not(".nivo-main-image,.nivo-control img").parent().is("a")?e('img[src="'+r.currentImage.attr("src")+'"]',t).not(".nivo-main-image,.nivo-control img").parent().height():e('img[src="'+r.currentImage.attr("src")+'"]',t).not(".nivo-main-image,.nivo-control img").height();for(var s=0;s<n.slices;s++){var o=Math.round(t.width()/n.slices);if(s===n.slices-1){t.append(e('<div class="nivo-slice" name="'+s+'"><img src="'+r.currentImage.attr("src")+'" style="position:absolute; width:'+t.width()+"px; height:auto; display:block !important; top:0; left:-"+(o+s*o-o)+'px;" /></div>').css({left:o*s+"px",width:t.width()-o*s+"px",height:i+"px",opacity:"0",overflow:"hidden"}))}else{t.append(e('<div class="nivo-slice" name="'+s+'"><img src="'+r.currentImage.attr("src")+'" style="position:absolute; width:'+t.width()+"px; height:auto; display:block !important; top:0; left:-"+(o+s*o-o)+'px;" /></div>').css({left:o*s+"px",width:o+"px",height:i+"px",opacity:"0",overflow:"hidden"}))}}e(".nivo-slice",t).height(i);u.stop().animate({height:e(r.currentImage).height()},n.animSpeed)};var p=function(t,n,r){if(e(r.currentImage).parent().is("a"))e(r.currentImage).parent().css("display","block");e('img[src="'+r.currentImage.attr("src")+'"]',t).not(".nivo-main-image,.nivo-control img").width(t.width()).css("visibility","hidden").show();var i=Math.round(t.width()/n.boxCols),s=Math.round(e('img[src="'+r.currentImage.attr("src")+'"]',t).not(".nivo-main-image,.nivo-control img").height()/n.boxRows);for(var o=0;o<n.boxRows;o++){for(var a=0;a<n.boxCols;a++){if(a===n.boxCols-1){t.append(e('<div class="nivo-box" name="'+a+'" rel="'+o+'"><img src="'+r.currentImage.attr("src")+'" style="position:absolute; width:'+t.width()+"px; height:auto; display:block; top:-"+s*o+"px; left:-"+i*a+'px;" /></div>').css({opacity:0,left:i*a+"px",top:s*o+"px",width:t.width()-i*a+"px"}));e('.nivo-box[name="'+a+'"]',t).height(e('.nivo-box[name="'+a+'"] img',t).height()+"px")}else{t.append(e('<div class="nivo-box" name="'+a+'" rel="'+o+'"><img src="'+r.currentImage.attr("src")+'" style="position:absolute; width:'+t.width()+"px; height:auto; display:block; top:-"+s*o+"px; left:-"+i*a+'px;" /></div>').css({opacity:0,left:i*a+"px",top:s*o+"px",width:i+"px"}));e('.nivo-box[name="'+a+'"]',t).height(e('.nivo-box[name="'+a+'"] img',t).height()+"px")}}}u.stop().animate({height:e(r.currentImage).height()},n.animSpeed)};var d=function(t,n,r,i){var s=t.data("nivo:vars");if(s&&s.currentSlide===s.totalSlides-1){r.lastSlide.call(this)}if((!s||s.stop)&&!i){return false}r.beforeChange.call(this);if(!i){u.attr("src",s.currentImage.attr("src"))}else{if(i==="prev"){u.attr("src",s.currentImage.attr("src"))}if(i==="next"){u.attr("src",s.currentImage.attr("src"))}}s.currentSlide++;if(s.currentSlide===s.totalSlides){s.currentSlide=0;r.slideshowEnd.call(this)}if(s.currentSlide<0){s.currentSlide=s.totalSlides-1}if(e(n[s.currentSlide]).is("img")){s.currentImage=e(n[s.currentSlide])}else{s.currentImage=e(n[s.currentSlide]).find("img:first")}if(r.controlNav){e("a",s.controlNavEl).removeClass("active");e("a:eq("+s.currentSlide+")",s.controlNavEl).addClass("active")}a(r);e(".nivo-slice",t).remove();e(".nivo-box",t).remove();var o=r.effect,f="";if(r.effect==="random"){f=new Array("sliceDownRight","sliceDownLeft","sliceUpRight","sliceUpLeft","sliceUpDown","sliceUpDownLeft","fold","fade","boxRandom","boxRain","boxRainReverse","boxRainGrow","boxRainGrowReverse");o=f[Math.floor(Math.random()*(f.length+1))];if(o===undefined){o="fade"}}if(r.effect.indexOf(",")!==-1){f=r.effect.split(",");o=f[Math.floor(Math.random()*f.length)];if(o===undefined){o="fade"}}if(s.currentImage.attr("data-transition")){o=s.currentImage.attr("data-transition")}s.running=true;var l=0,c=0,d="",m="",g="",y="";if(o==="sliceDown"||o==="sliceDownRight"||o==="sliceDownLeft"){h(t,r,s);l=0;c=0;d=e(".nivo-slice",t);if(o==="sliceDownLeft"){d=e(".nivo-slice",t)._reverse()}d.each(function(){var n=e(this);n.css({top:"0px"});if(c===r.slices-1){setTimeout(function(){n.animate({opacity:"1.0"},r.animSpeed,"",function(){t.trigger("nivo:animFinished")})},100+l)}else{setTimeout(function(){n.animate({opacity:"1.0"},r.animSpeed)},100+l)}l+=50;c++})}else if(o==="sliceUp"||o==="sliceUpRight"||o==="sliceUpLeft"){h(t,r,s);l=0;c=0;d=e(".nivo-slice",t);if(o==="sliceUpLeft"){d=e(".nivo-slice",t)._reverse()}d.each(function(){var n=e(this);n.css({bottom:"0px"});if(c===r.slices-1){setTimeout(function(){n.animate({opacity:"1.0"},r.animSpeed,"",function(){t.trigger("nivo:animFinished")})},100+l)}else{setTimeout(function(){n.animate({opacity:"1.0"},r.animSpeed)},100+l)}l+=50;c++})}else if(o==="sliceUpDown"||o==="sliceUpDownRight"||o==="sliceUpDownLeft"){h(t,r,s);l=0;c=0;var b=0;d=e(".nivo-slice",t);if(o==="sliceUpDownLeft"){d=e(".nivo-slice",t)._reverse()}d.each(function(){var n=e(this);if(c===0){n.css("top","0px");c++}else{n.css("bottom","0px");c=0}if(b===r.slices-1){setTimeout(function(){n.animate({opacity:"1.0"},r.animSpeed,"",function(){t.trigger("nivo:animFinished")})},100+l)}else{setTimeout(function(){n.animate({opacity:"1.0"},r.animSpeed)},100+l)}l+=50;b++})}else if(o==="fold"){h(t,r,s);l=0;c=0;e(".nivo-slice",t).each(function(){var n=e(this);var i=n.width();n.css({top:"0px",width:"0px"});if(c===r.slices-1){setTimeout(function(){n.animate({width:i,opacity:"1.0"},r.animSpeed,"",function(){t.trigger("nivo:animFinished")})},100+l)}else{setTimeout(function(){n.animate({width:i,opacity:"1.0"},r.animSpeed)},100+l)}l+=50;c++})}else if(o==="fade"){h(t,r,s);m=e(".nivo-slice:first",t);m.css({width:t.width()+"px"});m.animate({opacity:"1.0"},r.animSpeed*2,"",function(){t.trigger("nivo:animFinished")})}else if(o==="slideInRight"){h(t,r,s);m=e(".nivo-slice:first",t);m.css({width:"0px",opacity:"1"});m.animate({width:t.width()+"px"},r.animSpeed*2,"",function(){t.trigger("nivo:animFinished")})}else if(o==="slideInLeft"){h(t,r,s);m=e(".nivo-slice:first",t);m.css({width:"0px",opacity:"1",left:"",right:"0px"});m.animate({width:t.width()+"px"},r.animSpeed*2,"",function(){m.css({left:"0px",right:""});t.trigger("nivo:animFinished")})}else if(o==="boxRandom"){p(t,r,s);g=r.boxCols*r.boxRows;c=0;l=0;y=v(e(".nivo-box",t));y.each(function(){var n=e(this);if(c===g-1){setTimeout(function(){n.animate({opacity:"1"},r.animSpeed,"",function(){t.trigger("nivo:animFinished")})},100+l)}else{setTimeout(function(){n.animate({opacity:"1"},r.animSpeed)},100+l)}l+=20;c++})}else if(o==="boxRain"||o==="boxRainReverse"||o==="boxRainGrow"||o==="boxRainGrowReverse"){p(t,r,s);g=r.boxCols*r.boxRows;c=0;l=0;var w=0;var E=0;var S=[];S[w]=[];y=e(".nivo-box",t);if(o==="boxRainReverse"||o==="boxRainGrowReverse"){y=e(".nivo-box",t)._reverse()}y.each(function(){S[w][E]=e(this);E++;if(E===r.boxCols){w++;E=0;S[w]=[]}});for(var x=0;x<r.boxCols*2;x++){var T=x;for(var N=0;N<r.boxRows;N++){if(T>=0&&T<r.boxCols){(function(n,i,s,u,a){var f=e(S[n][i]);var l=f.width();var c=f.height();if(o==="boxRainGrow"||o==="boxRainGrowReverse"){f.width(0).height(0)}if(u===a-1){setTimeout(function(){f.animate({opacity:"1",width:l,height:c},r.animSpeed/1.3,"",function(){t.trigger("nivo:animFinished")})},100+s)}else{setTimeout(function(){f.animate({opacity:"1",width:l,height:c},r.animSpeed/1.3)},100+s)}})(N,T,l,c,g);c++}T--}l+=100}}};var v=function(e){for(var t,n,r=e.length;r;t=parseInt(Math.random()*r,10),n=e[--r],e[r]=e[t],e[t]=n);return e};var m=function(e){if(this.console&&typeof console.log!=="undefined"){console.log(e)}};this.stop=function(){if(!e(t).data("nivo:vars").stop){e(t).data("nivo:vars").stop=true;m("Stop Slider")}};this.start=function(){if(e(t).data("nivo:vars").stop){e(t).data("nivo:vars").stop=false;m("Start Slider")}};r.afterLoad.call(this);return this};e.fn.nivoSlider=function(n){return this.each(function(r,i){var s=e(this);if(s.data("nivoslider")){return s.data("nivoslider")}var o=new t(this,n);s.data("nivoslider",o)})};e.fn.nivoSlider.defaults={effect:"random",slices:15,boxCols:8,boxRows:4,animSpeed:500,pauseTime:3e3,startSlide:0,directionNav:true,controlNav:true,controlNavThumbs:false,pauseOnHover:true,manualAdvance:false,prevText:"Prev",nextText:"Next",randomStart:false,beforeChange:function(){},afterChange:function(){},slideshowEnd:function(){},lastSlide:function(){},afterLoad:function(){}};e.fn._reverse=[].reverse})(jQuery)
|
@@ -0,0 +1,113 @@
|
|
1
|
+
/*
|
2
|
+
* jQuery Nivo Slider v3.2
|
3
|
+
* http://nivo.dev7studios.com
|
4
|
+
*
|
5
|
+
* Copyright 2012, Dev7studios
|
6
|
+
* Free to use and abuse under the MIT license.
|
7
|
+
* http://www.opensource.org/licenses/mit-license.php
|
8
|
+
*/
|
9
|
+
|
10
|
+
/* The Nivo Slider styles */
|
11
|
+
.nivoSlider {
|
12
|
+
position:relative;
|
13
|
+
width:100%;
|
14
|
+
height:auto;
|
15
|
+
overflow: hidden;
|
16
|
+
}
|
17
|
+
.nivoSlider img {
|
18
|
+
position:absolute;
|
19
|
+
top:0px;
|
20
|
+
left:0px;
|
21
|
+
max-width: none;
|
22
|
+
}
|
23
|
+
.nivo-main-image {
|
24
|
+
display: block !important;
|
25
|
+
position: relative !important;
|
26
|
+
width: 100% !important;
|
27
|
+
}
|
28
|
+
|
29
|
+
/* If an image is wrapped in a link */
|
30
|
+
.nivoSlider a.nivo-imageLink {
|
31
|
+
position:absolute;
|
32
|
+
top:0px;
|
33
|
+
left:0px;
|
34
|
+
width:100%;
|
35
|
+
height:100%;
|
36
|
+
border:0;
|
37
|
+
padding:0;
|
38
|
+
margin:0;
|
39
|
+
z-index:6;
|
40
|
+
display:none;
|
41
|
+
background:white;
|
42
|
+
filter:alpha(opacity=0);
|
43
|
+
opacity:0;
|
44
|
+
}
|
45
|
+
/* The slices and boxes in the Slider */
|
46
|
+
.nivo-slice {
|
47
|
+
display:block;
|
48
|
+
position:absolute;
|
49
|
+
z-index:5;
|
50
|
+
height:100%;
|
51
|
+
top:0;
|
52
|
+
}
|
53
|
+
.nivo-box {
|
54
|
+
display:block;
|
55
|
+
position:absolute;
|
56
|
+
z-index:5;
|
57
|
+
overflow:hidden;
|
58
|
+
}
|
59
|
+
.nivo-box img { display:block; }
|
60
|
+
|
61
|
+
/* Caption styles */
|
62
|
+
.nivo-caption {
|
63
|
+
position:absolute;
|
64
|
+
left:0px;
|
65
|
+
bottom:0px;
|
66
|
+
background:#000;
|
67
|
+
color:#fff;
|
68
|
+
width:100%;
|
69
|
+
z-index:8;
|
70
|
+
padding: 5px 10px;
|
71
|
+
opacity: 0.8;
|
72
|
+
overflow: hidden;
|
73
|
+
display: none;
|
74
|
+
-moz-opacity: 0.8;
|
75
|
+
filter:alpha(opacity=8);
|
76
|
+
-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
|
77
|
+
-moz-box-sizing: border-box; /* Firefox, other Gecko */
|
78
|
+
box-sizing: border-box; /* Opera/IE 8+ */
|
79
|
+
}
|
80
|
+
.nivo-caption p {
|
81
|
+
padding:5px;
|
82
|
+
margin:0;
|
83
|
+
}
|
84
|
+
.nivo-caption a {
|
85
|
+
display:inline !important;
|
86
|
+
}
|
87
|
+
.nivo-html-caption {
|
88
|
+
display:none;
|
89
|
+
}
|
90
|
+
/* Direction nav styles (e.g. Next & Prev) */
|
91
|
+
.nivo-directionNav a {
|
92
|
+
position:absolute;
|
93
|
+
top:45%;
|
94
|
+
z-index:9;
|
95
|
+
cursor:pointer;
|
96
|
+
}
|
97
|
+
.nivo-prevNav {
|
98
|
+
left:0px;
|
99
|
+
}
|
100
|
+
.nivo-nextNav {
|
101
|
+
right:0px;
|
102
|
+
}
|
103
|
+
/* Control nav styles (e.g. 1,2,3...) */
|
104
|
+
.nivo-controlNav {
|
105
|
+
text-align:center;
|
106
|
+
padding: 15px 0;
|
107
|
+
}
|
108
|
+
.nivo-controlNav a {
|
109
|
+
cursor:pointer;
|
110
|
+
}
|
111
|
+
.nivo-controlNav a.active {
|
112
|
+
font-weight:bold;
|
113
|
+
}
|
@@ -0,0 +1,93 @@
|
|
1
|
+
/*
|
2
|
+
Skin Name: Nivo Slider Default Theme
|
3
|
+
Skin URI: http://nivo.dev7studios.com
|
4
|
+
Description: The default skin for the Nivo Slider.
|
5
|
+
Version: 1.3
|
6
|
+
Author: Gilbert Pellegrom
|
7
|
+
Author URI: http://dev7studios.com
|
8
|
+
Supports Thumbs: true
|
9
|
+
*/
|
10
|
+
|
11
|
+
.theme-default .nivoSlider {
|
12
|
+
position:relative;
|
13
|
+
background:#fff url(/assets/loading.gif) no-repeat 50% 50%;
|
14
|
+
margin-bottom:10px;
|
15
|
+
-webkit-box-shadow: 0px 1px 5px 0px #4a4a4a;
|
16
|
+
-moz-box-shadow: 0px 1px 5px 0px #4a4a4a;
|
17
|
+
box-shadow: 0px 1px 5px 0px #4a4a4a;
|
18
|
+
}
|
19
|
+
.theme-default .nivoSlider img {
|
20
|
+
position:absolute;
|
21
|
+
top:0px;
|
22
|
+
left:0px;
|
23
|
+
display:none;
|
24
|
+
}
|
25
|
+
.theme-default .nivoSlider a {
|
26
|
+
border:0;
|
27
|
+
display:block;
|
28
|
+
}
|
29
|
+
|
30
|
+
.theme-default .nivo-controlNav {
|
31
|
+
text-align: center;
|
32
|
+
padding: 20px 0;
|
33
|
+
}
|
34
|
+
.theme-default .nivo-controlNav a {
|
35
|
+
display:inline-block;
|
36
|
+
width:22px;
|
37
|
+
height:22px;
|
38
|
+
background:url(/assets/bullets.png) no-repeat;
|
39
|
+
text-indent:-9999px;
|
40
|
+
border:0;
|
41
|
+
margin: 0 2px;
|
42
|
+
}
|
43
|
+
.theme-default .nivo-controlNav a.active {
|
44
|
+
background-position:0 -22px;
|
45
|
+
}
|
46
|
+
|
47
|
+
.theme-default .nivo-directionNav a {
|
48
|
+
display:block;
|
49
|
+
width:30px;
|
50
|
+
height:30px;
|
51
|
+
background:url(arrows.png) no-repeat;
|
52
|
+
text-indent:-9999px;
|
53
|
+
border:0;
|
54
|
+
opacity: 0;
|
55
|
+
-webkit-transition: all 200ms ease-in-out;
|
56
|
+
-moz-transition: all 200ms ease-in-out;
|
57
|
+
-o-transition: all 200ms ease-in-out;
|
58
|
+
transition: all 200ms ease-in-out;
|
59
|
+
}
|
60
|
+
.theme-default:hover .nivo-directionNav a { opacity: 1; }
|
61
|
+
.theme-default a.nivo-nextNav {
|
62
|
+
background-position:-30px 0;
|
63
|
+
right:15px;
|
64
|
+
}
|
65
|
+
.theme-default a.nivo-prevNav {
|
66
|
+
left:15px;
|
67
|
+
}
|
68
|
+
|
69
|
+
.theme-default .nivo-caption {
|
70
|
+
font-family: Helvetica, Arial, sans-serif;
|
71
|
+
}
|
72
|
+
.theme-default .nivo-caption a {
|
73
|
+
color:#fff;
|
74
|
+
border-bottom:1px dotted #fff;
|
75
|
+
}
|
76
|
+
.theme-default .nivo-caption a:hover {
|
77
|
+
color:#fff;
|
78
|
+
}
|
79
|
+
|
80
|
+
.theme-default .nivo-controlNav.nivo-thumbs-enabled {
|
81
|
+
width: 100%;
|
82
|
+
}
|
83
|
+
.theme-default .nivo-controlNav.nivo-thumbs-enabled a {
|
84
|
+
width: auto;
|
85
|
+
height: auto;
|
86
|
+
background: none;
|
87
|
+
margin-bottom: 5px;
|
88
|
+
}
|
89
|
+
.theme-default .nivo-controlNav.nivo-thumbs-enabled img {
|
90
|
+
display: block;
|
91
|
+
width: 120px;
|
92
|
+
height: auto;
|
93
|
+
}
|
metadata
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: nivo_slider
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Erfan Mansuri
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-11-01 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Nivo slider gem user to create slider
|
14
|
+
email: erfan.m@cisinlabs.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/nivo_slider.rb
|
20
|
+
- lib/nivo_slider/assert_select.rb
|
21
|
+
- lib/nivo_slider/rails/railtie.rb
|
22
|
+
- lib/nivo_slider/rails/engine.rb
|
23
|
+
- lib/nivo_slider/rails.rb
|
24
|
+
- lib/generators/nivo_slider/install/install_generator.rb
|
25
|
+
- lib/generators/nivo_slider/install/USAGE
|
26
|
+
- vendor/assets/javascripts/jquery.nivo.slider.js
|
27
|
+
- vendor/assets/javascripts/jquery.nivo.slider.pack.js
|
28
|
+
- vendor/assets/images/arrows.png
|
29
|
+
- vendor/assets/images/bullets.png
|
30
|
+
- vendor/assets/images/loading.gif
|
31
|
+
- vendor/assets/stylesheets/nivo_default.css
|
32
|
+
- vendor/assets/stylesheets/nivo-slider.css
|
33
|
+
- README.md
|
34
|
+
homepage: ''
|
35
|
+
licenses:
|
36
|
+
- MIT
|
37
|
+
metadata: {}
|
38
|
+
post_install_message:
|
39
|
+
rdoc_options: []
|
40
|
+
require_paths:
|
41
|
+
- lib
|
42
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ! '>='
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - ! '>='
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: 1.3.6
|
52
|
+
requirements: []
|
53
|
+
rubyforge_project:
|
54
|
+
rubygems_version: 2.1.5
|
55
|
+
signing_key:
|
56
|
+
specification_version: 4
|
57
|
+
summary: Nivo slider gem used to create nivo slider using its jquery librery
|
58
|
+
test_files: []
|