Files
website/js/common.js

114 lines
4.1 KiB
JavaScript

var start = false;
var slideWidth = 3;
var animationTime = 40;
$(function () {
$(document).tooltip(
{
tooltipClass: 'custom-tooltip'
});
});
$(document).ready(function () {
/* Subnavigation: Fix für überbreite Navigation */
var outerWidth = $('#navi_sub').innerWidth();
var width = 0;
var mainElem = $('ul', '#navi_sub');
$('li', mainElem).each(function (key, elem) {
width += $(elem).innerWidth() + 1;
});
if (width > outerWidth) {
mainElem.innerWidth(width);
$('<div class="sliderLeft grid_3col"><div class="sliderLeft_inner grid_1col"/></div>').insertBefore(mainElem);
$('<div class="sliderRight grid_3col"><div class="sliderRight_inner grid_1col"/></div>').insertBefore(mainElem);
mainElem.css({
'margin-left': $('.sliderLeft', '#navi_sub').innerWidth(),
'margin-right': $('.sliderRight', '#navi_sub').innerWidth()
});
}
$('body').on('mouseenter', '.sliderRight_inner', function () {
start = true;
fnc_startAnimation($('#navi_sub'), mainElem, 'left');
});
$('body').on('mouseleave', '.sliderRight', function () {
start = false;
});
$('body').on('mouseenter', '.sliderLeft_inner', function () {
start = true;
fnc_startAnimation($('#navi_sub'), mainElem, 'right');
});
$('body').on('mouseleave', '.sliderLeft', function () {
start = false;
});
if (typeof(editor) === 'undefined' && $('#galeryslider').length !== 0) {
$('.keyvisual').css({cursor: 'pointer'});
$('.keyvisual').on('click', 'img', function () {
$('#galeryslider').show();
});
}
/* Scroll - Event für Navigationselemente: Position fixed */
var display = false;
var sub_outer = $('#navi_sub_outer').clone();
var last_outer = $('#navi_last_outer').clone();
sub_outer.css({'position': 'fixed', 'top': parseInt($('#navi_main_outer').css('height')), 'z-index': 3, 'display': 'none'});
last_outer.css({
'position': 'fixed',
'top': parseInt($('#navi_main_outer').css('height')) + parseInt($('#navi_sub_outer').css('height')),
'z-index': 3,
'display': 'none'
});
sub_outer.appendTo('body');
last_outer.appendTo('body');
$(window).on('scroll', function () {
var offsetBody = $(window).scrollTop() + parseInt($('#navi_main_outer').css('height'));
var offsetNavi = ( $('#navi_sub_outer').position() )
? $('#navi_sub_outer').position().top
: 0;
if (display === false && offsetBody >= offsetNavi) {
display = true;
sub_outer.show();
last_outer.show();
}
else if (display === true && offsetBody <= offsetNavi) {
display = false;
sub_outer.hide();
last_outer.hide();
}
});
});
function fnc_startAnimation(outerElem, innerElem, direction) {
if (start === true) {
outerElemWidth = outerElem.innerWidth();
innerElemWidth = innerElem.innerWidth() + parseFloat(innerElem.css('margin-left')) + parseFloat(innerElem.css('margin-right'));
if (direction === 'left') {
if (outerElemWidth < innerElemWidth) {
innerElem.css({'margin-left': parseFloat(innerElem.css('margin-left')) - slideWidth});
setTimeout(function () {
fnc_startAnimation(outerElem, innerElem, direction);
}, animationTime);
}
else {
start = false;
}
}
if (direction === 'right') {
maxWidth = innerElem.innerWidth() + $('.sliderLeft', outerElem).innerWidth() + $('.sliderRight', outerElem).innerWidth();
if (maxWidth > innerElemWidth) {
innerElem.css({'margin-left': parseFloat(innerElem.css('margin-left')) + slideWidth});
setTimeout(function () {
fnc_startAnimation(outerElem, innerElem, direction);
}, animationTime);
}
else {
start = false;
}
}
}
}