以下代码片段用于在用户单击图像时,将静态图像替换为由Java脚本函数加载的窗口.问题是加载的Java代码块不考虑宽度和高度,如果它有div个元素,它就会被挤压到左边.

我做错了什么?

<div style="display: flex; justify-content: space-between;">
 <div style="text-align: center;">


<!-- Your image -->
<img id="myImage" src="https://raw.githubusercontent.com/ucc23/test/main/berkeley29.webp" alt="Clickable Image" style="width:355px;height:250px; cursor: pointer;">


<!-- Div to contain Aladin Lite viewer -->
<div id="aladin-lite-div" style="width:355;height:250"></div>

<!-- Aladin Lite script (will be loaded after the image is clicked) -->
<script type="text/javascript">
// Function to load Aladin Lite after image click and hide the image
function loadAladinLiteAndHideImage() {
    // Dynamically load the Aladin Lite script
    let aladinScript = document.createElement('script');
    aladinScript.src = "https://aladin.cds.unistra.fr/AladinLite/api/v3/latest/aladin.js";
    aladinScript.charset = "utf-8";
    aladinScript.onload = function () {
        A.init.then(() => {
            let aladin = A.aladin('#aladin-lite-div', {survey:"P/DSS2/color", fov:0.1, target: "103.269 16.929"});
            // Remove the image
            document.getElementById('myImage').remove();
            // Hide the image
            //document.getElementById('myImage').style.visibility = "hidden";
                      // Show the Aladin Lite viewer
            document.getElementById('aladin-lite-div').style.display = 'block';
});
     };
    document.head.appendChild(aladinScript);
}
// Event listener for image click
document.getElementById('myImage').addEventListener('click', loadAladinLiteAndHideImage);
</script>

</div>
<!-- Left block -->

<table style="text-align: center; width:355px;height:250px;">
  <!-- Row 1 (title) -->
  <tr>
    <td colspan="5"><h3>Table title</h3></td>
  </tr>
  <!-- Row 2 -->
  <tr>
    <th><a>C1</a></th>
    <th><a>C2</a></th>
    <th><a>C3</a></th>
    <th><a>C4</a></th>
    <th><a>C5</a></th>
  </tr>
  <!-- Row 3 -->
  <tr>
    <td>1.0</td>
    <td>0.52</td>
    <td>9.7</td>
    <td>534</td>
    <td>3.0</td>
  </tr>
</table>
</div>

推荐答案

Aladin Lite查看器不考虑其div元素的宽度和高度的问题是由于divstyle属性中缺少px单位.在代码中,您已将宽度和高度指定为width:355;height:250,但应包括px单位才能正确定义尺寸.

要解决此问题,请按如下方式更新div元素的style属性:

<div id="aladin-lite-div" style="width:355px;height:250px"></div>

通过添加px单位,Aladin Lite查看器现在应该尊重其div元素的宽度和高度,并且内容不应该再被挤压到左侧.

Javascript相关问答推荐

如何保持子画布元素的1:1宽高比?

为什么getRecord()会因为与_logger相关的错误而失败?(使用Hedera SDK)

在分区内迭代分区

使搜索栏更改语言

WebRTC关闭navigator. getUserMedia正确

当运行d3示例代码时,没有显示任何内容

有没有可能使滑动img动画以更快的速度连续?

在服务器上放置了Create Reaction App Build之后的空白页面

Promise Chain中的第二个useState不更新

如何从html元素创建树 struct ?

如何在bslib nav_insert之后更改导航标签的CSS类和样式?

如何在Angular17 APP中全局设置AXIOS

未定义引用错误:未定义&Quot;而不是&Quot;ReferenceError:在初始化&Quot;之前无法访问';a';

如何在不影响隐式类型的情况下将类型分配给对象?

OpenAI转录API错误请求

如何在DYGRAPS中更改鼠标事件和键盘输入

如何在FastAPI中为通过file:/URL加载的本地HTML文件启用CORS?

为什么当我更新数据库时,我的所有组件都重新呈现?

如何在和IF语句中使用||和&;&;?

在Java脚本中录制视频后看不到曲目