Когда непрозрачность 0 * не * прозрачна? - PullRequest
0 голосов
/ 08 июня 2011

У меня есть любопытная проблема (и исправление), когда я рисую прямоугольник с нулевой непрозрачностью (для событий мыши), но он не прозрачен. В прошлом он был прозрачным, но я кое-что изменил в коде, и он больше не прозрачен. Это прямоугольник:

shape = svgDocument.createElementNS(svgns, "rect");
shape.setAttributeNS(null, "x",      x);
shape.setAttributeNS(null, "y",      y);
shape.setAttributeNS(null, "width",  w);
shape.setAttributeNS(null, "height", h);
shape.setAttributeNS(null, "stroke", "none");
shape.setAttributeNS(null, "stroke_width", 0);
shape.setAttributeNS(null, "fill_opacity", 0);
shape.setAttributeNS(null, "stroke_opacity", 0);
shape.setAttributeNS(null, "stroke_dasharray", 0);
shape.setAttributeNS(null, "fill", "#ffffff");
shape.setAttributeNS(null, "onmouseover", "popup_on(evt)");
shape.setAttributeNS(null, "onmouseout",  "popup_off(evt)");
svgDocument.documentElement.appendChild(shape);

Я что-то изменил - я не уверен, что - и поле больше не прозрачно - оно полностью скрывает фоновые линии сетки. Я прогуглил это и попытался изменить цвет заливки без изменений. В конце концов, я нашел примеры Mozilla MDN, в которых использовалось «прозрачное». Это работает как в Chrome, так и в FF (не пробовал IE9).

«прозрачный» не задокументирован как значение в спецификации SVG 1.1 2nd edn. Есть идеи, что здесь происходит? Есть ли что-то необычное в прямоугольнике выше?

1 Ответ

2 голосов
/ 08 июня 2011

Разве эти атрибуты SVG не должны содержать тире вместо подчеркивания (то есть fill-opacity)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...