离子图像填充颜色不变

cor*_*114 0 css ionic-framework ionic3

我正在使用Ionic 3,我为此添加了一些css代码

示例 -

有人在需要更改填充颜色后点击图像.但它不适合我.任何人都可以帮我如何正确地做到这一点?

谢谢

CSS

clap {
  /*========================
   styles
    =======================*/
  .clap {
    position: relative;
    outline: 1px solid transparent;
    border-radius: 0;
    border: 0px solid #a750a9;
    top:-0.2rem;
    height: 0px; margin: 0px auto; margin-left: 2.3rem;
    background: none;   cursor: pointer;animation: pulse 2s infinite;

  }
  .clap:after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    border-radius: 50%;
    width: 44px;
    height: 44px;
  }
  .clap:hover {
    cursor: pointer;
    border: 0px solid #a750a9;
    transition: border-color 0.3s ease-in;
  }
  .clap:hover:after {
    animation: shockwave 1s ease-in infinite;
  }
  .clap img {
    width: 20px;
    fill: none;
    stroke: #a750a9;
    stroke-width: 2px; margin-top: -1.5rem;
  }
  .clap img.checked {
    fill: #a750a9;
    stroke: #a750a9;
    stroke-width: 1px;
  }
}
Run Code Online (Sandbox Code Playgroud)

HTML

<img   [class.checked]="clapIconChecked"  src="assets/imgs/clap.png">
Run Code Online (Sandbox Code Playgroud)

.TS

     export class ClapComponent  {
     clapIconChecked = false;

   this.clapIconChecked = true;
      }
    }
Run Code Online (Sandbox Code Playgroud)

Sra*_*van 7

您的申请代码class是正确的

<img [class.checked]="clapIconChecked" src="assets/imgs/clap.png">

Fill color适用于svg但不幸的是不适用于jpgpng

您可以使用filters-webkit-filter,filter它可以将图像更改为不同的shades.

请检查此示例

/*Filter styles*/
.saturate { filter: saturate(3); }
.grayscale { filter: grayscale(100%); }
.contrast { filter: contrast(160%); }
.brightness { filter: brightness(0.25); }
.blur { filter: blur(3px); }
.invert { filter: invert(100%); }
.sepia { filter: sepia(100%); }
.huerotate { filter: hue-rotate(180deg); }
.rss.opacity { filter: opacity(50%); }
Run Code Online (Sandbox Code Playgroud)
<img src="https://ibcdn.imagesbazaar.com/img280/16449/220-SM696607.jpg" title="original">
<img  src="https://ibcdn.imagesbazaar.com/img280/16449/220-SM696607.jpg" title="saturate" class="saturate">
<img  src="https://ibcdn.imagesbazaar.com/img280/16449/220-SM696607.jpg" title="grayscale" class="grayscale">
<img  src="https://ibcdn.imagesbazaar.com/img280/16449/220-SM696607.jpg" title="contrast" class="contrast">
Run Code Online (Sandbox Code Playgroud)

请运行上面的代码段

这是一个例子

我们甚至可以给我们custom colors,但我们需要做一些css

body{
  background: #333 url(/images/classy_fabric.png);
  width: 430px;
  margin: 0 auto;
  padding: 30px;
}
.preview{
  background: #ccc;
  width: 415px;
  height: 430px;
  border: solid 10px #fff;
}

input[type='radio'] {
  -webkit-appearance: none;
  -moz-appearance: none;
  width: 25px;
  height: 25px;
  margin: 5px 0 5px 5px;
  background-size: 225px 70px;
  position: relative;
  float: left;
  display: inline;
  top: 0;
  border-radius: 3px;
  z-index: 99999;
  cursor: pointer;
  box-shadow: 1px 1px 1px #000;
}

input[type='radio']:hover{
  -webkit-filter: opacity(.4);
  filter: opacity(.4);    
}

.red{
  background: red;
}

.red:checked{
  background: linear-gradient(brown, red)
}

.green{
  background: green;
}

.green:checked{
  background: linear-gradient(green, lime);
}

.yellow{
  background: yellow;
}

.yellow:checked{
  background: linear-gradient(orange, yellow);
}

.purple{
  background: purple;
}

.pink{
  background: pink;
}

.purple:checked{
  background: linear-gradient(purple, violet);
}

.red:checked ~ img{
  -webkit-filter: opacity(.5) drop-shadow(0 0 0 red);
  filter: opacity(.5) drop-shadow(0 0 0 red);
}

.green:checked ~ img{
  -webkit-filter: opacity(.5) drop-shadow(0 0 0 green);
  filter: opacity(.5) drop-shadow(0 0 0 green);
}

.yellow:checked ~ img{
  -webkit-filter: opacity(.5) drop-shadow(0 0 0 yellow);
  filter: opacity(.5) drop-shadow(0 0 0 yellow);
}

.purple:checked ~ img{
  -webkit-filter: opacity(.5) drop-shadow(0 0 0 purple);
  filter: opacity(.5) drop-shadow(0 0 0 purple);
}

.pink:checked ~ img{
  -webkit-filter: opacity(.5) drop-shadow(0 0 0 pink);
  filter: opacity(.5) drop-shadow(0 0 0 pink);
}


img{
  width: 394px;
  height: 375px;
  position: relative;
}

.label{
  width: 150px;
  height: 75px;
  position: absolute;
  top: 170px;
  margin-left: 130px;
}

::selection{
  background: #000;
}
Run Code Online (Sandbox Code Playgroud)
<div class="preview">
  <input class='red' name='color' type='radio' />
  <input class='green' name='color' type='radio' />
    <input class='pink' name='color' type='radio' />
  <input checked class='yellow' name='color' type='radio' />
  <input class='purple' name='color' type='radio' />  
  <img src="https://i.stack.imgur.com/bd7VJ.png"/>
</div>
Run Code Online (Sandbox Code Playgroud)

更新:

span根据操作要求实施

演示使用跨度