基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果


Posted in Javascript onJanuary 09, 2018

效果图如下所示:

基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果 

在线地址: github.czero.cn/fancy 

点击下载安卓apk安装包

源码地址: github.com/czero1995/f…

项目主架构

基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果 

使用的库

  • 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文件,且文件体积减少至少一半)

实现细节

媲美原生的页面前进和后退的动画实现:

基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果 

指定transition:name

在data中声明默认的进出动画

基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果 

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

基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果 

拿到vuex的状态值

基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果 

然后进行判断

基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果 

最后将当前的组件名字传给vuex,实现不同的组件进去就有不同的切换动画。

下一页动画

.slide-go-enter-active,
.slide-go-leave-active {
 transition: all .5s;
 opacity: .8;
}
.slide-go-enter,
.slide-go-leave-to {
 transition: all .5s;
 transform: translate3d(100%, 0, 0);
 opacity: .8;
}

返回上一页动画

.slide-back-enter-active,
.slide-back-leave-active {
 transition: all .5s;
}
.slide-back-enter,
.slide-back-leave-to {
 transition: all .5s;
 transform: translate3d(-100%, 0, 0);
}

购物车左滑删除

基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果 

v-touch

在css中设置好删除按钮的偏移量

-webkit-transform: translate(-12%, 0);
-webkit-transition: all 0.3s linear;

左右滑方法

基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果 

滑动的时候触发select样式,进行绑定

让当前的列表项==购物车的列表,样式会被激活,出现左滑删除

基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果

基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果

注意页面的盒子使用盒子之后会和原生页面出现冲突,导致滑动不流畅

因此,需要在main.js指定默认的滑动方式为横向滑动触发

基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果 

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

基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果 

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

基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果

基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果

总结

以上所述是小编给大家介绍的基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery 设置元素相对于另一个元素的top值(实例代码)
Nov 06 Javascript
js焦点文字滚动效果代码分享
Aug 25 Javascript
jquery 无限极下拉菜单的简单实例(精简浓缩版)
May 31 Javascript
JS实现滑动门效果的方法详解
Dec 19 Javascript
node.js基础知识小结
Feb 26 Javascript
Angular使用动态加载组件方法实现Dialog的示例
May 11 Javascript
微信小程序中使用wxss加载图片并实现动画效果
Aug 13 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
May 09 Javascript
使用layui实现树形结构的方法
Sep 20 Javascript
Element Backtop回到顶部的具体使用
Jul 27 Javascript
vue 解决IOS10低版本白屏的问题
Nov 17 Javascript
介绍一下28个JS常用数组方法
May 06 Javascript
10个经典的网页鼠标特效代码
Jan 09 #Javascript
旺旺在线客服代码 旺旺客服代码生成器
Jan 09 #Javascript
JavaScript实现多重继承的方法分析
Jan 09 #Javascript
webpack多入口文件页面打包配置详解
Jan 09 #Javascript
Vue项目组件化工程开发实践方案
Jan 09 #Javascript
详解webpack之scss和postcss-loader的配置
Jan 09 #Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
Jan 09 #Javascript
You might like
apache2.2.4+mysql5.0.77+php5.2.8安装精简
2009/04/29 PHP
PHP array操作10个小技巧分享
2011/06/23 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
PHP版微信小店接口开发实例
2016/11/12 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
2021/03/09 Javascript
基于jquery的超简单上下翻
2010/04/20 Javascript
基于jquery实现点击左右按钮图片横向滚动
2013/04/11 Javascript
jQuery实现点击水纹波动动画
2016/04/10 Javascript
JavaScript设计模式开发中组合模式的使用教程
2016/05/18 Javascript
Node.js实现兼容IE789的文件上传进度条
2016/09/02 Javascript
用AngularJS来实现监察表单按钮的禁用效果
2016/11/02 Javascript
ionic2懒加载配置详解
2017/09/01 Javascript
vue打包后显示空白正确处理方法
2017/11/01 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
require.js 加载过程与使用方法介绍
2018/10/30 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
2019/11/09 Javascript
Python实现监控程序执行时间并将其写入日志的方法
2015/06/30 Python
常用python编程模板汇总
2016/02/12 Python
删除python pandas.DataFrame 的多重index实例
2018/06/08 Python
python json.loads兼容单引号数据的方法
2018/12/19 Python
python 如何引入协程和原理分析
2020/11/30 Python
聚网科技C++面试笔试题
2015/09/01 面试题
毕业生个人投资创业计划书
2014/01/04 职场文书
医务人员自我评价
2014/01/26 职场文书
《蜗牛的奖杯》教后反思
2014/04/24 职场文书
婚礼证婚人演讲稿
2014/09/13 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
2014年销售工作总结与计划
2014/12/01 职场文书
幼儿园亲子活动通知
2015/04/24 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
安全教育片观后感
2015/06/17 职场文书
边城读书笔记
2015/06/29 职场文书
Nginx静态压缩和代码压缩提高访问速度详解
2022/05/30 Servers