svg要素でjavascriptのclassListを使用できない問題が発生しています。MS-EdgeでclassListが動作しない
私はこのコードのシンプルな作品で問題を複製さ:
HTML
<svg viewBox="0 0 100 100">
<circle id="circle" r="40" cx="50" cy="50"></circle>
</svg>
CSS
.red{
fill: red;
}
javascriptの
のdocument.getElementById("circle").classList += "red";
JS-フィドル:https://jsfiddle.net/gqckv029/
私は、Microsoftはそれが修正されたと述べているインターネット上でこのチケットを見つけました。 https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/1173756/。それは私には当てはまらないようです。クラス追加
が好ましいが、代わりにSVG要素のジャバスクリプト有する要素属性(のようなこの場合に記入)を変更するための回避策も答えとして十分です。
最終的なメモ:現実の状況では、背景色ではなくCSSアニメーションをトリガーしようとしています。
classListは文字列ではありません。あなたは 'document.getElementById(" circle ").classList.add( 'red');' ....すべてのブラウザ(Edgeだけではありません) –
修正、あなたのコードは他のブラウザでも動作し、 'document.getElementById(" circle " ).classname + = "red"; ' - 要素がすでに' class = "blue" 'を持っていれば' class = "bluered" '--addを使うと' class = "blue red "' –
@Jaromanda X素晴らしい!それは実際問題を解決するようです。私は今からclassList.add()を使ってjavascriptを改善していきます。正式な回答としてそれをドロップして、私はそれを受け入れるでしょう。 – RMo