$(function() { var html = $('html'); // Detections if (!("ontouchstart" in window)) { html.addClass("noTouch"); } if ("ontouchstart" in window) { html.addClass("isTouch"); } if ("ontouchstart" in window) { html.addClass("isTouch"); } if (document.documentMode || /Edge/.test(navigator.userAgent)) { if (navigator.appVersion.indexOf("Trident") === -1) { html.addClass("isEDGE"); } else { html.addClass("isIE isIE11"); } } if (navigator.appVersion.indexOf("MSIE") !== -1) { html.addClass("isIE"); } if ( navigator.userAgent.indexOf("Safari") != -1 && navigator.userAgent.indexOf("Chrome") == -1 ) { html.addClass("isSafari"); } // On Screen $.fn.isOnScreen = function() { var elementTop = $(this).offset().top, elementBottom = elementTop + $(this).outerHeight(), viewportTop = $(window).scrollTop(), viewportBottom = viewportTop + $(window).height(); return elementBottom > viewportTop && elementTop < viewportBottom; }; function detection() { for (var i = 0; i < items.length; i++) { var el = $(items[i]); var Repeat_is=items[i].getAttribute("data-detect-repeat"); if (el.isOnScreen()) { el.addClass("in-view"); } else { if(Repeat_is!="N"){ el.removeClass("in-view"); } } } } var items = document.querySelectorAll( "*[data-animate-in], *[data-detect-viewport], *[data-detect-repeat] , *[data-animate-mobile-size] , *[data-animate-mobile-in-delay]" ), waiting = false, w = $(window); w.on("resize scroll", function() { if (waiting) { return; } waiting = true; detection(); setTimeout(function() { waiting = false; }, 100); }); $(document).ready(function() { setTimeout(function() { detection(); }, 500); for (var i = 0; i < items.length; i++) { var d = 0, el = $(items[i]); var ViewSize=document.body.clientWidth; if (items[i].getAttribute("data-animate-mobile-size") && ViewSize<= items[i].getAttribute("data-animate-mobile-size")) { if (items[i].getAttribute("data-animate-mobile-in-delay")) { d = items[i].getAttribute("data-animate-mobile-in-delay") / 1000 + "s"; } else{ if(items[i].getAttribute("data-animate-in-delay")){ d = items[i].getAttribute("data-animate-in-delay") / 1000 + "s"; }else{ d = 0; } } }else{ if (items[i].getAttribute("data-animate-in-delay")) { d = items[i].getAttribute("data-animate-in-delay") / 1000 + "s"; } else { d = 0; } } el.css("transition-delay", d); } }); });