我在 jsFiddle 上有这个代码,它在桌面浏览器上实现并且工作得很好,并且在某种程度上可以在移动设备上工作。http://jsfiddle.net/heufT/
我的代码在做什么
如果屏幕大于 960px 宽(或大约),将显示正常的水平导航,但是如果屏幕小于 960px 宽,导航将成为按钮的一部分,当单击该按钮时,会在垂直菜单中显示相同的链接。当您滚动页面时,标题将缩小到较小的高度,如果您返回顶部,标题将恢复到与以前相同的高度。还有一个 .load 脚本,即使您调整浏览器的大小(主要用于桌面),也能确保这一切都发生。
jQuery(document).ready(function($){
// prepend menu icon
$('nav').prepend('<div id="menu-icon"></div>');
/* toggle nav */
$("#menu-icon").on("click", function(){
$("ul#prim").slideToggle();
$(this).toggleClass("active");
});
});
// Navigation resize event on scroll
$(document).scroll(function(){
if($(window).width()>959){
$("ul#prim").addClass("adjTop");
}
if($(window).width()<958){
$("ul#prim").removeClass("adjTop");
}
if ($(this).scrollTop()>105){
// animate fixed div to small size:
$('header').stop().animate({ height: 90 },50, 'linear');
$('ul#prim.adjTop').stop().animate({ top: '50%', 'margin-top': 18 },50, 'linear');
$('ul#prim').stop().animate({ top: 62 },50, 'linear');
$("img.logo").fadeOut();
$("img.bao_logo").fadeIn(1000);
} else {
// animate fixed div to original size
$('header').stop().animate({ height: 175 },50, 'linear');
$('ul#prim.adjTop').stop().animate({ top: '50%', 'margin-top': 18 },50, 'linear');
$('ul#prim').stop().animate({ top: 105 },50, 'linear');
$("img.logo").fadeIn(1000);
$("img.bao_logo").hide();
}
});
$(window).resize(function() {
if($(window).width()>959){
$("ul#prim").addClass("adjTop");
}
if($(window).width()<958){
$("ul#prim").removeClass("adjTop");
}
// Showreel
$(window).resize(function(){
// Resize video to fix aspect ratio when window resizes
// Only do this if video is currently visible
if ($('#showreel').height()!=0){
$('#showreel').height(($('#showreel').width()/16)*9);
}
});
});
(function($){
// Custom scrollbars for work feature on homepage
$(window).load(function(){
$(".scroll-pane").mCustomScrollbar({
horizontalScroll:true,
mouseWheel: false
});
});
})(jQuery);
问题
我在 iPad 和 iPhone 上特别注意到的一件事是 JS 可以工作,但是当你捏/缩放 Javascript 完全中断并且导航按钮不起作用,我的标题的缩小/增长也不起作用。
我尝试使用元视口标签禁用捏合/缩放,这显然会阻止用户放大到页面,但即使您至少尝试捏合/缩放并且它没有做任何事情,我注意到 JS 仍然中断没有任何效果。
有没有人有任何指示?我的代码中是否有任何错误会导致这种情况?我错过了什么吗?