-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy pathslidernav.js
executable file
·39 lines (39 loc) · 2.16 KB
/
slidernav.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*
* SliderNav - A Simple Content Slider with a Navigation Bar
* Copyright 2015 Monji Dolon, http://mdolon.com/
* Released under the MIT, BSD, and GPL Licenses.
* More information: http://devgrow.com/slidernav
*/
$.fn.sliderNav = function(options) {
var defaults = { items: ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"], debug: false, height: null, arrows: true, event: 'mouseover'};
var opts = $.extend(defaults, options); var o = $.meta ? $.extend({}, opts, $$.data()) : opts; var slider = $(this); $(slider).addClass('slider');
$('.slider-content li:first', slider).addClass('selected');
$(slider).append('<div class="slider-nav"><ul></ul></div>');
for(var i = 0; i < o.items.length; ++i) $('.slider-nav ul', slider).append("<li><a alt='#"+o.items[i]+"'>"+o.items[i]+"</a></li>");
var height = $('.slider-nav', slider).height();
if(o.height) height = o.height;
$('.slider-content, .slider-nav', slider).css('height',height);
if(o.debug) $(slider).append('<div id="debug">Scroll Offset: <span>0</span></div>');
$('.slider-nav a', slider).on(opts.event, function(event){
var target = $(this).attr('alt');
var cOffset = $('.slider-content', slider).offset().top;
var tOffset = $('.slider-content '+target, slider).offset().top;
var height = $('.slider-nav', slider).height(); if(o.height) height = o.height;
var pScroll = (tOffset - cOffset) - height/8;
$('.slider-content li', slider).removeClass('selected');
$(target).addClass('selected');
$('.slider-content', slider).stop().animate({scrollTop: '+=' + pScroll + 'px'});
if(o.debug) $('#debug span', slider).html(tOffset);
});
if(o.arrows){
$('.slider-nav',slider).css('top','20px');
$(slider).prepend('<div class="slide-up end"><span class="arrow up"></span></div>');
$(slider).append('<div class="slide-down"><span class="arrow down"></span></div>');
$('.slide-down',slider).click(function(){
$('.slider-content',slider).animate({scrollTop : "+="+height+"px"}, 500);
});
$('.slide-up',slider).click(function(){
$('.slider-content',slider).animate({scrollTop : "-="+height+"px"}, 500);
});
}
};