gpt4 book ai didi

Javascript,事件处理程序恢复默认值后(DOM)

转载 作者:行者123 更新时间:2023-11-30 20:30:51 25 4
gpt4 key购买 nike

您好,很抱歉问了一个愚蠢的问题,但我似乎找不到简单的解决方案。

我的练习的意思是在我的网站上放 3 个缩略图,但是当我移动图像时,它们需要扩大尺寸(所以我有图片的缩略图版本和正常尺寸)。正常尺寸的图片必须在

<p id="groot"></p>

这确实工作正常,唯一的问题是当我移动到它上面时图片不断出现。所以当我移出缩略图时,图片需要消失。是否有功能或其他东西可以使网站恢复到原始状态或任何解决方案?提前致谢。我希望我解释清楚了。

这是我关于 stackoverflow 的第一个问题,所以如果你对一个完整的菜鸟有提示 :)

这是我的 HTML 代码的主体:

<body> 
<p><img id="foto1" src="images/thumb-bones.jpg" alt="bones"/>
<img src="images/thumb-castle.jpg" alt="castle"/>
<img src="images/thumb-mentalist.jpg" alt="mentalist"/>
</p>

<p id="groot"></p>
</body>

这是JS代码:

addEventListener("load", init, false);

function init() {
let foto1 = document.getElementsByTagName("img")[0].addEventListener("mouseover", actie, false);
let foto2 = document.getElementsByTagName("img")[1].addEventListener("mouseover", actie2, false);
let foto3 = document.getElementsByTagName("img")[2].addEventListener("mouseover", actie3, false);
foto1.addEventListener("click", uit, false);
}


function actie(event) {
let plaats = document.getElementById("groot");
let element = document.createElement("img");
element.src = 'images/image-bones.jpg';
plaats.appendChild(element);

}


function actie2(event) {
let plaats = document.getElementById("groot");
let element = document.createElement("img");
element.src = 'images/image-castle.jpg';
plaats.appendChild(element);

}

function actie3(event) {
let plaats = document.getElementById("groot");
let element = document.createElement("img");
element.src = 'images/image-mentalist.jpg';
plaats.appendChild(element);

}

最佳答案

使用 mouseout 处理程序,并在处理程序中从该元素中删除所有子项。一种简单的方法是将 "" 分配给 innerHTML。例如:

function actie_off(event) {
document.getElementById("groot").innerHTML = "";
}

将其连接到所有三个缩略图。

如果你不想使用innerHTMLthis question's answers给出备选方案。


您可能会考虑 mouseentermouseleave而不是 mouseovermouseout .在这里可能没有太大区别,只是当鼠标在缩略图上移动时 mouseover 重复,而 mouseout 的冒泡可能会与嵌套元素混淆(目前不是与你相关)。有关详细信息,请参阅链接。


要考虑的另一件事是将缩略图 img 元素上的全尺寸图像 URL 作为 data-* URI 存储,如下所示:

<img id="foto1" src="images/thumb-bones.jpg" alt="bones" data-fullsize="images/image-bones.jpg"/>

然后您可以为所有 img 元素使用单个处理程序,而不是三个单独的处理程序:

function actie(event) {
let plaats = document.getElementById("groot");
let element = document.createElement("img");
element.src = this.getAttribute("data-fullsize"); // Getting the fullsize URL
// from the image the event
// relates to
plaats.appendChild(element);
}

关于Javascript,事件处理程序恢复默认值后(DOM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50352557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com