过渡结束后,Gooey效果搞砸了

时间:2017-12-20 22:20:11

标签: jquery css css3 svg-filters

我试图创造一种具有粘性效果的单选按钮。 转换发生时效果看起来很好,但是一旦过渡结束,效果就会混乱(颜色混合不好,边缘发光)。

我一直试图弄清楚问题是什么,没有成功。

视频:https://vimeo.com/248225026

以下是代码:



$('.register-option').click(function() {
  $('.register-option').removeClass('selected');
  $(this).addClass('selected');
});

body {
  background-color: rgb(158, 158, 158);
}

.register-choose {
  -webkit-filter: url(#goo);
  filter: url(#goo);
}

.register-choose .register-option {
  position: relative;
  width: 100px;
  height: 40px;
  border-radius: 120px;
  display: inline-block;
  color: #000;
  font-family: Tahoma;
  line-height: 40px;
  font-size: 12px;
  background-color: #fff;
  text-align: center;
  -webkit-transition: all 600ms cubic-bezier(0.165, 0.84, 0.44, 1);
  transition: all 600ms cubic-bezier(0.165, 0.84, 0.44, 1);
  background-repeat: no-repeat;
}

.register-choose .register-option.selected {
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}

.register-choose .register-option:first-of-type.selected {
  background-color: rgb(0, 181, 255);
}

.register-choose .register-option:last-of-type.selected {
  background-color: rgb(255, 118, 217);
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="register-choose">
                <span class="register-option selected">Male</span>
<span class="register-option">Female</span>
</span>

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
		<defs>
			<filter id="goo">
				<feGaussianBlur in="SourceGraphic" stdDeviation="10" result="blur" />
				<feColorMatrix in="blur" mode="matrix" values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 16 -6" result="goo" />
				<feComposite in="SourceGraphic" in2="goo" operator="atop" />
			</filter>
		</defs>
	</svg>
&#13;
&#13;
&#13;

感谢。

1 个答案:

答案 0 :(得分:1)

这是一个神奇的咒语,似乎解决了Firefox的视觉错误。我不知道它为什么会起作用,但它似乎是Firefox过滤器代码的正确部分。

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
        <defs>
            <filter id="goo" >
                <feGaussianBlur in="SourceGraphic" stdDeviation="10" result="blur" />
                <feColorMatrix in="blur" mode="matrix" values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 16 -6"/>

    <feComponentTransfer result="goo">
      <feFuncA type="table" tableValues="0 .2 .4 .6 1 1"/>
     </feComponentTransfer>
            <<feComposite in="SourceGraphic" in2="goo" operator="atop" />
            </filter>
        </defs>
    </svg>