在浏览器窗口的顶部和底部动态创建元素

时间:2013-01-11 03:06:14

标签: javascript jquery html css

我正在使用以下代码在浏览器窗口的顶部和底部动态创建“叠加层”<div>

$(function() {
  var winWidth = $(window).width();
  var winHeight = $(window).height();
  $('body').append('<div style="position:fixed;left:0px;top:0px;width:' +
      winWidth + 'px;height:30px">TOP</div>');
  $('body').append('<div style="position:fixed;left:0px;top:' +
      (winHeight - 30) + 'px;width:' + winWidth + 'px;height:30px">BTM</div>');
}

顶部<div>出现在我想要的位置。

但是底部<div>不可见。在Google Chrome中进行检查时,似乎表明它位于窗口底部。

有谁能看到我在这里错过的东西?

编辑我的原始代码可以在http://jsbin.com/uravif/41

找到

4 个答案:

答案 0 :(得分:2)

也许我误解了,但你的代码似乎对我有用(这里是Fiddle)。

var winWidth = $(window).width();
var winHeight = $(window).height();
$('body').append('<div style="position:fixed;left:0px;top:0px;width:' +
      winWidth + 'px;height:30px">TOP</div>');
$('body').append('<div style="position:fixed;left:0px;top:' +
      (winHeight - 30) + 'px;width:' + winWidth + 'px;height:30px">BTM</div>');

答案 1 :(得分:1)

你刚刚缺少CSS:

body{
  height:100%; /* to fix jsBin bug with $(window).height() */
}

否则请使用“BTM”:)元素的bottom位置,而不是top

修改 $(window).height()离线工作效果很好,所以我只是认为你搞乱了那个jsBin bug

<强> jsbin DEMO

答案 2 :(得分:1)

您可以使用底部样式属性:

$('body').append('<div style="position:fixed;left:0px;bottom:30px;width:' + winWidth + 'px;height:30px">BOTTOM</div>');

底部属性将元素定位在屏幕底部的xx px处。

答案 3 :(得分:1)

尝试以下:

$(function() {
  var winWidth = $(window).width();
  var winHeight = $(window).height();
  $('body').append('<div style="position:fixed;left:0px;top:0px;width:' +
      winWidth + 'px;height:30px">TOP</div>');
  $('body').append('<div style="position:fixed;left:0px;bottom:0px;width:' + winWidth + 'px;height:30px">BTM</div>');
}