我有一个通过调整线性梯度和高度达到一个对角线的元素 - 在两种不同的状态下。现在我尝试在这些状态之间切换,并平滑过渡红色三角形,这样看起来就像是一个跷跷板:-)问题是,从一个状态到另一个状态它改变方向并且很跳跃,我没有找到一种方法来流利地进行动画制作..有没有一种方法可以让我想要使用纯CSS,例如使用转换?使用线性梯度(纯CSS)实现动画跷跷板效果
let btn = document.getElementsByTagName('button')[0];
let stage = document.getElementById('stage');
btn.addEventListener('click', function() {
stage.classList.toggle('fixie');
});
body,
ul {
padding: 0;
margin: 0;
}
#stage {
width: 100%;
height: 14em;
background: pink;
padding: 0;
border: 1px solid blue;
}
#stage::before {
display: block;
position: relative;
width: 100%;
height: 100%;
/*as high as #stage*/
opacity: 0.4;
content: '';
z-index: 1;
background: linear-gradient(to left bottom, red 50%, pink 50%);
/*transition: height 4s;*/
/*transition: linear-gradient 4s 8s;*/
}
#stage.fixie::before {
height: 30%;
background: linear-gradient(to right bottom, red 50%, pink 50%);
}
<div id="stage"></div>
<button>animate gradient</button>
这里是我的FIDDLE
你已经检查过CSS3和关键帧吗? – dutchsociety
你想让它看起来像你的小提琴,只是没有通过JS触发它?或者它应该是什么样子? – CBroe
抱歉不清楚:JS更改类可以,2个状态都可以,但是从一个状态到另一个状态的转换应该是平滑的,所以*红色三角形应该表现得像一个“跷跷板”*。如果没有班级,班级的样子如何: - /我希望这更容易理解? –