基于Vue、Vuex、Vue-router实现动画切换功能
本文主要介绍了基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果,需要的朋友可以参考下。希望能帮助到大家。
效果图如下所示:
 
 
在线地址: github.czero.cn/fancy
点击下载安卓apk安装包
源码地址: github.com/czero1995/f…
项目主架构
 
 
使用的库
- 
vue-cli (vue+webpack脚手架) 
- 
vue-router(路由跳转) 
- 
vuex(状态管理) 
- 
axios(数据请求) 
- 
mock.js(模拟后台数据) 
- 
vue-touch(手势判断) 
- 
fastclick(解决移动端浏览器 300 毫秒点击延迟问题) 
- 
vue-lazyload(图片懒加载) 
- 
swiper(轮播) 
设计布局:
将页面的固定布局 position:fixed (比如Header,Footer)全部改为绝对布 局position:absolute ;
因为fixed会出现莫名其妙的兼容性问题,比如在ios11或ios8下会失效,输入框软键盘激活之后会把底部的固定定位弹出去,导致布局错乱。
用absolute实现fixed细节可以参考这篇
- 
HTML5 
- 
CSS3 
- 
Less 
- 
rem(阿里用的那套rem算法) 
- 
Flex(弹性布局) 
- 
vue-touch(用于实现购物车左滑删除功能) *动画(vue原生transition实现原生app的效果) 
- 
数据请求:
- 
Mock(模拟后台数据) 
- 
Axios(请求数据) 
逻辑交互:
- 
vue(数据渲染,各个组件间的数值传递) 
- 
vue-router(组件间的路由跳转) 
- 
vuex(全局状态的管理) 
- 
优化方案:
- 
腾讯智图(压缩图片,减少图片的体积) 
- 
vue-lazyload(图片懒加载,缓解加载数据,提高网页性能) 
- 
fastclick(解决移动端300ms延迟,提高页面交互流畅度) 
- 
vue-rouer(路由懒加载,分离app的js为多个js文件,到对应的页面再执行对应的js) 
- 
webpack(config/index.js文件内的productionSourceMap改为false,这样打包出来的文件可以没有.map结尾的js文件,且文件体积减少至少一半) 
实现细节
媲美原生的页面前进和后退的动画实现:

指定transition:name
在data中声明默认的进出动画

在mounted()数据渲染初始化完成之后进行判断

拿到vuex的状态值

然后进行判断

最后将当前的组件名字传给vuex,实现不同的组件进去就有不同的切换动画。
下一页动画
| 1 2 3 4 5 6 7 8 9 10 11 | 
 
 
 
 
 
 
 
 
 
 
 | 
返回上一页动画
| 1 2 3 4 5 6 7 8 9 | 
 
 
 
 
 
 
 
 
 | 
购物车左滑删除

v-touch
在css中设置好删除按钮的偏移量
| 1 2 | 
 
 | 
左右滑方法

滑动的时候触发select样式,进行绑定
让当前的列表项==购物车的列表,样式会被激活,出现左滑删除


注意页面的盒子使用盒子之后会和原生页面出现冲突,导致滑动不流畅
因此,需要在main.js指定默认的滑动方式为横向滑动触发

订单页面,点击顶部导航和左右滑动进行组件的切换以及动画样式的判断

也是使用的v-touch组件,实现方式和组件切换类似。 我给每个订单状态的组件一个不同的数字,根据这个数字,判断组件是左滑动的动画还是又滑动的动画


相关推荐:
jquery根据锚点offset值实现动画切换_javascript技巧
js实现绿白相间竖向网页百叶窗动画切换效果_javascript技巧
以上就是基于Vue、Vuex、Vue-router实现动画切换功能的详细内容,更多请关注php中文网其它相关文章!
引用:http://www.php.cn/php-weizijiaocheng-384618.html

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号