在以下代码段中:
var scr_h = $(document).height();
var scr_w = $(document).width();
var logo = {
width : (scr_w*.25),
img : document.createElement('img'),
src : 'images/static/mk_vc.png'
};
$(logo.img).attr('src', logo.src);
$('#logo').append(logo.img);
$('#logo').css({
'margin-top' : scr_h*.15+'px',
'width' : logo.width+'px',
'left' : (scr_w/2)-(logo.width/2)+'px' //this doesn't always work...
});
alert($('#logo').css('left'));
有时警报会以“自动”而不是正确的号码返回。如果刷新页面通常会发生这种情况(尽管ctrl + refresh通常可以解决问题)。我尝试通过php渲染页面并将?randomnumber=$randomnumber
参数附加到JavaScript调用,但它没有帮助,这意味着它不是某种缓存问题。
它似乎也发生在所有浏览器中。我的客户有一台Mac,并尝试使用Chrome和Safari,我使用Linux并在Chrome和Firefox中尝试过。
有什么想法吗?其余的JavaScript函数都很好,无论该特定行是否正确呈现。 margin-top
和width
css也始终有效。它似乎只是提出问题的left
。
我尝试更改顺序以首先渲染“左”,但这也没有用,尽管其他两个属性仍然很好。
完整的脚本可以在http://meenakhalili.turnleftllc.com/scripts/js/dev/mk.js看到,网站位于meenakhalili.turnleftllc.com。尝试刷新几次。你会看到问题。
答案 0 :(得分:0)
我想这取决于代码执行时所呈现的页面,如果代码包含在$(function(){...})或类似代码中,这是不确定的。
您可以尝试测量窗口而不是文档:
var scr_h = $(window).height();
var scr_w = $(window).width();
答案 1 :(得分:0)
Chchrist昨晚在评论中回答了这个问题。将映像设置为在映像的onload事件之后发生问题。
我现在正在发布这个帖子,但我很乐意在它到期的地方给予信任!