基于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使用addClass()方法给元素添加多个class样式
Mar 26 Javascript
javascript中createElement的两种创建方式
May 14 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
Nov 03 Javascript
JS实现单击输入框弹出选择框效果完整实例
Dec 14 Javascript
jQuery CSS3相结合实现时钟插件
Jan 08 Javascript
node-http-proxy修改响应结果实例代码
Jun 06 Javascript
Bootstrap学习笔记之css样式设计(1)
Jun 07 Javascript
JavaScript实现输入框与清空按钮联动效果
Sep 09 Javascript
Vue.js 递归组件实现树形菜单(实例分享)
Dec 21 Javascript
详解angularjs跨页面传参遇到的一些问题
Nov 01 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
Jul 16 Javascript
vue使用echarts实现折线图
Mar 21 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实现QQ空间获取当前用户的用户名并生成图片
2015/07/25 PHP
PHP实现路由映射到指定控制器
2016/08/13 PHP
php/JS实现的生成随机密码(验证码)功能示例
2019/06/06 PHP
PHP二维数组分页2种实现方法解析
2020/07/09 PHP
javascript 简单抽屉效果的实现代码
2010/03/09 Javascript
jQuery基础知识filter()和find()实例说明
2010/07/06 Javascript
JQuery小知识
2010/10/15 Javascript
ExtJS 入门
2010/10/29 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
2014/02/11 Javascript
JavaScript数组常用方法
2015/03/02 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
2015/09/18 Javascript
javascript实现右侧弹出“分享到”窗口效果
2016/02/01 Javascript
js简单判断flash是否加载完成的方法
2016/06/21 Javascript
JS使用onerror捕获异常示例
2016/08/03 Javascript
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
angular过滤器实现排序功能
2017/06/27 Javascript
EasyUI的DataGrid每行数据添加操作按钮的实现代码
2017/08/22 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
VUE 实现element upload上传图片到阿里云
2020/08/12 Javascript
详解tensorflow实现迁移学习实例
2018/02/10 Python
Django中密码的加密、验密、解密操作
2019/12/19 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
Python3 assert断言实现原理解析
2020/03/02 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
2020/03/11 Python
python2.7使用scapy发送syn实例
2020/05/05 Python
Django中template for如何使用方法
2021/01/31 Python
护士个人简历自荐信
2013/10/18 职场文书
简历的自我评价
2014/02/03 职场文书
动员大会主持词
2014/03/20 职场文书
艺术设计专业个人求职信
2014/04/10 职场文书
集中整治工作方案
2014/05/01 职场文书
党的群众路线教育实践活动个人整改方案
2014/09/21 职场文书
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js