javascript - 如何单击以将当前轮播幻灯片中的图像放置到画布上?
问题描述
我正在创建一个 Web 应用程序,用户可以在其中滑动到 Bootstrap Carousel 上选择的图像,然后单击画布以放置所述选择图像。用户可以通过多次点击多次放置相同的图像。
我在绘图部分遇到困难。
我已经在轮播中获得了活动图像的点击坐标和来源,并且我尝试了一个等待绘制的函数,以防在最初调用绘制函数时未加载图像。
javascript
var canvas = document.getElementById('canv');
var context = canvas.getContext('2d');
canvas.addEventListener('click', placeImage);
function placeImage() {
cx = event.pageX;
cy = event.pageY;
var url = document.getElementsByClassName("carousel-item
active")[0].children[0].src;
var sticker = new Image();
sticker.src = url;
draw(context, sticker, cx, cy);
}
function draw(context, sticker, cx, cy) {
if (!sticker.complete) {
setTimeout( function() {
draw(context, sticker, cx, cy);
}, 50);
return;
}
context.drawImage(sticker, cx, cy);
}
我希望当我单击画布时,将在画布上我刚刚单击的坐标处绘制与活动轮播幻灯片中的图像(尺寸和所有)相同的图像。实际输出什么都没有。
解决方案
推荐阅读
- flutter - 当我从列表中删除项目并执行 setState((){}) 时,颜色状态正在发生变化
- python - 将 YAML dict 转换为键/值对列表
- nlp - 斯坦福 CoreNLP 输出
- jquery - 属性类从子级到父级
- python - 如何比较具有相同键的两个嵌套字典并使用python中的条件更新值?
- regex - vscode 片段转换文件名正则表达式
- css - 使用 TailwindCSS 创建动画分段控件
- python - Python - 从 html web url 写入指定年份的所有文本文件内容
- racket - 如何设置 DrRacket 以便我可以画图
- r - 有没有办法为特定的数据点分配特定的颜色?