从字面上看,我已经把头发拔了好几个星期,试图解决这个问题。有很多事情发生,所以我会尽力解释。但我要解决的是,当在移动设备或平板电脑上向上/向下滑动页面时,网站的粘性导航中出现了一个奇怪的 flickr。它只在两个页面上执行此操作,所以我知道这些页面上的粘性标题 jQuery 和其他一些 javascript 函数存在冲突。
所以一点背景知识:我们正在使用这个Mobile Detect PHP 类来检测手机和平板电脑浏览器。我们还使用 jQuery 移动库来利用滑动手势来滑动图像滑块。我遇到问题的主页是 Work 页面:http://hybridmediadesign.com/work,它没有滑块,但确实使用isotope。
似乎 jQuery 移动库是导致闪烁的原因,因为删除它可以消除闪烁。就像当您点击或滑动设备时,它会随机导致标题导航失去其持久类。
所以我什至不知道在这里显示什么代码,但这里是用于粘性标题的 jQuery:
<script>
window.weAreLoaded = false;
(function($) {
var documentBind = ($.browser.mobile == true ? 'pageinit' : 'ready');
$(document).bind(documentBind, function() {
if(!weAreLoaded) {
$(window).scroll(function(e) {
var position = $.browser.webkit ? e.target.body.scrollTop : e.target.documentElement.scrollTop, header_height = 124;
if ($(window).width() > 540) {
if (position >= header_height) {
if (!$('body').hasClass('persistent')) {
$('body').addClass('persistent').css('padding-top', 55);
$('.persistent header').animate({
'top' : 0
}, 600);
}
} else {
$('.persistent header').css('top', '-69px');
$('body').removeClass('persistent').css('padding-top', 0);
}
}
});
</script>
我不知道要在这里粘贴什么来让您了解冲突的来源,所以如果您有任何关于从哪里开始的线索,请向我询问 codez。
最后,最糟糕的是你不能在桌面浏览器中重现这个问题。即使更改 UA 也不会重现问题。我真的不得不拿出我的 iPhone 进行测试,这太糟糕了,因为我只是在黑暗中拍摄试图修复东西。啊!!