- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个正在 HTML5 Canvas 上显示的图像,我向其中添加了一个 onmouseover
事件,理论上该事件应该调用已在同一文件中编写的 JavaScript 函数。
但是,当我查看页面并将光标悬停在图像上时,没有任何反应。
我已使用以下行将图像添加到 HTML 的隐藏部分:
<img id="assetBox" src = "images/box.png" alt="Assets" onmouseover = "displayAssetDescriptionTip()"/>
然后使用以下函数将图像绘制到 Canvas 上:
function drawDescriptionBoxes(){
var assetsDescriptionBox = document.getElementById("assetBox");
var liabilitiesDescriptionBox = document.getElementById("liabilitiesBox");
var incomeDescriptionBox = document.getElementById("incomeBox");
var expenditureDescriptionBox = document.getElementById("expenditureBox");
assetsDescriptionBox.src = 'images/box.png';
liabilitiesDescriptionBox.src = 'images/box.png';
incomeDescriptionBox.src = 'images/box.png';
expenditureDescriptionBox.src = 'images/box.png';
context.drawImage(assetsDescriptionBox, 70, 400, 120, 70);
context.drawImage(liabilitiesDescriptionBox, 300, 400, 120, 70);
context.drawImage(incomeDescriptionBox, 530, 400, 120, 70);
context.drawImage(expenditureDescriptionBox, 760, 400, 120, 70);
context.strokeText("Assets", 100, 490);
context.strokeText("Liabilities", 325, 490);
context.strokeText("Income", 550, 490);
context.strokeText("Expenditure", 775, 490);
}
当检测到光标悬停在图像上时我想要调用的函数是:
function displayAssetDescriptionTip(){
document.getElementById('tipsParagraph').innerHTML = "Assets are items that can be bought or sold for cash.";
console.log("displayAssetDescriptionTip being called");
}
但是,由于某种原因,当我在浏览器中查看页面并将光标悬停在 Canvas 上的图像上时,没有任何反应,控制台中也没有显示任何内容...我认为这意味着我的 onmouseover
事件没有触发,但我不知道为什么会这样 - 谁能向我解释一下,并指出我需要做什么才能正确执行?
编辑 22/02/2013 @ 14:40
我尝试添加以下 JS 来跟踪我拥有的单独 JS 文件之一中的鼠标坐标:
/*Add code to keep track of the mouse coordinates */
var boundingBox = canvas.getBoundingClientRect();
var mousex = (mouse_event.clientX-boundingBox.left)*(canvas.width/boundingBox.width);
var mouseY = (mouse_event.clientY-boundingBox.top)*(canvas.height/boundingBox.height);
我知道我必须编写代码来告诉脚本实际如何处理坐标,但我只是想先尝试一下,因为我自己已经有一段时间没有对坐标进行任何处理了。但是当我在浏览器中查看该页面时,我收到一个控制台错误,指出“ Canvas 未定义,并提示该行:
var boundingBox = canvas.getBoundingClientRect();
我想知道这是否是因为这是一个单独的脚本文件,并且在我刚刚添加它之前实际上没有任何对我正在使用的 Canvas 的引用。我是否需要再次定义它,即使它已经在运行此脚本的 HTML 页面中定义了?
最佳答案
仅仅绘制图像并不会神奇地使图像表现得像节点一样。例如,您无法更改其 src
并让它自动更改 Canvas 上显示的图像。
相反,您必须在 Canvas 上使用 onmousemove
手动跟踪鼠标移动,然后计算鼠标悬停的位置并对其进行处理。拥有在 Game Maker 中制作菜单的经验,我可以告诉你这非常困难!
关于javascript - HTML 图像 onmouseover 事件未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14984285/
有人可以帮我让 onmoseover 事件保持显示: block 吗?行为,直到我将鼠标悬停在不同的事件上?换句话说,我想保持一个事件可见,直到我将鼠标悬停在另一个事件上。我填写的答案很简单。我刚接触
应该很容易,但我无法让它工作。如标题中所述,我想将 onmouseover 的背景颜色从 span.name(橙色)更改为 T E S T 我找到了这个但是
我一直致力于在Java脚本中创建一种摆动效果,这样当鼠标移动到一些对象上时,它们会慢慢地保持悬停,直到它们停止。。我已经在JSFdle中实现了这一点:http://jsfiddle.net/z3s7v
首先,我必须说我处于非常基础的编程水平。这些问题的答案对某些人来说可能非常明显,但我就是想不出一种方法将所有这些放在一起。提前致谢。 我有这个 HTML 代码: Tema 1. Mecá
在第二个(右/bing)表条目中,我理解为什么从图像悬停到“bing”字符串可能会导致 bingfn()被解雇。 但是第一个(左/谷歌)表有 onmouseover在 ,因此我预计从图像悬停到文本并
DivElement collectWoodHover = querySelector("#collectWood"); if (collectWoodHover.onMouseOver == tru
我正在尝试制作一些东西,当您滚动图像的某个部分时,会使用 onmouseenter 和 onmouseleave 功能播放不同的歌曲。它适用于第一个图像映射,但由于某种原因,它不适用于第二个图像映射,
我目前正在学习使用java脚本,遇到了一个我无法解决的问题。为了练习,我在一个简单的 HTM 中编写了一个修改 div 上边距的脚本: var boton = (function () { var t
我正在使用 jQuery 1.7.2,我想做的是在一个 div 上触发 onmouseover (使用类 active),但在 onmouseout 上触发 将该类更改为 inactive,并将第二个
页面加载后,如果您检查控制台,您会看到该函数在我将鼠标悬停在元素上之前触发。如果我删除参数,则页面会等待我将鼠标悬停在元素上,但我会失去动态功能。我在传递元素时做错了什么吗? var myList =
如何定义 onmouseover 函数的特定持续时间? 例如,在元素悬停 500 毫秒后,onmouseover 开始运行(因此,如果用户停留时间不超过 500 毫秒,onmouseover 不会运行
我尝试做这样的事情: 当我将鼠标悬停在按钮上时,文本应该消失,当我鼠标移开时,文本应该再次显示.. 这是我的样本jsfiddle Request
我的计时器是通过 onmouseover 函数激活的。 我的 CSS 动画在 15 秒后完成,但我的计时器没有完成。每次鼠标悬停后,时间都会重新激活,而不是按时间倒计时。 Hover this tex
我正在使用 angularjs和谷歌柱形图以图表形式显示数据。当数据更多时,我显示带有水平滚动条的图表。滚动条打开时工具提示出现问题。 请查找演示 here . 当鼠标悬停在条形图上时,它会在工具提示
我需要一个脚本,它将应用于围绕一个圆圈的一组图像.. 现在通过脚本需要的是 在圆圈周围的鼠标悬停图像上应该放大并移动到中心。 如何使用 Javascript 和 CSS 做到这一点。 请具体说说CSS
我正在使用 PHP 创建在线购物网站。我正在使用 Bootstrap 来设计我的网站。我的问题是鼠标悬停显示添加购物车按钮和折扣图片。 这是我的代码 .jpg" alt="produc
我正在尝试将此背景更改器从 编辑后删除 实现到我的个人博客,该博客仅驻留在我的计算机上(未上传到互联网),但我不知道 js 是什么因为它是?我将如何将它添加到我的博客中?我知道有: 在 html 文
这是一个幻灯片功能,鼠标悬停我想让它停止。它没有在鼠标悬停时停止幻灯片放映,而是加快了速度??我如何更正此问题以停止鼠标悬停? function nextslide() { // Hide
是否可以使用 JavaScript 在每个选择的下拉菜单上添加悬停消息? 我会使用类似 document.getElementById('name_of_html_id') 的东西,然后是四个选项之一
我正在尝试将段落堆叠在一起。当我将鼠标悬停时,我希望显示该特定段落。但是我收到错误: 未捕获的 ReferenceError:分配中的左侧无效 JS: var topLayer = "p3"; fun
我是一名优秀的程序员,十分优秀!