Функциональный контекст – это причудливый способ сказать, к чему относится this. for, for/in и for/of сохраняют значение this из внешней области видимости, но обратный вызов forEach() будет иметь другое значение this, если вы не используете стрелочную функцию.
<script src="js/jquery.inputmask.min.js"></script>
$(function() {
var transitionAnimation = Barba.BaseTransition.extend({
start: function() {
Promise
.all([this.newContainerLoading, this.startTransition()])
.then(this.fadeIn.bind(this));
},
startTransition: function() {
var transitionPromise = new Promise(function(resolve) {
var outTransition = new TimelineMax();
outTransition
.to(".title", 1, {y:-50, autoAlpha: 0, ease: Power2.easeOut})
.set(".color-wipe", {display:'block', y: "100%"}, "-=0.7")
.staggerFromTo(".color-wipe", 1, {y: "100%"},{y: "-100%", ease: Expo.easeOut}, 0.2, "-=0.7")
.to(".loader", 1, {autoAlpha:1, onComplete: function() {
resolve();
}},)
.staggerFromTo(".color-wipe", 1, {y: "-100%"},{y: "-200%", ease: Expo.easeIn}, 0.2,"-=0.5")
.set(".color-wipe", {display:'none'})
});
return transitionPromise;
},
fadeIn: function() {
$(window).scrollTop(0);
var _this = this;
var $el = $(this.newContainer);
TweenMax.set($(this.oldContainer), { display: "none" });
TweenMax.set($el, { visibility: "visible", opacity: 0, });
TweenMax.to(".loader", 1, {y:-50, autoAlpha: 0, ease: Expo.easeOut})
TweenMax.fromTo(".title", 1.5, {y:30, autoAlpha: 0},{delay:0.8, y:0, autoAlpha: 1, ease: Expo.easeOut})
TweenMax.to($el, 0.1, {
opacity: 1,
onComplete: function() {
_this.done();
console.log("done");
}
});
}
});
Barba.Pjax.getTransition = function() {
return transitionAnimation;
};
});
if (Barba.HistoryManager.prevStatus().namespace === 'contacts') {
showMasks();
}
function showMasks() {
$('#phone').inputmask({mask: "+7(999) 999-99-99", showMaskOnHover: false});
}
$(function() {
$('#phone').inputmask({mask: "+7(999) 999-99-99", showMaskOnHover: false});
});
if (Barba.HistoryManager.prevStatus().namespace === 'contacts') {
console.log('ok');
}
$(document).on('submit', '#contacts-form-send', function(e) {
// тут какой-то код отправки формы
});
TweenMax.to($el, 0.1, { opacity: 1, onComplete: function() {
$('#phone').inputmask({mask: "+7(999) 999-99-99", showMaskOnHover: false});
_this.done();
}
});
$('input["type=tel"]').inputmask({mask: "+7(999) 999-99-99", showMaskOnHover: false});
Barba.Dispatcher.on('linkClicked', function(el) {
$('input["type=tel"]').inputmask({mask: "+7(999) 999-99-99", showMaskOnHover: false});
});
$(function(){
const mainApp = $('.main-wrapper'); // получаем нашу обводку для контента
mainApp.on('click', '.menu li a', function(e){// при клике на пункт меню получаем путь до href
e.preventDefault();
History.pushState(null, document.title, $(this).attr('href'));
});
function loadPage(url) {
mainApp.css({opacity: 0.5});
mainApp.load(url + " .menu-wrapper > *", function(){
mainApp.css({opacity: 1});
});
}
History.Adapter.bind(window, 'statechange',function(e){
var State = History.getState();
loadPage(State.url);
});
});
if(window.location.href.indexOf('index.html') > -1){
// select menu item
var carditemmenu = document.getElementById('cardItem');
// делаете что то с пунктом меню
carditemmenu.classList.add("mystyle");
}
if(window.location.href.indexOf('cards.html') > -1){
// select menu item
var carditemmenu = document.getElementById('cardItem');
// делаете что то с пунктом меню
carditemmenu.classList.add("mystyle");
}
А вот так сделать можно ?