HTML5 Canvas鼠标悬停在画布上的事件
问题描述:
我正在将图像载入画布元素并播放声音文件 我想在将鼠标移到画布上的图像时再次播放声音。 我知道该怎么做,在画布下添加一个按钮,但我不知道如何通过将鼠标移动到图像上来实现这一点。HTML5 Canvas鼠标悬停在画布上的事件
有人可以帮助我吗?
答
您需要使用JavaScript来创建一个鼠标悬停事件......看看这个例子
function RefreshMouseEvents(ElementId)
{
FireEvent(ElementId, 'mouseover');
setTimeout("TriggerMouseEvent('" + ElementId + "', '" + event.clientX + "', '" + event.clientY + "')", 1);
}
function TriggerMouseEvent(ElementId, MouseXPos, MouseYPos)
{
if(IsMouseOver(ElementId, (1*MouseXPos), (1*MouseYPos)))
FireEvent(ElementId, 'mouseover');
else
FireEvent(ElementId, 'mouseout');
}
function IsMouseOver(ElementId, MouseXPos, MouseYPos)
{
if(document.getElementById(ElementId) != null)
{
var Element = document.getElementById(ElementId);
var Left = Element.getBoundingClientRect().left,
Top = Element.getBoundingClientRect().top,
Right = Element.getBoundingClientRect().right,
Bottom = Element.getBoundingClientRect().bottom;
return ((MouseXPos >= Left) && (MouseXPos <= Right) && (MouseYPos >= Top) && (MouseYPos <= Bottom))
}
else
return false;
}
function FireEvent(ElementId, EventName)
{
if(document.getElementById(ElementId) != null)
{
if(document.getElementById(ElementId).fireEvent)
{
document.getElementById(ElementId).fireEvent('on' + EventName);
}
else
{
var evObj = document.createEvent('Events');
evObj.initEvent(EventName, true, false);
document.getElementById(ElementId).dispatchEvent(evObj);
}
}
}
我已经包含一些链接教程初学者以下。请标记此答案,如果你觉得有帮助。
谢谢。 我真的很陌生,也许你可以解释这到底是什么?或者你知道一个很好的教程吗? – user2348157 2013-05-03 20:40:00
我在答案中提供了一些有用的教程,以帮助您入门。 – 2013-05-03 20:47:04