自如大前端-web动画探索(一)

本文介绍了前端动画的各种实现方式,包括CSS3的transition和动画,逐帧动画的实现与优化,Lottie的扁平化路径剪辑动画,以及SVGA和APNG在不同场景的应用。重点探讨了各种动画形式的优缺点及其适用场景。
摘要由CSDN通过智能技术生成

前端项目直面客户,为了更好的交互体验,免不了需要使用动画来增香提味。在此分享自如动画的尝试与探索。

一、简单的过渡效果transition

使用transition实现:位移、旋转、缩放、透明度等简单过渡效果。
image

**优点:**流畅、简单。
**缺点:**仅能实现简单动画,仅能监控动画结束(transitionend),无法实现用户交互。

transitionend(结束)事件监控:

<template>
 <div class="box1" ref="box1" :class="{move: isMove}" @click="isMove=!isMove"></div>
</template>
<script lang="tsx">
import { Component, Vue } from 'vue-property-decorator';
@Component({ name: 'index' })
export default class Index extends Vue {
 private isMove: boolean = false;
 private transitions: any = {
    'transition':['transitionend'],
    'OTransition':['otransitionend'],
    'MozTransition':['mozTransitionEnd'],
    'WebkitTransition':['webkitTransitionEnd']
 };
 mounted(){
     let _style = (this.$refs.box1 as any).style;
     for(let t in this.transitions){
         if( _style[t] !== undefined ){
         this.transitions[t].map((element:string)=>{
             (this.$refs.box1 as any).addEventListener(element, ()=>{this.callBack(element)}, false);
             });
         }
     }
 }
 callBack(type:string){
     // do something
     console.log(type); // transitionend
 }
}
</script>
<style lang="scss" scoped>
.box1{
     width: 100px;
     height: 100px;
     background: #999;
     transition: all 0.5s;
     &.move{
        transform: translateX(100px);
     }
}
</style>

二、逐帧动画

image
动画的速度曲线 animation-timing-function :
image

除了以上常规用法,还有一个实用的函数:

阶梯函数:steps(n,direction),这个函数能够起到定格动画的效果。阶梯函数不像其他定时函数那样,平滑的过渡,而是以帧的方式过渡

n:阶梯数(必须是一个正整数),它将动画的总时长按照阶梯数等距划分

direction:可选值为start或end,默认end

start表示动画的第一帧会被立即执行,直接从第二帧开始,然后以第一帧结束;

end则表示动画从第一帧开始到正常结束;
image
**优点:**能实现较复杂的动画

**缺点:**图片资源容易过大,

仅能监控动画开始(transitionstart)、结束(transitionend)、重复(animationiteration),无法实现用户交互。
1、实现

1)生成雪碧图(横向纵向均可),在线生成雪碧图地址:

https://www.toptal.com/developers/css/sprite-generator
image
2)使用animation的steps实现动画:

<template>
 <div class="canvas">
 <div  v-for="(item,index) in list" :key="index" :class="`step ${item.className||''} ani-${item.i
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Web前端网页设计作品是指设计师使用HTML、CSS和JavaScript等技术语言,创作出具有美观、互动性和用户友好性的网页界面。这些作品能够吸引用户的注意力,并提供舒适的浏览体验。 一个出色的网页设计作品需要考虑以下几个方面: 首先,美观性。设计师需要使用各种色彩、排版、图像、动画效果等元素,创造出颜值高、大方得体的网页界面。整体布局应该合理分配元素,使得页面整洁直观,不会让用户感到混乱和困惑。 其次,响应式设计。随着移动设备的普及,不同屏幕尺寸的用户通过不同的设备访问网页。因此,设计师需要充分考虑到这一点,采用响应式设计的方式,使得网页能够适应各种屏幕尺寸,并确保内容的可读性和可操作性。 另外,互动性。设计师可以通过使用JavaScript等技术,添加各种交互效果,如下拉菜单、轮播图、表单上传等,为用户提供更好的操作体验和视觉享受。这些互动元素能够激发用户的兴趣,并提高用户留存率。 最后,用户友好性。设计师需要考虑用户使用网页的便利性和舒适度。比如,使用明确的导航栏,清晰的标识和链接,以及易于理解和操作的页面元素,让用户能够在网页上自如地找到自己需要的内容或功能。 总之,一个成功的Web前端网页设计作品应该是美观、响应式、具有互动性和用户友好性的。它不仅能够吸引用户,还能提供良好的用户体验,实现网页的交互目标,从而提升网站的价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值