2013-04-01 100 views
3

我正在开发一个使用webview GUI的android应用程序。我有一个包含页面的元素。它有一个页眉和一个页脚。安卓视图+ jquery

<div data-role="page"> 
    <div data-role="header"> 
    ... 
    </div> 
    <div data-role="content" id="bg_im"> 
    ... 
    </div> 
    <div data-role="footer"> 
    ... 
    </div> 
</div> 

我想插入一个图像作为内容div的背景,使得整个内容不会占用比可用屏幕大小更多的空间。

我有一个JavaScript,做的是:

document.getElementById("bg_im").style.height=Math.floor($(window).height() - $('#home_header').height() - $('#home_footer').height() +"px"; 

加载页面时执行的功能。

它在桌面浏览器(chrome,mozilla)中都能正常工作,但在android中的webview中加载失败。我发现原因是功能.height()为页眉和页脚返回值为0.

任何想法为什么?我试过this solution,但它也不起作用。它仍然返回页眉/页脚大小0.

回答

0

您的主要问题可能来自您的Math.floor()方法。您正在混合字符串连接和算术运算。你应该分开这些陈述。

var newHeight = Math.floor($(window).height() - $('#home_header').height() - $('#home_footer').height()); 
$('#bg_img').prop('height', newHeight); 
+0

我不认为这是问题所在。它确实返回一个数字,在这种情况下等于$(window).height()。另外,如果我打印出$('#home_header')。height(),它将为footer打印一个0.相同的问题是它不会减去页眉和页脚的大小,因为两个数字都是0,弄清楚为什么。 – Jaka

+0

您是否在$(document).ready({})中调用这些方法;函数(http://api.jquery.com/ready/)?如果文档没有准备好,div高度可能为零。你也可以检查这个问题http://stackoverflow.com/questions/9095967/jquery-height-behaves-differently-in-webkit-and-firefox-when-using-box-sizing – Kyle

+0

是的,该功能在以下方式:$(document).ready(function(){ resizeContent(); $(window).resize(function(){ resizeContent(); }); }); – Jaka