javascript - 如何从 DOM 中改变元素,然后在 JavaScript 中将其返回到其原始状态?
问题描述
我制作了一个函数,它在目标区域的 DOM 中循环(通过id
)来创建翻转功能。
我的问题在于rollOver/rollOut
功能。由于某种原因,我运行此脚本的环境似乎与该srcset
属性混淆。
这是原文:
function rollOver(elem) {
(document.getElementById(elem).srcset =
"https://staging.elizabetharden.pfsweb.demandware.net/on/demandware.static/-/Sites-JuicyCoutureBeauty-Library/default/dw685f8968/images/home-page/desktop/eyes-on-you-desktop-hover-" +
elem.slice(6) +
".jpg?$staticlink$"),
"https://staging.elizabetharden.pfsweb.demandware.net/on/demandware.static/-/Sites-JuicyCoutureBeauty-Library/default/dw685f8968/images/home-page/desktop/eyes-on-you-desktop-2x-hover-" +
elem.slice(6) +
".jpg?$staticlink$ 2x";
}
function rollOut(elem) {
(document.getElementById(elem).srcset =
"https://staging.elizabetharden.pfsweb.demandware.net/on/demandware.static/-/Sites-JuicyCoutureBeauty-Library/default/dw685f8968/images/home-page/desktop/eyes-on-you-desktop-" +
elem.slice(6) +
".jpg?$staticlink$"),
"https://staging.elizabetharden.pfsweb.demandware.net/on/demandware.static/-/Sites-JuicyCoutureBeauty-Library/default/dw685f8968/images/home-page/desktop/eyes-on-you-desktop-2x-" +
elem.slice(6) +
".jpg?$staticlink$ 2x";
}
滚下:
path/to/image/eyes-on-you-desktop-hover-" + elem.slice(6) + ".jpg?$staticlink$"
推出:
path/to/image/eyes-on-you-desktop-" + elem.slice(6) +".jpg $staticlink$"
elem 变量来自这里...
document.addEventListener("DOMContentLoaded", function (event) {
var rollOverCollectionA = document
.getElementById("roll-over-collection-b")
.getElementsByClassName("rollover");
rollOverCollectionA = Array.prototype.slice.apply(rollOverCollectionA);
var l = rollOverCollectionA.length;
for (let i = 0; i < l; i++) {
on("mouseover", `#${rollOverCollectionA[i].id}`, function () {
rollOver(rollOverCollectionA[i].id);
});
on("mouseout", `#${rollOverCollectionA[i].id}`, function () {
rollOut(rollOverCollectionA[i].id);
});
}
});
它只是#id
元素上的值,它被切片以与接收焦点的元素重合。
我试过这样的事情:
function rollOver(id, elem ) {
elem.srcset = elem.srcset.splice(174, 0, '-hover');
elem.srcset = elem.srcset.splice(362, 0, 'hover-')
document.getElementById(id).srcset = elem.srcset;
}
function rollOut(id, elem) {
document.getElementById(id).srcset = elem.srcset;
}
但这样做是不断添加 'hover 到 elem.srcset/string !
更新
这是一个工作演示。
更新
这是正在发生的事情的一个例子。
翻转将悬停附加到非悬停状态,但是下次悬停时,src 现在有 `xxx-1-hover-hover.jpg
任何帮助,将不胜感激!
解决方案
推荐阅读
- sql - 在 SQL 中连接两个列值
- android - 使用分页库时正确处理“加载更多”视图
- hyperledger - 在 HLF 上使用 Composer,是否可以有多个 JS 文件并导入/需要它们?
- sql-server - 将小数 (18, 8) 限制为大于 1.00 的值
- dax - DAX 测量 YTD 与 LY YTD 和计数
- selenium-chromedriver - org.openqa.selenium.remote.ProtocolHandshake createSession chrome
- node.js - NodeJS copyFile 然后在回调中取消链接
- java - 如何将开始时间和结束时间设置为上午 12 点到中午 12 点?
- twitter-bootstrap - 如何使用引导程序垂直和水平放置相同的元素,组件
- java - 如何使用 Java 驱动程序检索现有 MongoDB 集合的验证器?