PHP和JS脚本的奇怪问题在我刷新页面之前第一次失败

时间:2016-05-11 21:09:53

标签: javascript php

我有一个显示图片的PHP页面:

echo "<p> <img id=\"myPic\" src=\"myPic.png\" > </p>";

稍后在代码中,我使用JS:

在该图片周围放置小图标
echo "<script>
  var picTop = document.getElementById(\"myPic\").offsetTop ;
  var picLeft= document.getElementById(\"myPic\").offsetLeft ;

  document.getElementById(\"" . $iconId. "\").style.top = picTop + " . $iconPosition[$i][0] . " + \"px\"; 
  document.getElementById(\"" . $iconId. "\").style.left = picLeft + " . $iconPosition[$i][1] . " + \"px\"; 
</script>";

我将页面上传到服务器上,其他用户告诉我图标与主图片重叠。但是这只发生一次,并在重新加载页面时修复。我也亲眼目睹了这一点,我可以通过使用另一个浏览器来重现这个问题,再次通过刷新来解决。

我不知道出了什么问题。也许主要图片需要很长时间才能加载,并且JS脚本已经被执行,因此图标位置很差 - 但稍后会修复它,因为图片位于临时文件中,或者其他内容。

我试图用setTimeout延迟JS脚本,但仍然没有解决问题

echo "<script> 
  var picTop = document.getElementById(\"myPic\").offsetTop ;
  var picLeft= document.getElementById(\"myPic\").offsetLeft ;

  setTimeout ( function() {  
  document.getElementById(\"" . $iconId. "\").style.top = picTop + " . $iconPosition[$i][0] . " + \"px\"; 
  document.getElementById(\"" . $iconId. "\").style.left = picLeft + " . $iconPosition[$i][1] . " + \"px\";
}, 500) ; 
</script>";

或者我可以尝试更多毫秒......由于难以重现问题,我无法做出正确的诊断

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"android:id="@+id/fragment"
    android:name="com.example.sevak1994.sunshine.MainActivityFragment"
    tools:layout="@layout/fragment_main" android:layout_width="match_parent"
    android:layout_height="match_parent" />