New page data
This commit is contained in:
+11
File diff suppressed because one or more lines are too long
Vendored
+11
File diff suppressed because one or more lines are too long
Vendored
+11
File diff suppressed because one or more lines are too long
Vendored
+5
File diff suppressed because one or more lines are too long
Vendored
+2
File diff suppressed because one or more lines are too long
+104
@@ -0,0 +1,104 @@
|
||||
/**
|
||||
* JQuery Simple MobileMenu
|
||||
* Copyright (c) 2017 Position2 Inc.
|
||||
* Licensed under MIT (http://opensource.org/licenses/MIT)
|
||||
* https://github.com/Position2/jQuery-Simple-MobileMenu
|
||||
*/
|
||||
|
||||
(function($) {
|
||||
var defaults = {
|
||||
"hamburgerId": "sm_menu_ham", //Hamburger Id
|
||||
"wrapperClass": "sm_menu_outer", //Menu Wrapper Class
|
||||
"submenuClass": "sub-menu", //Submenu Class
|
||||
"menuStyle": "slide", //Menu Style
|
||||
"onMenuLoad": function() { return true; }, //Calls when menu loaded
|
||||
"onMenuToggle": function() { return true; } //Calls when menu open/close
|
||||
};
|
||||
$.fn.simpleMobileMenu = function(options) {
|
||||
if (this.length === 0) { return this; }
|
||||
var smMenu = {},
|
||||
ds = $(this);
|
||||
var init = function() {
|
||||
smMenu.settings = $.extend({}, defaults, options);
|
||||
smMenu.styleClass = smMenu.settings.menuStyle.toLowerCase() === 'slide' ? "slide" : "accordion";
|
||||
// Create Wrapper div & hamburger
|
||||
createWrapper_Ham();
|
||||
// Create Back Menu for each sub menu
|
||||
createBackButton();
|
||||
// Callback - Menu loaded
|
||||
if (typeof smMenu.settings.onMenuLoad == 'function') {
|
||||
smMenu.settings.onMenuLoad(ds);
|
||||
}
|
||||
},
|
||||
createWrapper_Ham = function() {
|
||||
smMenu.hamburger = $("<div/>", {
|
||||
"id": smMenu.settings.hamburgerId,
|
||||
"html": "<span></span><span></span><span></span><span></span>"
|
||||
}),
|
||||
smMenu.smmOuter = $("<div/>", { "class": smMenu.settings.wrapperClass+" "+smMenu.styleClass });
|
||||
ds.appendTo(smMenu.smmOuter);
|
||||
smMenu.hamburger.add(smMenu.smmOuter).appendTo($("body"));
|
||||
},
|
||||
createBackButton = function() {
|
||||
smMenu.smmOuter.find("ul." + smMenu.settings.submenuClass).each(function() {
|
||||
var dis = $(this),
|
||||
disPar = dis.closest("li"),
|
||||
disfA = disPar.find("> a"),
|
||||
disBack = $("<li/>", {
|
||||
"class": "back",
|
||||
"html": "<a href='#'>" + disfA.text() + "</a>"
|
||||
})
|
||||
disPar.addClass("hasChild");
|
||||
if(smMenu.settings.menuStyle.toLowerCase() === 'slide') {
|
||||
disBack.prependTo(dis);
|
||||
}
|
||||
});
|
||||
},
|
||||
toggleMobileMenu = function(e) {
|
||||
$("#" + smMenu.settings.hamburgerId).toggleClass("open");
|
||||
$("." + smMenu.settings.wrapperClass).toggleClass("active").find("li.active").removeClass("active");
|
||||
$("body").toggleClass("mmactive");
|
||||
if(smMenu.settings.menuStyle.toLowerCase() === 'accordion') {
|
||||
$("."+smMenu.settings.wrapperClass).find("ul."+smMenu.settings.submenuClass).hide();
|
||||
}
|
||||
// Callback - Menu Toggle
|
||||
if (typeof smMenu.settings.onMenuToggle == 'function') {
|
||||
smMenu.settings.onMenuToggle(ds, $("#" + smMenu.settings.hamburgerId).hasClass("open"));
|
||||
}
|
||||
},
|
||||
showSlideSubMenu = function(e) {
|
||||
$("." + smMenu.settings.wrapperClass).scrollTop(0);
|
||||
$(this).parent().addClass("active").siblings().removeClass("active");
|
||||
},
|
||||
showAccordionSubMenu = function(e) {
|
||||
e.preventDefault();
|
||||
var dis = $(this),
|
||||
dispar = $(this).parent(),
|
||||
lastActive = dispar.siblings(".active");
|
||||
dispar.find("> ."+smMenu.settings.submenuClass).slideToggle(function() {
|
||||
if ($(this).is(":visible")) {
|
||||
var offset = dis[0].offsetTop;
|
||||
$("." + smMenu.settings.wrapperClass).stop().animate({ scrollTop: offset }, 300);
|
||||
}
|
||||
});
|
||||
lastActive.find("ul."+ smMenu.settings.submenuClass).slideUp(function() {
|
||||
$(this).find(".hasChild").removeClass("active");
|
||||
})
|
||||
dispar.toggleClass("active").siblings().removeClass("active");
|
||||
},
|
||||
goBack = function(e) {
|
||||
e.preventDefault();
|
||||
$(this).closest("ul." + smMenu.settings.submenuClass).parent().removeClass("active");
|
||||
}
|
||||
/*Init*/
|
||||
init();
|
||||
/* Open Menu */
|
||||
smMenu.hamburger.click(toggleMobileMenu);
|
||||
/* Show Slide SubMenu */
|
||||
smMenu.smmOuter.filter(".slide").find("li.hasChild > a").click(showSlideSubMenu);
|
||||
/* Show Accordion SubMenu */
|
||||
smMenu.smmOuter.filter(".accordion").find("li.hasChild > a").click(showAccordionSubMenu);
|
||||
/* Go Back */
|
||||
smMenu.smmOuter.find("li.back a").click(goBack);
|
||||
};
|
||||
})(jQuery)
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
!function(t){function e(){var e,i,n={height:a.innerHeight,width:a.innerWidth};return n.height||(e=r.compatMode,(e||!t.support.boxModel)&&(i="CSS1Compat"===e?f:r.body,n={height:i.clientHeight,width:i.clientWidth})),n}function i(){return{top:a.pageYOffset||f.scrollTop||r.body.scrollTop,left:a.pageXOffset||f.scrollLeft||r.body.scrollLeft}}function n(){var n,l=t(),r=0;if(t.each(d,function(t,e){var i=e.data.selector,n=e.$element;l=l.add(i?n.find(i):n)}),n=l.length)for(o=o||e(),h=h||i();n>r;r++)if(t.contains(f,l[r])){var a,c,p,s=t(l[r]),u={height:s.height(),width:s.width()},g=s.offset(),v=s.data("inview");if(!h||!o)return;g.top+u.height>h.top&&g.top<h.top+o.height&&g.left+u.width>h.left&&g.left<h.left+o.width?(a=h.left>g.left?"right":h.left+o.width<g.left+u.width?"left":"both",c=h.top>g.top?"bottom":h.top+o.height<g.top+u.height?"top":"both",p=a+"-"+c,v&&v===p||s.data("inview",p).trigger("inview",[!0,a,c])):v&&s.data("inview",!1).trigger("inview",[!1])}}var o,h,l,d={},r=document,a=window,f=r.documentElement,c=t.expando;t.event.special.inview={add:function(e){d[e.guid+"-"+this[c]]={data:e,$element:t(this)},l||t.isEmptyObject(d)||(l=setInterval(n,250))},remove:function(e){try{delete d[e.guid+"-"+this[c]]}catch(i){}t.isEmptyObject(d)&&(clearInterval(l),l=null)}},t(a).bind("scroll resize scrollstop",function(){o=h=null}),!f.addEventListener&&f.attachEvent&&f.attachEvent("onfocusin",function(){h=null})}(jQuery);
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
// leanModal v1.1 by Ray Stone - http://finelysliced.com.au
|
||||
// Dual licensed under the MIT and GPL
|
||||
|
||||
(function($){$.fn.extend({leanModal:function(options){var defaults={top:100,overlay:0.5,closeButton:null};var overlay=$("<div id='lean_overlay'></div>");$("body").append(overlay);options=$.extend(defaults,options);return this.each(function(){var o=options;$(this).click(function(e){var modal_id=$(this).attr("href");$("#lean_overlay").click(function(){close_modal(modal_id)});$(o.closeButton).click(function(){close_modal(modal_id)});var modal_height=$(modal_id).outerHeight();var modal_width=$(modal_id).outerWidth();
|
||||
$("#lean_overlay").css({"display":"block",opacity:0});$("#lean_overlay").fadeTo(200,o.overlay);$(modal_id).css({"display":"block","position":"fixed","opacity":0,"z-index":11000,"left":50+"%","margin-left":-(modal_width/2)+"px","top":o.top+"px"});$(modal_id).fadeTo(200,1);e.preventDefault()})});function close_modal(modal_id){$("#lean_overlay").fadeOut(200);$(modal_id).css({"display":"none"})}}})})(jQuery);
|
||||
File diff suppressed because one or more lines are too long
+9
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,43 @@
|
||||
|
||||
(function($) {
|
||||
'use strict';
|
||||
|
||||
|
||||
$("#modal_trigger").leanModal({top : 100, overlay : 0.6, closeButton: ".modal_close" });
|
||||
|
||||
$(function(){
|
||||
// Calling Login Form
|
||||
$("#login_form").click(function(){
|
||||
$(".social_login").hide();
|
||||
$(".user_login").show();
|
||||
return false;
|
||||
});
|
||||
|
||||
// Calling Register Form
|
||||
$("#register_form").click(function(){
|
||||
$(".social_login").hide();
|
||||
$(".user_register").show();
|
||||
$(".header_title").text('Register');
|
||||
return false;
|
||||
});
|
||||
|
||||
// Going back to Social Forms
|
||||
$(".back_btn").click(function(){
|
||||
$(".user_login").hide();
|
||||
$(".user_register").hide();
|
||||
$(".social_login").show();
|
||||
$(".header_title").text('Login');
|
||||
return false;
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
})(jQuery);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,215 @@
|
||||
/*! MagicMouse.js - v1.1
|
||||
* A lightweight javascript library to create some amazing effects for the mouse (cursor) on your website
|
||||
* https://github.com/dshongphuc/magic-mouse-js
|
||||
* Copyright (c) 2020 Phuc H. <dshongphuc@gmail.com> under MIT license; */
|
||||
|
||||
"use strict";
|
||||
function magicMouse(options) {
|
||||
// I believe we don't want this cursor on tablet/mobile
|
||||
if (!Modernizr.touchevents){
|
||||
options = options || {};
|
||||
options.outerWidth = options.outerWidth || 30;
|
||||
options.outerHeight = options.outerHeight || 30;
|
||||
options.cursorOuter = options.cursorOuter || "circle-basic";
|
||||
options.hoverEffect = options.hoverEffect || "circle-move";
|
||||
options.hoverItemMove = options.hoverItemMove || false;
|
||||
options.defaultCursor = options.defaultCursor || false;
|
||||
|
||||
// Add cursor DOM to body :
|
||||
if ("disable" != options.cursorOuter) {
|
||||
var newCursorDOM = document.createElement("div");
|
||||
newCursorDOM.setAttribute("id", "magicMouseCursor");
|
||||
document.body.appendChild(newCursorDOM);
|
||||
|
||||
// Select the cursor DOM which has been added to body before:
|
||||
var cursorDOM = document.getElementById("magicMouseCursor");
|
||||
}
|
||||
|
||||
// Check if user wanna use our custom cursor or not
|
||||
// If yes, create DOM for it
|
||||
if (!options.defaultCursor) {
|
||||
document.body.style.cursor = "none";
|
||||
var newPointerDOM = document.createElement("div");
|
||||
newPointerDOM.setAttribute("id", "magicPointer");
|
||||
document.body.appendChild(newPointerDOM);
|
||||
var pointerDOM = document.getElementById("magicPointer");
|
||||
}
|
||||
|
||||
if (cursorDOM) {
|
||||
cursorDOM.style.width = options.outerWidth + "px";
|
||||
cursorDOM.style.height = options.outerHeight + "px";
|
||||
var cursorOuterWidth = options.outerWidth,
|
||||
cursorOuterHeight = options.outerHeight,
|
||||
originalCursorWidth = options.outerWidth,
|
||||
originalCursorHeight = options.outerHeight;
|
||||
}
|
||||
|
||||
//Update position of cursor when move:
|
||||
var outerX = 0,
|
||||
outerY = 0,
|
||||
pointerX = 0,
|
||||
pointerY = 0,
|
||||
stopFlag = false,
|
||||
itemHoverX = 0,
|
||||
itemHoverY = 0;
|
||||
document.addEventListener("mousemove", function(event) {
|
||||
pointerX = event.clientX;
|
||||
pointerY = event.clientY;
|
||||
setTimeout(() => {
|
||||
if (!stopFlag) {
|
||||
outerX = event.clientX - cursorOuterWidth / 2;
|
||||
outerY = event.clientY - cursorOuterHeight / 2;
|
||||
}
|
||||
}, 50);
|
||||
});
|
||||
|
||||
//Hover effects :
|
||||
var hoverEls = document.querySelectorAll(".magic-hover");
|
||||
hoverEls.forEach((item, i) => {
|
||||
item.addEventListener("mouseenter", event => {
|
||||
switch (options.hoverEffect) {
|
||||
case "circle-move":
|
||||
circleMove_mouseEnterHover(item);
|
||||
//Move the item hover on:
|
||||
if (options.hoverItemMove) {
|
||||
hoverItemMove(event, item);
|
||||
}
|
||||
break;
|
||||
case "pointer-blur":
|
||||
pointerClass_mouseEnterHover(item, "pointer-blur");
|
||||
break;
|
||||
case "pointer-overlay":
|
||||
pointerClass_mouseEnterHover(item, "pointer-overlay");
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
item.addEventListener("mouseleave", event => {
|
||||
item.style.transform = "translate3d(0,0,0)";
|
||||
switch (options.hoverEffect) {
|
||||
case "circle-move":
|
||||
circleMove_mouseLeaveHover();
|
||||
break;
|
||||
case "pointer-blur":
|
||||
pointerClass_mouseLeaveHover("pointer-blur");
|
||||
break;
|
||||
case "pointer-overlay":
|
||||
pointerClass_mouseLeaveHover("pointer-overlay");
|
||||
break;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// sometime we just don't want to use magicmouse on some specific elements:
|
||||
const noCursorEls = document.querySelectorAll(".no-cursor");
|
||||
noCursorEls.forEach((item, i) => {
|
||||
item.addEventListener("mouseenter", event => {
|
||||
cursorDOM.style.opacity = 0
|
||||
pointerDOM.style.opacity = 0
|
||||
document.body.style.cursor = "auto";
|
||||
});
|
||||
|
||||
item.addEventListener("mouseleave", event => {
|
||||
cursorDOM.style.opacity = 1
|
||||
pointerDOM.style.opacity = 1
|
||||
document.body.style.cursor = "none";
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
//Move the cursorDOM:
|
||||
var movement = () => {
|
||||
if (cursorDOM) {
|
||||
cursorDOM.style.transform =
|
||||
"matrix(1, 0, 0, 1, " + outerX + ", " + outerY + ")";
|
||||
cursorDOM.style.width = cursorOuterWidth + "px";
|
||||
cursorDOM.style.height = cursorOuterHeight + "px";
|
||||
}
|
||||
|
||||
//Move the custom pointer :
|
||||
if (pointerDOM) {
|
||||
pointerDOM.style.transform =
|
||||
"matrix(1, 0, 0, 1, " +
|
||||
pointerX +
|
||||
", " +
|
||||
pointerY +
|
||||
") translate3d(-50%, -50%, 0)";
|
||||
}
|
||||
requestAnimationFrame(movement);
|
||||
};
|
||||
requestAnimationFrame(movement);
|
||||
|
||||
const circleMove_mouseEnterHover = item => {
|
||||
stopFlag = true;
|
||||
if (cursorDOM) {
|
||||
cursorDOM.style.transition =
|
||||
"transform 0.2s, width 0.3s, height 0.3s, border-radius 0.2s";
|
||||
cursorDOM.classList.add("is-hover");
|
||||
var elementPos = event.currentTarget.getBoundingClientRect();
|
||||
if (item.classList.contains("magic-hover__square")) {
|
||||
cursorDOM.classList.add("cursor-square");
|
||||
outerX = elementPos.left;
|
||||
outerY = elementPos.top;
|
||||
cursorOuterWidth = elementPos.width;
|
||||
cursorOuterHeight = elementPos.height;
|
||||
} else {
|
||||
outerX = elementPos.left;
|
||||
outerY = elementPos.top;
|
||||
cursorOuterWidth = elementPos.width;
|
||||
cursorOuterHeight = elementPos.height;
|
||||
}
|
||||
}
|
||||
|
||||
if (pointerDOM) {
|
||||
pointerDOM.classList.add("is-hover");
|
||||
}
|
||||
};
|
||||
|
||||
const circleMove_mouseLeaveHover = () => {
|
||||
stopFlag = false;
|
||||
if (cursorDOM) {
|
||||
cursorOuterWidth = originalCursorWidth;
|
||||
cursorOuterHeight = originalCursorHeight;
|
||||
cursorDOM.style.transition =
|
||||
"transform 0.07s, width 0.3s, height 0.3s, border-radius 0.2s";
|
||||
cursorDOM.classList.remove("cursor-square");
|
||||
cursorDOM.classList.remove("is-hover");
|
||||
}
|
||||
|
||||
if (pointerDOM) {
|
||||
pointerDOM.classList.remove("is-hover");
|
||||
}
|
||||
};
|
||||
|
||||
const pointerClass_mouseEnterHover = (item, className) => {
|
||||
if (pointerDOM) {
|
||||
pointerDOM.classList.add(className);
|
||||
}
|
||||
};
|
||||
|
||||
const pointerClass_mouseLeaveHover = className => {
|
||||
if (pointerDOM) {
|
||||
pointerDOM.classList.remove(className);
|
||||
}
|
||||
};
|
||||
|
||||
const hoverItemMove = (event, item) => {
|
||||
itemHoverX = event.clientX;
|
||||
itemHoverY = event.clientY;
|
||||
item.addEventListener("mousemove", mouseEvent => {
|
||||
item.style.transform =
|
||||
"matrix(1,0,0,1," +
|
||||
(mouseEvent.offsetX - mouseEvent.target.offsetWidth / 2) / 2 +
|
||||
", " +
|
||||
(mouseEvent.offsetY - mouseEvent.target.offsetHeight / 2) / 2 +
|
||||
")";
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*! modernizr 3.6.0 (Custom Build) | MIT *
|
||||
* https://modernizr.com/download/?-touchevents-setclasses !*/
|
||||
!function(e,n,t){function o(e,n){return typeof e===n}function s(){var e,n,t,s,a,i,r;for(var l in c)if(c.hasOwnProperty(l)){if(e=[],n=c[l],n.name&&(e.push(n.name.toLowerCase()),n.options&&n.options.aliases&&n.options.aliases.length))for(t=0;t<n.options.aliases.length;t++)e.push(n.options.aliases[t].toLowerCase());for(s=o(n.fn,"function")?n.fn():n.fn,a=0;a<e.length;a++)i=e[a],r=i.split("."),1===r.length?Modernizr[r[0]]=s:(!Modernizr[r[0]]||Modernizr[r[0]]instanceof Boolean||(Modernizr[r[0]]=new Boolean(Modernizr[r[0]])),Modernizr[r[0]][r[1]]=s),f.push((s?"":"no-")+r.join("-"))}}function a(e){var n=p.className,t=Modernizr._config.classPrefix||"";if(h&&(n=n.baseVal),Modernizr._config.enableJSClass){var o=new RegExp("(^|\\s)"+t+"no-js(\\s|$)");n=n.replace(o,"$1"+t+"js$2")}Modernizr._config.enableClasses&&(n+=" "+t+e.join(" "+t),h?p.className.baseVal=n:p.className=n)}function i(){return"function"!=typeof n.createElement?n.createElement(arguments[0]):h?n.createElementNS.call(n,"http://www.w3.org/2000/svg",arguments[0]):n.createElement.apply(n,arguments)}function r(){var e=n.body;return e||(e=i(h?"svg":"body"),e.fake=!0),e}function l(e,t,o,s){var a,l,f,c,d="modernizr",u=i("div"),h=r();if(parseInt(o,10))for(;o--;)f=i("div"),f.id=s?s[o]:d+(o+1),u.appendChild(f);return a=i("style"),a.type="text/css",a.id="s"+d,(h.fake?h:u).appendChild(a),h.appendChild(u),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(n.createTextNode(e)),u.id=d,h.fake&&(h.style.background="",h.style.overflow="hidden",c=p.style.overflow,p.style.overflow="hidden",p.appendChild(h)),l=t(u,e),h.fake?(h.parentNode.removeChild(h),p.style.overflow=c,p.offsetHeight):u.parentNode.removeChild(u),!!l}var f=[],c=[],d={_version:"3.6.0",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,n){var t=this;setTimeout(function(){n(t[e])},0)},addTest:function(e,n,t){c.push({name:e,fn:n,options:t})},addAsyncTest:function(e){c.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=d,Modernizr=new Modernizr;var u=d._config.usePrefixes?" -webkit- -moz- -o- -ms- ".split(" "):["",""];d._prefixes=u;var p=n.documentElement,h="svg"===p.nodeName.toLowerCase(),m=d.testStyles=l;Modernizr.addTest("touchevents",function(){var t;if("ontouchstart"in e||e.DocumentTouch&&n instanceof DocumentTouch)t=!0;else{var o=["@media (",u.join("touch-enabled),("),"heartz",")","{#modernizr{top:9px;position:absolute}}"].join("");m(o,function(e){t=9===e.offsetTop})}return t}),s(),a(f),delete d.addTest,delete d.addAsyncTest;for(var v=0;v<Modernizr._q.length;v++)Modernizr._q[v]();e.Modernizr=Modernizr}(window,document);
|
||||
+4
File diff suppressed because one or more lines are too long
@@ -0,0 +1,193 @@
|
||||
/*
|
||||
Author : theme_ocean.
|
||||
Template Name: Mastan - Responsive App Landing Page
|
||||
Version : 1.0
|
||||
*/
|
||||
(function($) {
|
||||
'use strict';
|
||||
|
||||
|
||||
|
||||
/*PRELOADER JS*/
|
||||
$(window).on('load', function() {
|
||||
$('.status').fadeOut();
|
||||
$('.preloader').delay(350).fadeOut('slow');
|
||||
});
|
||||
/*END PRELOADER JS*/
|
||||
|
||||
/*START MENU JS*/
|
||||
$(".mobile_menu").simpleMobileMenu({
|
||||
"menuStyle": "slide"
|
||||
});
|
||||
$(window).on('scroll', function(){
|
||||
if ( $(window).scrollTop() > 70 ) {
|
||||
$('.site-navigation, .header-white, .header').addClass('navbar-fixed');
|
||||
} else {
|
||||
$('.site-navigation, .header-white, .header').removeClass('navbar-fixed');
|
||||
}
|
||||
});
|
||||
/*END MENU JS*/
|
||||
|
||||
/* START SCREENSHOTS SLIDER JS*/
|
||||
$('.s-slider').owlCarousel({
|
||||
autoPlay: 10000, //Set AutoPlay to 4 seconds
|
||||
items : 4,
|
||||
itemsDesktop : [1199,4],
|
||||
itemsDesktopSmall : [979,3],
|
||||
itemsTablet : [768,2],
|
||||
itemsMobile : [479,1],
|
||||
pagination : true,
|
||||
});
|
||||
/* END START SCREENSHOTS SLIDER JS*/
|
||||
|
||||
/*START VIDEO JS*/
|
||||
$('.magnific_popup').magnificPopup({
|
||||
type: 'iframe'
|
||||
});
|
||||
/*END VIDEO JS*/
|
||||
|
||||
/*START TESTIMONIAL JS*/
|
||||
$("#testimonial-slider").owlCarousel({
|
||||
items:3,
|
||||
itemsDesktop:[1000,3],
|
||||
itemsDesktopSmall:[980,2],
|
||||
itemsTablet:[768,2],
|
||||
itemsMobile:[650,1],
|
||||
pagination:true,
|
||||
navigation:true,
|
||||
navigationText:["",""],
|
||||
slideSpeed:1000,
|
||||
autoPlay:false
|
||||
});
|
||||
/*END TESTIMONIAL JS*/
|
||||
|
||||
/* START COUNTDOWN JS*/
|
||||
$('.counter_feature').on('inview', function(event, visible, visiblePartX, visiblePartY) {
|
||||
if (visible) {
|
||||
$(this).find('.counter-num').each(function () {
|
||||
var $this = $(this);
|
||||
$({ Counter: 0 }).animate({ Counter: $this.text() }, {
|
||||
duration: 2000,
|
||||
easing: 'swing',
|
||||
step: function () {
|
||||
$this.text(Math.ceil(this.Counter));
|
||||
}
|
||||
});
|
||||
});
|
||||
$(this).unbind('inview');
|
||||
}
|
||||
});
|
||||
/* END COUNTDOWN JS */
|
||||
|
||||
/*AJAX CONTACT JS*/
|
||||
|
||||
// Function for email address validation
|
||||
function isValidEmail(emailAddress) {
|
||||
var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
|
||||
|
||||
return pattern.test(emailAddress);
|
||||
|
||||
}
|
||||
$("#contactForm").on('submit', function(e) {
|
||||
e.preventDefault();
|
||||
var data = {
|
||||
name: $("#name").val(),
|
||||
email: $("#email").val(),
|
||||
subject: $("#subject").val(),
|
||||
message: $("#message").val()
|
||||
};
|
||||
|
||||
if (isValidEmail(data['email']) && (data['message'].length > 1) && (data['name'].length > 1) && (data['subject'].length > 1)) {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "sendmail.php",
|
||||
data: data,
|
||||
success: function() {
|
||||
$('#contactForm .input-success').delay(500).fadeIn(1000);
|
||||
$('#contactForm .input-error').fadeOut(500);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$('#contactForm .input-error').delay(500).fadeIn(1000);
|
||||
$('#contactForm .input-success').fadeOut(500);
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
|
||||
/*START WOW ANIMATION JS*/
|
||||
new WOW().init();
|
||||
/*END WOW ANIMATION JS*/
|
||||
|
||||
/*const lenis = new Lenis()
|
||||
|
||||
|
||||
lenis.on('scroll', ScrollTrigger.update)
|
||||
|
||||
gsap.ticker.add((time) => {
|
||||
lenis.raf(time * 1000)
|
||||
})
|
||||
|
||||
gsap.ticker.lagSmoothing(0)*/
|
||||
|
||||
})(jQuery);
|
||||
|
||||
/*START MAGIC MOUSE JS*/
|
||||
// Mouse Follower
|
||||
const follower = document.querySelector(
|
||||
".mouse-follower .cursor-outline"
|
||||
);
|
||||
const dot = document.querySelector(".mouse-follower .cursor-dot");
|
||||
window.addEventListener("mousemove", (e) => {
|
||||
follower.animate(
|
||||
[
|
||||
{
|
||||
opacity: 1,
|
||||
left: `${e.clientX}px`,
|
||||
top: `${e.clientY}px`,
|
||||
easing: "ease-in-out",
|
||||
},
|
||||
],
|
||||
{
|
||||
duration: 3000,
|
||||
fill: "forwards",
|
||||
}
|
||||
);
|
||||
dot.animate(
|
||||
[
|
||||
{
|
||||
opacity: 1,
|
||||
left: `${e.clientX}px`,
|
||||
top: `${e.clientY}px`,
|
||||
easing: "ease-in-out",
|
||||
},
|
||||
],
|
||||
{
|
||||
duration: 1500,
|
||||
fill: "forwards",
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
// Mouse Follower Hide Function
|
||||
$("a, button").on("mouseenter mouseleave", function () {
|
||||
$(".mouse-follower").toggleClass("hide-cursor");
|
||||
});
|
||||
|
||||
var terElement = $(
|
||||
"h1, h2, h3, h4, .display-one, .display-two, .display-three, .display-four, .display-five, .display-six"
|
||||
);
|
||||
$(terElement).on("mouseenter mouseleave", function () {
|
||||
$(".mouse-follower").toggleClass("highlight-cursor-head");
|
||||
$(this).toggleClass("highlight-cursor-head");
|
||||
});
|
||||
|
||||
var terElement = $("p");
|
||||
$(terElement).on("mouseenter mouseleave", function () {
|
||||
$(".mouse-follower").toggleClass("highlight-cursor-para");
|
||||
$(this).toggleClass("highlight-cursor-para");
|
||||
});
|
||||
/*END MAGIC MOUSE JS*/
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
//** jQuery Scroll to Top Control script- (c) Dynamic Drive DHTML code library: http://www.dynamicdrive.com.
|
||||
//** Available/ usage terms at http://www.dynamicdrive.com (March 30th, 09')
|
||||
//** v1.1 (April 7th, 09'):
|
||||
//** 1) Adds ability to scroll to an absolute position (from top of page) or specific element on the page instead.
|
||||
//** 2) Fixes scroll animation not working in Opera.
|
||||
|
||||
|
||||
var scrolltotop={
|
||||
//startline: Integer. Number of pixels from top of doc scrollbar is scrolled before showing control
|
||||
//scrollto: Keyword (Integer, or "Scroll_to_Element_ID"). How far to scroll document up when control is clicked on (0=top).
|
||||
setting: {startline:100, scrollto: 0, scrollduration:1000, fadeduration:[500, 100]},
|
||||
controlHTML: '<i class="fa fa-angle-up scrolltop"></i>', //HTML for control, which is auto wrapped in DIV w/ ID="topcontrol"
|
||||
controlattrs: {offsetx:5, offsety:5}, //offset of control relative to right/ bottom of window corner
|
||||
anchorkeyword: '#top', //Enter href value of HTML anchors on the page that should also act as "Scroll Up" links
|
||||
|
||||
state: {isvisible:false, shouldvisible:false},
|
||||
|
||||
scrollup:function(){
|
||||
if (!this.cssfixedsupport) //if control is positioned using JavaScript
|
||||
this.$control.css({opacity:0}) //hide control immediately after clicking it
|
||||
var dest=isNaN(this.setting.scrollto)? this.setting.scrollto : parseInt(this.setting.scrollto)
|
||||
if (typeof dest=="string" && jQuery('#'+dest).length==1) //check element set by string exists
|
||||
dest=jQuery('#'+dest).offset().top
|
||||
else
|
||||
dest=0
|
||||
this.$body.animate({scrollTop: dest}, this.setting.scrollduration);
|
||||
},
|
||||
|
||||
keepfixed:function(){
|
||||
var $window=jQuery(window)
|
||||
var controlx=$window.scrollLeft() + $window.width() - this.$control.width() - this.controlattrs.offsetx
|
||||
var controly=$window.scrollTop() + $window.height() - this.$control.height() - this.controlattrs.offsety
|
||||
this.$control.css({left:controlx+'px', top:controly+'px'})
|
||||
},
|
||||
|
||||
togglecontrol:function(){
|
||||
var scrolltop=jQuery(window).scrollTop()
|
||||
if (!this.cssfixedsupport)
|
||||
this.keepfixed()
|
||||
this.state.shouldvisible=(scrolltop>=this.setting.startline)? true : false
|
||||
if (this.state.shouldvisible && !this.state.isvisible){
|
||||
this.$control.stop().animate({opacity:1}, this.setting.fadeduration[0])
|
||||
this.state.isvisible=true
|
||||
}
|
||||
else if (this.state.shouldvisible==false && this.state.isvisible){
|
||||
this.$control.stop().animate({opacity:0}, this.setting.fadeduration[1])
|
||||
this.state.isvisible=false
|
||||
}
|
||||
},
|
||||
|
||||
init:function(){
|
||||
jQuery(document).ready(function($){
|
||||
var mainobj=scrolltotop
|
||||
var iebrws=document.all
|
||||
mainobj.cssfixedsupport=!iebrws || iebrws && document.compatMode=="CSS1Compat" && window.XMLHttpRequest //not IE or IE7+ browsers in standards mode
|
||||
mainobj.$body=(window.opera)? (document.compatMode=="CSS1Compat"? $('html') : $('body')) : $('html,body')
|
||||
mainobj.$control=$('<div id="topcontrol" class="topcontrol">'+mainobj.controlHTML+'</div>')
|
||||
.css({position:mainobj.cssfixedsupport? 'fixed' : 'absolute', bottom:mainobj.controlattrs.offsety, right:mainobj.controlattrs.offsetx, opacity:0, cursor:'pointer'})
|
||||
.attr({title:''})
|
||||
.click(function(){mainobj.scrollup(); return false})
|
||||
.appendTo('body')
|
||||
if (document.all && !window.XMLHttpRequest && mainobj.$control.text()!='') //loose check for IE6 and below, plus whether control contains any text
|
||||
mainobj.$control.css({width:mainobj.$control.width()}) //IE6- seems to require an explicit width on a DIV containing text
|
||||
mainobj.togglecontrol()
|
||||
$('a[href="' + mainobj.anchorkeyword +'"]').click(function(){
|
||||
mainobj.scrollup()
|
||||
return false
|
||||
})
|
||||
$(window).bind('scroll resize', function(e){
|
||||
mainobj.togglecontrol()
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
scrolltotop.init()
|
||||
@@ -0,0 +1,14 @@
|
||||
|
||||
$(function () {
|
||||
|
||||
gsap.registerPlugin(ScrollTrigger, ScrollSmoother);
|
||||
|
||||
ScrollTrigger.normalizeScroll(false);
|
||||
|
||||
// create the smooth scroller FIRST!
|
||||
let smoother = ScrollSmoother.create({
|
||||
smooth: 2,
|
||||
effects: true,
|
||||
});
|
||||
|
||||
});
|
||||
Vendored
+2
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user