基于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实现由下向上展开效果的例子
Dec 08 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
May 19 Javascript
jQuery获取checkboxlist的value值的方法
Sep 27 Javascript
JSONP原理及简单实现
Jun 08 Javascript
vue的事件绑定与方法详解
Aug 16 Javascript
解决vue组件中使用v-for出现告警问题及v for指令介绍
Nov 11 Javascript
微信小程序项目实践之验证码倒计时功能
Jul 18 Javascript
node.js遍历目录的方法示例
Aug 01 Javascript
jsonp实现百度下拉框功能的方法分析
May 10 Javascript
layui文件上传控件带更改后数据传值的方法
Sep 23 Javascript
vue 出现data-v-xxx的原因及解决
Aug 04 Javascript
vue代码分块和懒加载非必要资源文件
Apr 11 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
isset和empty的区别
2007/01/15 PHP
PHP实现批量删除(封装)
2017/04/28 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
php装饰者模式简单应用案例分析
2019/10/23 PHP
javascript GUID生成器实现代码
2009/10/31 Javascript
浅谈JavaScript的全局变量与局部变量
2016/06/10 Javascript
jQuery增加、删除及修改select option的方法
2016/08/19 Javascript
js中动态创建json,动态为json添加属性、属性值的实例
2016/12/02 Javascript
vue使用axios跨域请求数据问题详解
2017/10/18 Javascript
深入浅析Vue.js计算属性和侦听器
2018/05/05 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
2018/08/09 Javascript
仿ElementUI实现一个Form表单的实现代码
2019/04/23 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
JS实现的简单tab切换功能完整示例
2019/06/20 Javascript
vue实现的多页面项目如何优化打包的步骤详解
2020/07/19 Javascript
使用jquery实现轮播图效果
2021/01/02 jQuery
[03:57]2016完美“圣”典风云人物:rOtk专访
2016/12/09 DOTA
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
python使用matplotlib画饼状图
2018/09/25 Python
python pandas实现excel转为html格式的方法
2018/10/23 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
python连接mysql有哪些方法
2020/06/24 Python
CSS3制作酷炫的三维相册效果
2016/07/01 HTML / CSS
Eastbay官网:美国最大的运动鞋网络零售商
2016/07/27 全球购物
英国花园药房: The Garden Pharmacy
2017/12/28 全球购物
意大利拉斐尔时尚购物网:Raffaello Network(支持中文)
2018/11/09 全球购物
德国价格合理的品牌商品购物网站:averdo
2019/03/21 全球购物
数百万免费的图形资源:Freepik
2020/09/21 全球购物
联谊会主持词
2014/03/26 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
农村党员一句话承诺
2014/05/30 职场文书
工程主管竞聘书
2015/09/15 职场文书
2016婚礼主持词开场白
2015/11/24 职场文书
三年级作文之小小梦想
2019/12/06 职场文书
python实战之90行代码写个猜数字游戏
2021/04/22 Python