基于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 相关文章推荐
一个多次搜索+多次传值的解决方案
Jan 20 Javascript
javascript实现时间格式输出FormatDate函数
Jan 13 Javascript
JQuery显示隐藏DIV的方法及代码实例
Apr 16 Javascript
浅谈javascript中的加减时间
Jul 12 Javascript
jQuery检查元素存在性(推荐)
Sep 17 Javascript
前端跨域的几种解决方式总结(推荐)
Aug 16 Javascript
详解如何运行vue项目
Apr 15 Javascript
详解如何给React-Router添加路由页面切换时的过渡动画
Apr 25 Javascript
小程序scroll-view安卓机隐藏横向滚动条的实现详解
May 16 Javascript
vue proxy 的优势与使用场景实现
Jun 15 Javascript
Element PageHeader页头的使用方法
Jul 26 Javascript
基于Vue+Webpack拆分路由文件实现管理
Nov 16 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
PHP+XML 制作简单的留言本 图文教程
2009/11/02 PHP
discuz程序的PHP加密函数原理分析
2011/08/05 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
javascript之可拖动的iframe效果代码
2008/08/01 Javascript
prototype Element学习笔记(Element篇三)
2008/10/26 Javascript
JavaScript对象学习经验整理
2013/10/12 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
2014/11/23 Javascript
使用AngularJS处理单选框和复选框的简单方法
2015/06/19 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
2017/03/09 Javascript
Vue开发中整合axios的文件整理
2017/04/29 Javascript
详解Angular4 路由设置相关
2017/08/26 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
2018/01/04 Javascript
原生js+ajax分页组件
2020/01/30 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
2020/02/15 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
跟老齐学Python之从格式化表达式到方法
2014/09/28 Python
Python的组合模式与责任链模式编程示例
2016/02/02 Python
python并发2之使用asyncio处理并发
2017/12/21 Python
Python中@property的理解和使用示例
2019/06/11 Python
python操作docx写入内容,并控制文本的字体颜色
2020/02/13 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
2020/03/10 Python
python3列表删除大量重复元素remove()方法的问题详解
2021/01/04 Python
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
资深财务管理人员自我评价
2013/09/22 职场文书
网络教育自我鉴定
2014/02/04 职场文书
公证书标准格式
2014/04/10 职场文书
户外活动总结范文
2014/04/30 职场文书
大学生操行评语大全
2014/12/31 职场文书
导游词书写之黄山
2019/08/06 职场文书
html5调用摄像头截图功能
2022/01/18 Javascript
Javascript中Microtask和Macrotask鲜为人知的知识点
2022/04/02 Javascript