基于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 相关文章推荐
5 cool javascript apps
Mar 24 Javascript
关于JavaScript中原型继承中的一点思考
Jul 25 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
Jan 24 Javascript
javascript里绝对用的上的字符分割函数总结
Jul 31 Javascript
JavaScript中window.open用法实例详解
Apr 15 Javascript
jQuery带时间的日期控件代码分享
Aug 26 Javascript
js仿小米官网图片轮播特效
Sep 29 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
Apr 19 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
Sep 18 Javascript
解决JavaScript layui 下拉框不显示的问题
Aug 14 Javascript
详解vue3.0 diff算法的使用(超详细)
Jul 01 Javascript
vuex Module将 store 分割成模块的操作
Dec 07 Vue.js
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版(4)
2006/10/09 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
Yii2主题(Theme)用法详解
2016/07/23 PHP
JavaScript入门教程(10) 认识其他对象
2009/01/31 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
JavaScript字符串常用的方法
2016/03/10 Javascript
bootstrap实现每隔5秒自动轮播效果
2016/12/20 Javascript
BootStrap Fileinput初始化时的一些参数
2016/12/30 Javascript
实例分析nodejs模块xml2js解析xml过程中遇到的坑
2017/03/18 NodeJs
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
监听element-ui table滚动事件的方法
2019/03/26 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
2019/07/23 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
2020/02/17 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
React中使用Vditor自定义图片详解
2020/12/25 Javascript
Python入门篇之函数
2014/10/20 Python
Python的函数的一些高阶特性
2015/04/27 Python
在Python中处理时间之clock()方法的使用
2015/05/22 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
Python使用指定端口进行http请求的例子
2019/07/25 Python
Django单元测试中Fixtures的使用方法
2020/02/26 Python
python统计文章中单词出现次数实例
2020/02/27 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
探索HTML5本地存储功能运用技巧
2016/03/02 HTML / CSS
Omio西班牙:全欧洲低价大巴、火车和航班搜索和比价
2017/02/11 全球购物
linux面试题参考答案(7)
2012/10/29 面试题
在校生钳工实习自我鉴定
2013/09/19 职场文书
小学语文课后反思精选
2014/04/25 职场文书
《美丽的南沙群岛》教学反思
2014/04/27 职场文书
学术会议通知
2015/04/15 职场文书
2015年教研员工作总结
2015/05/26 职场文书
Python 文本滚动播放器的实现代码
2021/04/25 Python
Golang 并发下的问题定位及解决方案
2022/03/16 Golang
Python学习之时间包使用教程详解
2022/03/21 Python
MySql数据库触发器使用教程
2022/06/01 MySQL
小程序自定义轮播图圆点组件
2022/06/25 Javascript