mirror of
https://github.com/dawidolko/Website-Templates.git
synced 2026-03-22 13:42:19 +00:00
Website templates
This commit is contained in:
124
eat-restaurant-bootstrap-html5-template/js/menustick.js
Normal file
124
eat-restaurant-bootstrap-html5-template/js/menustick.js
Normal file
@@ -0,0 +1,124 @@
|
||||
jQuery(
|
||||
function($) {
|
||||
|
||||
$(document).ready(function(){
|
||||
var contentButton = [];
|
||||
var contentTop = [];
|
||||
var content = [];
|
||||
var lastScrollTop = 0;
|
||||
var scrollDir = '';
|
||||
var itemClass = '';
|
||||
var itemHover = '';
|
||||
var menuSize = null;
|
||||
var stickyHeight = 0;
|
||||
var stickyMarginB = 0;
|
||||
var currentMarginT = 0;
|
||||
var topMargin = 0;
|
||||
$(window).scroll(function(event){
|
||||
var st = $(this).scrollTop();
|
||||
if (st > lastScrollTop){
|
||||
scrollDir = 'down';
|
||||
} else {
|
||||
scrollDir = 'up';
|
||||
}
|
||||
lastScrollTop = st;
|
||||
});
|
||||
$.fn.stickUp = function( options ) {
|
||||
// adding a class to users div
|
||||
$(this).addClass('stuckMenu');
|
||||
//getting options
|
||||
var objn = 0;
|
||||
if(options != null) {
|
||||
for(var o in options.parts) {
|
||||
if (options.parts.hasOwnProperty(o)){
|
||||
content[objn] = options.parts[objn];
|
||||
objn++;
|
||||
}
|
||||
}
|
||||
if(objn == 0) {
|
||||
console.log('error:needs arguments');
|
||||
}
|
||||
|
||||
itemClass = options.itemClass;
|
||||
itemHover = options.itemHover;
|
||||
if(options.topMargin != null) {
|
||||
if(options.topMargin == 'auto') {
|
||||
topMargin = parseInt($('.stuckMenu').css('margin-top'));
|
||||
} else {
|
||||
if(isNaN(options.topMargin) && options.topMargin.search("px") > 0){
|
||||
topMargin = parseInt(options.topMargin.replace("px",""));
|
||||
} else if(!isNaN(parseInt(options.topMargin))) {
|
||||
topMargin = parseInt(options.topMargin);
|
||||
} else {
|
||||
console.log("incorrect argument, ignored.");
|
||||
topMargin = 0;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
topMargin = 0;
|
||||
}
|
||||
menuSize = $('.'+itemClass).size();
|
||||
}
|
||||
stickyHeight = parseInt($(this).height());
|
||||
stickyMarginB = parseInt($(this).css('margin-bottom'));
|
||||
currentMarginT = parseInt($(this).next().closest('div').css('margin-top'));
|
||||
vartop = parseInt($(this).offset().top);
|
||||
//$(this).find('*').removeClass(itemHover);
|
||||
}
|
||||
$(document).on('scroll', function() {
|
||||
varscroll = parseInt($(document).scrollTop());
|
||||
if(menuSize != null){
|
||||
for(var i=0;i < menuSize;i++)
|
||||
{
|
||||
contentTop[i] = $('#'+content[i]+'').offset().top;
|
||||
function bottomView(i) {
|
||||
contentView = $('#'+content[i]+'').height()*.4;
|
||||
testView = contentTop[i] - contentView;
|
||||
//console.log(varscroll);
|
||||
if(varscroll > testView){
|
||||
$('.'+itemClass).removeClass(itemHover);
|
||||
$('.'+itemClass+':eq('+i+')').addClass(itemHover);
|
||||
} else if(varscroll < 100){
|
||||
$('.'+itemClass).removeClass(itemHover);
|
||||
$('.'+itemClass+':eq(0)').addClass(itemHover);
|
||||
}
|
||||
}
|
||||
if(scrollDir == 'down' && varscroll > contentTop[i]-100 && varscroll < contentTop[i]+100) {
|
||||
$('.'+itemClass).removeClass(itemHover);
|
||||
$('.'+itemClass+':eq('+i+')').addClass(itemHover);
|
||||
}
|
||||
if(scrollDir == 'up') {
|
||||
bottomView(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(vartop < varscroll + topMargin){
|
||||
$('.wrapper').addClass('spHeight');
|
||||
$('.stuckMenu').addClass('isFixed');
|
||||
$('.stuckMenu').next().closest('div').css({
|
||||
'margin-top': stickyHeight + stickyMarginB + currentMarginT + 'px'
|
||||
}, 10);
|
||||
$('.stuckMenu').css("position","fixed");
|
||||
$('.isFixed').css({
|
||||
top: '0px'
|
||||
}, 10, function(){
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
if(varscroll + topMargin < vartop){
|
||||
$('.wrapper').removeClass('spHeight');
|
||||
$('.stuckMenu').removeClass('isFixed');
|
||||
$('.stuckMenu').next().closest('div').css({
|
||||
'margin-top': currentMarginT + 'px'
|
||||
}, 10);
|
||||
$('.stuckMenu').css("position","relative");
|
||||
};
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user