1

当我注意到向元素添加悬停效果时,我只是在玩 SVG,但仅在 FE 中行为相当奇怪。在 ie,chrome 等中,它的所有工作都如我所料。

简而言之,悬停在元素上确实会添加悬停样式,但并非总是如预期的那样。

奇怪的是,如果您滚动到 1000 SVG(压力测试)的底部并将鼠标悬停在 lst 元素下方的白色区域,您会看到它应用了悬停效果而不接触元素。

这就是我构建 SVG 的方式

    for (var i=0;i<1000;i++)
{
    var newBlock = $('<div id="map'+i+'">');
    newBlock.svg();
    newBlock.appendTo($('body'));
    console.info(newBlock);
    var svg = newBlock.svg('get');
    svg.polygon([[17,0],[33,8],[33,27],[16,34],[0,26],[0,8]], {fill: '#B8E100', stroke: '#A5CC00', strokeWidth: 1});
}

http://jsfiddle.net/2cB89/

任何想法为什么会发生这种情况以及为什么它只发生在 Firefox 中?

4

1 回答 1

1

您需要提供 svg 元素的宽度和高度属性。

var svg在该行之后添加以下内容。

    svg.configure({width: '34px', height: '35px'});

没有它们,svg 的大小应为 300 x 150 像素。Chrome 没有正确实现大小,而 Firefox 确实如此,尽管在您的情况下,Chrome 的默认行为更接近您想要的。

这是一个更正的 jsFiddle

于 2013-02-03T08:37:06.847 回答