-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsimplenav.js
103 lines (89 loc) · 3.51 KB
/
simplenav.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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/* =======================================================================================================
simpleNav4
Written By Jody Tunnicliff
=========================================================================================================== */
(function( $ ) {
$.fn.simpleNav = function(options) {
/* ================================================================================================ */
/* Set the default options ================================================================== */
/* ================================================================================================ */
var settings = $.extend( {
'fx' : 'slide',
'speed' : 500,
'full' : true,
'edge2edge' : false
}, options);
/* ================================================================================================ */
/* Set width's on each nav item to span the full width ===================================== */
/* ================================================================================================ */
if(settings.full){
var totalmenuwidth = 0;
var numitems = $(this).children('li').length;
if(settings.edge2edge){
numitems--;
}
$(this).children('li').each(function() {
totalmenuwidth += $(this).width();
});
var itemwidth = parseInt(($(this).width() - totalmenuwidth) / (numitems));
var widthchange=0;
$(this).children('li').each(function() {
widthchange=itemwidth;
if(settings.edge2edge){
if($(this).is(':first-child')) {
widthchange=widthchange/2;
$(this).children('a').css({"text-align":"left"});
}
if($(this).is(':last-child')) {
widthchange=widthchange/2;
$(this).children('a').css({"text-align":"right"});
}
}
$(this).children('a').css({ "width":$(this).width()+widthchange, "padding-left":"0", "padding-right":"0" });
});
}
/* ================================================================================================ */
/* Make the drop downs work ================================================================== */
/* ================================================================================================ */
switch(settings.fx)
{
case "slide":
var fxin='slideDown';
var fxout='slideUp';
break;
case "fade":
var fxin='fadeIn';
var fxout='fadeOut';
break;
case "none":
var fxin='show';
var fxout='hide';
settings.speed=0;
break;
default:
var fxin='slideDown';
var fxout='slideUp';
break;
}
$(this).find('li').hover(
function(e1) {
$(this).children("ul").stop(true,true)[fxin](settings.speed);
e1.preventDefault();
},
function(e2) {
$(this).children("ul").stop(true,true).delay(250)[fxout](settings.speed);
e2.preventDefault();
}
);
/* ================================================================================================ */
/* Make the drop downs work on touch devices ================================================== */
/* ================================================================================================ */
try {
element.addEventListener( "touchstart", function(e){ onStart(e); }, false );
function onStart ( touchEvent ) {
touchEvent.preventDefault();
}
}
catch(err){}
};
})( jQuery );