javascript - 如何更改动态创建的图像的类属性值?
问题描述
我有一个空的身体元素。每次单击时,JS 单击处理程序都会将图像附加到 event.clientX 和 event.clientY。
这可行,但现在我希望创建的图像很好地淡入。我不确定我是否需要在某个地方设置一个 setTimeout。
所以我刚刚尝试添加一个带有过渡的类,JS函数如下所示:
document.addEventListener('click', function(event) {
var currentImg; // this is for later
var ix = event.clientX; // Get the coordinates
var iy = event.clientY;
var x = document.createElement("IMG");
x.setAttribute("src", images[0]);
x.setAttribute("width", "304");
x.setAttribute("height", "228");
x.style.position="absolute";
x.style.top= iy + 'px';
x.style.left= ix + 'px'; // display image where the click event happened
x.style.opacity = 0.1; // set opacity to 0.1
document.body.appendChild(x);
x.classList.add("fadeIn"); // add the fadeIn CSS class
var ix = null; // reset the position variables
var iy = "";
console.log(ix);
});
CSS 类看起来像这样,两者都不起作用
.fadeIn{
opacity:1;
}
.img{
transition: all 1s;
}
img:hover{
opacity:1;
}
该类是根据开发工具通过JS添加的,但是不透明度没有发生变化。所以我尝试添加悬停类,这也不会改变不透明度。
为什么添加了类,但是不透明度没有改变,这是因为它是添加到DOM中的新元素吗?以及如何在点击时优雅地淡入图像?请不要使用 jQuery,我可以用 jQuery 做到这一点。
这是代码笔
解决方案
确保使用 img(元素)而不是 .img(类)
还
x.style.transition = 'all 1s';
或者
x.classList.add('img');
推荐阅读
- typescript - 在 Typescript 中使用带有约束的泛型类型时出错 - 2536
- android - 如何在运行 optimize_for_inference.py 时修复“google.protobuf.message.DecodeError:解析消息时出错”
- amazon - 是否有任何方法或解决方法来安排 Amazon Mechanical Turk HIT?
- node.js - 查询人员按字段值搜索
- javascript - 保护 JavaScript 中自定义大写转换函数中的标点符号
- javascript - 闭包的具体用途是什么?
- rethinkdb - 如何获取嵌套数组字段
- java - 如何在 WSO2 4.9.0 中设置自定义用户代理
- python-3.x - 如何从python中的pandas数据框中的列中提取关键字(字符串)
- service-worker - 渐进式 Web 应用程序 Service Worker 能否找出它在哪个设备上运行(智能手机、平板电脑……)?