【发布时间】:2014-09-30 14:25:31
【问题描述】:
我正在尝试通过 jQuery 确定视口大小。不幸的是,我没有得到我想要的结果。
首先是我的 CSS:
.site {
max-width: 960px;
}
@media only screen and (min-width : 760px) and (max-width : 1040px) /* tablet */{
.site {
max-width: 620px;
}
@media only screen and (min-width : 240px) and (max-width : 759px) /* mobile */{
.site {
max-width: 285px;
}
现在我一直在尝试确定视口大小的两种不同版本:
$(window).ready(function() {
var viewport = $('.site').css("width");
});
$(function() {
if ( viewport <= '285px' ) {
console.log( "Mobile,", viewport ) ;}
else if ( viewport <= '620px' ) {
console.log( "Tablet,", viewport ) ;}
else {
console.log( "Desktop,", viewport ) };
});
不幸的是,无论“.site”是什么大小,这总是返回“Mobile,285px”......它无助于将“.css(“width”)”更改为“.css(width)”或“。宽度()”。
我试过的第二个版本是:
$(window).ready(function() {
var viewport = $(window).width();
});
$(function() {
if ( viewport <= 759 ) {
console.log( "Mobile,", viewport ) ;}
else if ( viewport <= 1040 ) {
console.log( "Tablet,", viewport ) ;}
else {
console.log( "Desktop,", viewport ) };
});
这将始终在控制台中返回错误:
Uncaught ReferenceError: viewport is not defined
(anonymous function)
j
k.fireWith
n.extend.ready
I
将 "$(window)" 更改为 "$('.site')" 也无济于事。
我做错了什么?
(进一步解释:我的最终目标是调整我给画布外导航的负边距以更好地适应屏幕宽度。是的,我只是 jQuery 的初学者。)
【问题讨论】:
-
尝试将 $(window).ready(function() { 更改为 $(window).load(function() {. 并在负载处理程序之外声明 var viewport。
-
嗯,所以我尝试了这个:
$(window).load(function() { }); var viewport = $('.site').css("width");但它并没有改变结果......它仍然有输出,就好像它是移动的,不管它是否真的是......跨度> -
var 视口; $(window).load(function() {viewport = $(window).width();});
-
@GeorgeJempty 我看过了,但它并没有帮助我解决我的问题!
标签: javascript jquery html css