基于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 相关文章推荐
等待指定时间后自动跳转或关闭当前页面的js代码
Jul 09 Javascript
一个JavaScript的求爱小特效
May 09 Javascript
jQuery+HTML5美女瀑布流布局实现方法
Sep 21 Javascript
ajax跨域调用webservice的实现代码
May 09 Javascript
使用JQuery选择HTML遍历函数的方法
Sep 17 Javascript
js判断iframe中元素是否存在的实现代码
Dec 24 Javascript
Vue制作Todo List网页
Apr 26 Javascript
js实现鼠标移动到图片产生遮罩效果
Oct 21 Javascript
关于echarts在节点显示动态数据及添加提示文本所遇到的问题
Apr 20 Javascript
JS的函数调用栈stack size的计算方法
Jun 24 Javascript
react PropTypes校验传递的值操作示例
Apr 28 Javascript
jQuery实现移动端图片上传预览组件的方法分析
May 01 jQuery
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面向对象的进阶学习(抽像类、接口、final、类常量)
2012/05/07 PHP
Yii实现自动加载类地图的方法
2015/04/01 PHP
PHP微信开发之模板消息回复
2016/06/24 PHP
php使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
深入学习微信网址链接解封的防封原理visit_type
2019/08/15 PHP
用js判断浏览器是否是IE的比较好的办法
2007/05/08 Javascript
仿迅雷焦点广告效果(JQuery版)
2008/11/19 Javascript
Javascript中定义方法的另类写法(批量定义js对象的方法)
2011/02/25 Javascript
jquery隔行换色效果实现方法
2015/01/15 Javascript
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
js实现鼠标经过表格行变色的方法
2015/05/12 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
JS中mouseover和mouseout多次触发问题如何解决
2016/06/06 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
简单的Vue异步组件实例Demo
2017/12/27 Javascript
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
2019/07/18 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
Vue中keep-alive组件的深入理解
2020/08/23 Javascript
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
使用matplotlib画散点图的方法
2018/05/25 Python
python3安装speech语音模块的方法
2018/12/24 Python
如何通过Python实现标签云算法
2019/07/02 Python
python用quad、dblquad实现一维二维积分的实例详解
2019/11/20 Python
python中子类与父类的关系基础知识点
2021/02/02 Python
你正在寻找的CSS3 动画技术
2011/07/27 HTML / CSS
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
外贸销售员求职的自我评价
2013/11/23 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
上课迟到检讨书
2015/05/06 职场文书
医院病假条怎么写
2015/08/17 职场文书
如何用python插入独创性声明
2021/03/31 Python
解决Mysql的left join无效及使用的注意事项说明
2021/07/01 MySQL
Python作用域和名称空间的详细介绍
2022/04/13 Python