最简单的隐藏和显示svg的方法?

问题描述 投票:0回答:2

我正在使用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> 

效果应用于所有svgs,而不是当前的svgs。

javascript svg less angular7
2个回答
1
投票

你可以尝试给你的svg一个id(或类),然后像这样设计样式:

#test{
  opacity:0;
}
#test:hover{
  opacity:1;
}

id应该在你的svg里面:

<svg id="test" .............. >
</svg>

我不确定这是不是你的意思,但它是一个简单的方法


0
投票

我建议看一下ngx-svg,它允许创建容器并在这些容器中添加多个元素 - 在你的案例中。它还有其他元素,还有一个文档,可以让您了解自己必须做的事情。

© www.soinside.com 2019 - 2024. All rights reserved.