Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 浏览器启动时div的位置错误_Javascript_Jquery - Fatal编程技术网

Javascript 浏览器启动时div的位置错误

Javascript 浏览器启动时div的位置错误,javascript,jquery,Javascript,Jquery,我使用javascript/jquery将一堆div放在一个更大的div中: this.inputArea.append(newItem); this.inputArea是容器div的jquery对象,newItem是所放置div的对应对象。根据要求,必须手动设置div的准确位置,这是通过 newItem.offset({top: this.droppableOffsetTop+topOffset, left:this.droppableOffsetLeft+leftOffset}); 我不

我使用javascript/jquery将一堆div放在一个更大的div中:

this.inputArea.append(newItem);
this.inputArea是容器div的jquery对象,newItem是所放置div的对应对象。根据要求,必须手动设置div的准确位置,这是通过

newItem.offset({top: this.droppableOffsetTop+topOffset, left:this.droppableOffsetLeft+leftOffset});
我不会让你厌烦关于坐标的精确计算;只要说它们是基于这个.inputArea.offset()加上新项应该在其中的位置就足够了。这段代码将多个div相邻放置,并在页面完成加载后立即运行

除了一个例外,这是预期的。当浏览器第一次加载页面时,所有div都被放置在页面的任意位置,在其预期容器的内部和外部。我已经在Firefox和Chrome上测试过了,这两种浏览器都有。刷新选项卡可以解决此问题。在第二个选项卡中打开它会显示一切正常。当我在firefox中“检查元素”时,它会立即将元素放在应该放在的地方,就像它的手在饼干罐中被抓住一样

以下是正确的位置:

这就是我得到的:

出于调试目的,我在控制台中输出了计算出的坐标,它们总是相同的,因此代码运行良好,只是两个不同的浏览器在第一次加载div时存在一些奇怪的问题


有人知道这是什么吗?我还没有发布完整的代码,因为它位于一个复杂的结构中,但如果需要,我可能会尝试制作一个简单的版本以供显示。

我不知道为什么会发生这种情况,但我替换了

newItem.offset({top: this.droppableOffsetTop+topOffset, left:this.droppableOffsetLeft+leftOffset});
大致如下:

newItem.css('top', topOffset + 'px');
newItem.css('left', leftOffset + 'px');
现在它开始工作了

哦,好吧