【发布时间】:2013-07-08 16:03:31
【问题描述】:
我得到了一个非常复杂的设计,背景很大,所以我不得不想出一个小脚本来调整较小屏幕上的屏幕大小以居中并移除空白并移除水平滚动条。
现在这是我为调整屏幕大小编写的 Jscript sn-p:
(function() {
if(jQuery(window).width() >= 1024 && jQuery(window).width() <= 1275 ) {
jQuery('html').css({"margin-left":"-180px"});
jQuery('html').css({"overflow-x":'hidden'});
}
else if(jQuery(window).width() == 1280) {
jQuery('html').css({"margin-left":"-52px"});
jQuery('html').css({"overflow-x":'hidden'});
}
else if(jQuery(window).width() >= 1300 || jQuery(window).width() <= 1400 ) {
jQuery('html').css({"margin-left":"-0"});
jQuery('html').css({"overflow-x":'hidden'});
}
else if(jQuery(window).width() >= 1430 ) {
jQuery('html').css({"margin-right":"-60px"});
jQuery('html').css({"overflow-x":'hidden'});
}
else if(jQuery(window).width() < 940 ) {
jQuery('html').css({"margin-left":"0"});
jQuery('html').css({"overflow-x":'visible'});
}
else {
}
})();
现在,如果用户仍然使用触摸屏,他们可以滚动到页面右侧。
如果我可以阻止它,还有机会吗?就像用户没有机会水平滚动一样?
谢谢
【问题讨论】:
-
只是一些代码建议: 1.
(function($) { ... })(jQuery);将允许 $ 符号的简写使用而不会产生任何冲突; 2. 将$(window).width()存储为变量,因为您经常引用它; 3. 像这样组合你的css()调用:.css({'margin-left': -180px', 'overflow-x': 'hidden'})。只是为了优化。我知道这当然不能回答你的问题。最后:确保所有这些都发生在$(window).resize()事件中,以便在调整窗口大小时做出响应。 -
另外:您能否发布一下您目前的作品,或者预览一下设计的外观?看起来这个问题更适合通过 CSS 媒体查询来解决,根本不需要 JavaScript。
-
抱歉,还有一点要说:您将
overflow-x设置为visible以用于小分辨率,这就是首先出现问题的原因。也许您应该明确设置body元素的宽度?同样,如果不了解实际设计的流程,就很难确定。 -
@MMiller 感谢您的建议,但 $ 在用于 WordPress 主题时不起作用。而对于上传网站,它仍在制作中,根本不完整。
-
(function($) { $(document).ready(function () { $('body').css('background-color', 'red'); }); })(jQuery);function($) { 部分是一个匿名函数,所有内容都封装在其中。})(jQuery)部分为函数提供了一个参数,jQuery对象,它是在 WordPress 中使用noConflict()创建的。此代码适用于任何地方。
标签: jquery html css screen-resolution