我在 wordpress 中遇到了 barba.js 的常见问题。我正在解决这个问题:https ://codepen.io/dan-oc/pen/gvLaGB和这个https://barbajs.org/demo/nextprev/index.html例子。问题是,页面转换后页面设计被破坏,甚至前一页也被破坏。我知道在 stackoverflow 和其他论坛中有很多关于这个问题的主题,并且有一些答案。我试图从中受益,结果总是一样的。我不知道有什么问题。首先我认为,可能是页脚和头部中的脚本和样式文件在转换后尚未加载,但我看到页面转换后已加载。那么如果在转换后加载所有内容,那么问题是什么。谁能帮帮我。我的 javascript 知识很薄弱,而且我是 ajax 技术的新手。感谢您的关注。
document.addEventListener('DOMContentLoaded', function() {
var lastElementClicked;
Barba.Pjax.init();
Barba.Prefetch.init();
Barba.Dispatcher.on('linkClicked', function(el) {
lastElementClicked = el;
});
var Body = Barba.BaseView.extend({
namespace: '#barba-wrapper',
sync: true,
onEnter() {},
onEnterCompleted() {},
onLeave() {},
onLeaveCompleted() {}
});
Body.init();
var Homepage = Barba.BaseView.extend({
namespace: 'homep',
sync: true,
onEnter() {},
onEnterCompleted() {},
onLeave() {},
onLeaveCompleted() {}
});
Homepage.init();
var About = Barba.BaseView.extend({
namespace: 'aboutp',
sync: true,
onEnter() {},
onEnterCompleted() {},
onLeave() {},
onLeaveCompleted() {}
});
About.init();
var Newspress = Barba.BaseView.extend({
namespace: 'newsp',
sync: true,
onEnter() {},
onEnterCompleted() {},
onLeave() {},
onLeaveCompleted() {}
});
Newspress.init();
var Tedbirler = Barba.BaseView.extend({
namespace: 'tedbirlerp',
sync: true,
onEnter() {},
onEnterCompleted() {},
onLeave() {},
onLeaveCompleted() {}
});
Tedbirler.init();
var pageTransition = Barba.BaseTransition.extend({
start: function() {
this.newContainerLoading.then(
val => this.fadeInNewcontent(this.newContainer, this.oldContainer)
);
},
transitionFinished(newContainer, oldContainer) {
newContainer.style.visibility = "visible";
window.scrollTo(0, 0);
this.done();
},
fadeInNewcontent: function(newContainer, oldContainer) {
newContainer.classList.add('new');
var _this = this;
const transition = this.oldContainer.animate([
{ opacity: 1 },
{ opacity: 0 }
], {duration: 1500});
transition.onfinish = function() {
_this.transitionFinished(newContainer, oldContainer);
};
}
});
Barba.Pjax.getTransition = function() {
return pageTransition;
}
Barba.Pjax.start();
}, false);