我正在使用angular 7
。我有2个svgs
:一个是黑色的,当鼠标悬停时,我想在另一个上显示颜色。
这是我的测试代码段:
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.less']
})
export class AppComponent {
title = 'menu-svg';
svgCouleur="none";
svgNb="block";
//affiche le svg couleur et cache le noir et blanc
cacheSvg(e){
this.svgCouleur = "block";
this.svgNb = "none";
}
//affiche le svg noir et blanc et on cache la couleur
revientSvg(e){
this.svgCouleur ="none";
this.svgNb = "block";
}
}
/*no at the moment*/
<svg (mouseover)="cacheSvg($event)" [style.display]="svgNb" width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="4" fill="gray" />
Sorry, your browser does not support inline SVG.
</svg>
<svg (mouseleave)="revientSvg($event)" [style.display]="svgCouleur" width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
Sorry, your browser does not support inline SVG.
</svg>
<svg (mouseover)="cacheSvg($event)" [style.display]="svgNb" width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="4" fill="gray" />
Sorry, your browser does not support inline SVG.
</svg>
<svg (mouseleave)="revientSvg($event)" [style.display]="svgCouleur" width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="red" stroke-width="4" fill="yellow" />
Sorry, your browser does not support inline SVG.
</svg>
该效果将应用于所有svg,而不是当前的svg。
答案 0 :(得分:1)
您可以尝试给您的svg一个ID(或类),然后像这样设置其样式:
#test{
opacity:0;
}
#test:hover{
opacity:1;
}
该ID应该在您的svg中:
<svg id="test" .............. >
</svg>
我不确定这是否是您的真实意思,但这是一种简便的方法
答案 1 :(得分:0)
我建议您看一下ngx-svg,它可以创建容器并在这些容器中添加多个元素-在您的情况下是这样。它还具有其他元素,并且有一个文档,可让您了解您必须做的事情。