2014-05-13 65 views
-6

我有以下代码,但if条件从不返回true。我试图在宽屏和普通屏幕之间改变bg。问题与js,如果条件

$(document).ready(function(){ 
    var width = $(window).width; 
    var height = $(window).height; 
    var ratio = height/width; 

    if(ratio >= 0.8) { 
     $('body.preview').attr('style','background-image:url(images/_bg.jpg)'); 
    } else { 
     $('body.preview').attr('style','background-image:url(images/bg.jpg)'); 
    } 
}); 
+4

'$(窗口).width'和'$(窗口).height'被_functions_所以你在做' fn1/fn2 = NaN' –

+2

看起来很难想象你没有尝试在你的身边进行调试,然后发布它作为一个问题... –

+0

你试过阅读jQuery文档吗? http://api.jquery.com/height/你尝试使用'console.log(width);'? – Ejaz

回答

3

.width().heigth()是jQuery函数不性质。

尝试,

var width = $(window).width(); 
var height = $(window).height(); 
var ratio = height/width; 
+0

当你可以做'innerWidth'时,为什么要使用'$(window).width()'? –

+1

@NiettheDarkAbsol http://www.quirksmode.org/dom/w3c_cssom.html – VisioN

+0

@NiettheDarkAbsol:'window.innerWidth - > 1920; $(窗口).WIDTH(); - > 1903年;'他们不一样。 – Cerbrus

1

widthheight的方法,所以你需要给他们打电话:此外

var width = $(window).width(); 
var height = $(window).height(); 

,设置样式,你最好使用.css方法:

$('body.preview').css('background-image', 'url(images/bg.jpg)'); 
+0

他可能会重写整个内联样式,而不是仅仅为其添加'background-image'。 – Ejaz

1

您缺少括号:

var width = $(window).width(); //width should be width() 
var height = $(window).height(); //height should be height() 
0

你省略的方法parenthesises(宽度和高度)

$(document).ready(function(){ 

    var width = $(window).width(); 
    var height = $(window).height(); 
    var ratio = height/width; 

    if(ratio >= 0.8) 
    { 
     $('body.preview').attr('style','background-image:url(images/_bg.jpg)'); 
    } 
    else 
    { 
     $('body.preview').attr('style','background-image:url(images/bg.jpg)'); 
    } 

});