mirror of
https://gitlab.com/harald.mueller/aktuelle.kurse.git
synced 2024-11-27 20:21:56 +01:00
209 lines
4.7 KiB
JavaScript
209 lines
4.7 KiB
JavaScript
mybutton = document.getElementById("myBtn");
|
|
|
|
// When the user scrolls down 20px from the top of the document, show the button
|
|
window.onscroll = function () {
|
|
scrollFunction()
|
|
};
|
|
|
|
function scrollFunction() {
|
|
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
|
|
mybutton.style.display = "block";
|
|
} else {
|
|
mybutton.style.display = "none";
|
|
}
|
|
}
|
|
|
|
// When the user clicks on the button, scroll to the top of the document
|
|
|
|
function topFunction() {
|
|
document.body.scrollTop = 0; // For Safari
|
|
document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
|
|
}
|
|
|
|
//When the user click on the link and hide,scroll to the document
|
|
|
|
$(function () {
|
|
var navMain = $(".navbar-collapse");
|
|
|
|
navMain.on("click", "a", null, function () {
|
|
navMain.collapse('hide');
|
|
});
|
|
});
|
|
|
|
|
|
// header fixed on scroll
|
|
|
|
$(window).on("scroll", function () {
|
|
if ($(window).scrollTop() > 50) {
|
|
$("header").addClass("active");
|
|
} else {
|
|
//remove the background property so it comes transparent again (defined in your css)
|
|
$("header").removeClass("active");
|
|
}
|
|
});
|
|
|
|
|
|
//animate.aos
|
|
|
|
$(document).ready(function ($) {
|
|
if (screen.width > 1024) {
|
|
AOS.init({
|
|
easing: 'ease-in-out-sine',
|
|
once: true,
|
|
});
|
|
}
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// owl-carousel
|
|
|
|
$(document).ready(function () {
|
|
$(".owl-test").owlCarousel({
|
|
items: 2,
|
|
center: true,
|
|
loop: true,
|
|
itemsTablet: [768, 1],
|
|
pagination: true,
|
|
autoPlay: true,
|
|
dots: true,
|
|
responsive: {
|
|
0: {
|
|
items: 1
|
|
},
|
|
600: {
|
|
items: 2
|
|
},
|
|
1366: {
|
|
dotsEach: 3,
|
|
items: 3
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
// carousel
|
|
|
|
$('.carousel.carousel-multi-item.v-2 .carousel-item').each(function () {
|
|
var next = $(this).next();
|
|
if (!next.length) {
|
|
next = $(this).siblings(':first');
|
|
}
|
|
next.children(':first-child').clone().appendTo($(this));
|
|
|
|
for (var i = 0; i < 4; i++) {
|
|
next = next.next();
|
|
if (!next.length) {
|
|
next = $(this).siblings(':first');
|
|
}
|
|
next.children(':first-child').clone().appendTo($(this));
|
|
}
|
|
});
|
|
|
|
|
|
|
|
// counting
|
|
|
|
(function ($) {
|
|
$.fn.countTo = function (options) {
|
|
options = options || {};
|
|
|
|
return $(this).each(function () {
|
|
// set options for current element
|
|
var settings = $.extend({}, $.fn.countTo.defaults, {
|
|
from: $(this).data('from'),
|
|
to: $(this).data('to'),
|
|
speed: $(this).data('speed'),
|
|
refreshInterval: $(this).data('refresh-interval'),
|
|
decimals: $(this).data('decimals')
|
|
}, options);
|
|
|
|
// how many times to update the value, and how much to increment the value on each update
|
|
var loops = Math.ceil(settings.speed / settings.refreshInterval),
|
|
increment = (settings.to - settings.from) / loops;
|
|
|
|
// references & variables that will change with each update
|
|
var self = this,
|
|
$self = $(this),
|
|
loopCount = 0,
|
|
value = settings.from,
|
|
data = $self.data('countTo') || {};
|
|
|
|
$self.data('countTo', data);
|
|
|
|
// if an existing interval can be found, clear it first
|
|
if (data.interval) {
|
|
clearInterval(data.interval);
|
|
}
|
|
data.interval = setInterval(updateTimer, settings.refreshInterval);
|
|
|
|
// initialize the element with the starting value
|
|
render(value);
|
|
|
|
function updateTimer() {
|
|
value += increment;
|
|
loopCount++;
|
|
|
|
render(value);
|
|
|
|
if (typeof (settings.onUpdate) == 'function') {
|
|
settings.onUpdate.call(self, value);
|
|
}
|
|
|
|
if (loopCount >= loops) {
|
|
// remove the interval
|
|
$self.removeData('countTo');
|
|
clearInterval(data.interval);
|
|
value = settings.to;
|
|
|
|
if (typeof (settings.onComplete) == 'function') {
|
|
settings.onComplete.call(self, value);
|
|
}
|
|
}
|
|
}
|
|
|
|
function render(value) {
|
|
var formattedValue = settings.formatter.call(self, value, settings);
|
|
$self.html(formattedValue);
|
|
}
|
|
});
|
|
};
|
|
|
|
$.fn.countTo.defaults = {
|
|
from: 0, // the number the element should start at
|
|
to: 0, // the number the element should end at
|
|
speed: 1000, // how long it should take to count between the target numbers
|
|
refreshInterval: 100, // how often the element should be updated
|
|
decimals: 0, // the number of decimal places to show
|
|
formatter: formatter, // handler for formatting the value before rendering
|
|
onUpdate: null, // callback method for every time the element is updated
|
|
onComplete: null // callback method for when the element finishes updating
|
|
};
|
|
|
|
function formatter(value, settings) {
|
|
return value.toFixed(settings.decimals);
|
|
}
|
|
}(jQuery));
|
|
|
|
jQuery(function ($) {
|
|
// custom formatting example
|
|
$('.count-number').data('countToOptions', {
|
|
formatter: function (value, options) {
|
|
return value.toFixed(options.decimals).replace(/\B(?=(?:\d{3})+(?!\d))/g, ',');
|
|
}
|
|
});
|
|
|
|
// start all the timers
|
|
$('.timer').each(count);
|
|
|
|
function count(options) {
|
|
var $this = $(this);
|
|
options = $.extend({}, options || {}, $this.data('countToOptions') || {});
|
|
$this.countTo(options);
|
|
}
|
|
});
|