【问题标题】:Raphael elements event handlers not working for outline modeRaphael 元素事件处理程序不适用于大纲模式
【发布时间】:2012-01-31 07:53:05
【问题描述】:

Raphael 元素事件处理程序仅在元素被填充时执行。

当元素没有填充时,不会执行 Click 事件处理程序。对于未填充的元素,鼠标悬停事件的行为不同(鼠标悬停和鼠标悬停都被触发。)。

我的代码:http://jsfiddle.net/U5wda/1/

为什么会这样?

【问题讨论】:

    标签: raphael


    【解决方案1】:

    您可能想在指针事件上查看此article。正如您在fiddle 中看到的那样,如果您将指针事件设置为“填充”,我认为这会按照您想要的方式工作。但请记住,这可能在 IE 中不起作用,因为 Raphael 在 IE 中不使用 SVG。

    基本上,pointer-events: fill 使元素表现得像填充鼠标事件一样。

    【讨论】:

    • 为我修复了 - 点击事件将真正通过“空心”对象而没有填充并落在下面的对象上,因此不会触发鼠标事件。漂亮的修复迈克。谢谢!
    【解决方案2】:

    你可能已经意识到当元素没有被填充时, 拉斐尔只画了人物的边框,对吧?

    如果您在元素的边框上正确单击(这不太可能导致边框宽度太小),无论如何都会触发该事件。

    所以事件句柄没有问题,但你应该用 color 或 fill: transparent 填充你的元素。

    【讨论】:

    • 透明填充不起作用。是的,单击轮廓是有效的。但是鼠标悬停事件不起作用。
    • 不要使用透明的,我弄错了。但我可以确认未填充元素适用于所有单击和鼠标悬停、鼠标悬停、悬停事件。
    • mouseover、mouseout 的行为非常不同。请检查小提琴
    • 我检查过,它在 mouseout 和 mouseover 上都能完美运行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    相关资源
    最近更新 更多