食物food - mingliao/nuxt_elm GitHub Wiki
这个页面样式可以参考,好好写一下。 点击排序的时候,transition切换。
- 排序箭头反转
<svg width="10" height="10" xmlns="http://www.w3.org/2000/svg" version="1.1" class="sort_icon">
<polygon points="0,3 10,3 5,8"/>
</svg>
.sort_icon {
transition: all .3s; //动画效果
}
.choose_type{
.sort_item_container{
.sort_icon{
transform: rotate(180deg); //对svg使用这个样式,不需要用多个svg替换。
fill:$blue;
}
}
}
复习一下transition的用法,
<transition name="showlist" v-show="category">
<section v-show="sortBy == 'food'" class="category_container sort_detail_type">
.....
</section>
</transition>
.showlist-enter-active, .showlist-leave-active {
//中间状态。
transition: all 10s;
transform: translateY(0);
/*background: #f00;*/
}
.showlist-enter, .showlist-leave-to {
opacity: 0;
transform: translateY(-100%);//最开始和最后的状态
}
transition标签一般是为了做显隐某个元素过渡效果,
编写过渡的时候的步骤:
- 元素在它最后要显示的位置。
比如上面的示例,
.category_container.sort_detail_type
最后的位置在只是隐藏而已。
可以f12 把这个类的display:none
去除。就可以看到如上的显示效果了。
- 编写开始和最终的状态,以及中间状态。 最开始状态,透明度为0,向上偏移100%,
.showlist-enter, .showlist-leave-to {
opacity: 0;
transform: translateY(-100%);//最开始和最后的状态
}
中间状态,设置过渡效果。
.showlist-enter-active, .showlist-leave-active {
//中间状态。
transition: all 10s;
transform: translateY(0);
/*background: #f00;*/
}
最终状态,如果有设置最终状态,就使用最终状态,然后再使用css自身的状态。否则,就使用元素自身的css样式状态了。
.showlist-enter-to {
....
}
可以参考示例codepen
当状态开始改变的时候,比如元素显示的时候,或者元素隐藏的时候。就按照这个顺序进行了。
状态变化如图
第一次制作动图,可能比较大,不给上传。
图链接