软件教程 2025年08月6日
0 收藏 0 点赞 249 浏览 1133 个字
摘要 :

本文接:vue手机商城项目实战(7)-商品详情组件实现 我们发现在路由跳转的时候无论是点击底部选项卡,还是点击商品详情和搜索,页面跳转都比较生硬,因此我们可以考虑使……

本文接:vue手机商城项目实战(7)-商品详情组件实现
我们发现在路由跳转的时候无论是点击底部选项卡,还是点击商品详情和搜索,页面跳转都比较生硬,因此我们可以考虑使用vue提供的转场效果来优化用户体验。

一、转场代码实现

1、需要给router-view包裹transitionApp.vue中修改如下:

<transition :name="transitionName">
    <router-view></router-view>
</transition>

2、在App.vue中data新增两个属性:

data(){
    return {
        // 转场名称
        transitionName:'slide-forward',
        // map集合存放route先后顺序
        map:new Map()
    }
}

3、App.vue侦听路由变化,根据是前进和后退实现不同的转场效果:

// 侦听路由变化
watch: {
    $route(to, from) {
        if (!this.map[to.path]) {
            // 过渡时间为0.5s
            this.map[to.path] = new Date().getTime() + 0.5;
        }
        if (!this.map[from.path]) {
            this.map[from.path] = new Date().getTime();
        }
        if (this.map[to.path] > this.map[from.path]) {
            this.transitionName = 'slide-forward';
        } else {
            this.transitionName = 'slide-back'
        }
    }
}

4、在App.vuestyle中新增转场样式:

/* 路由转场样式 */
.slide-forward-enter {
    transform: translate(100%);
}
.slide-forward-enter-active {
    transition: all .5s ease-in-out;
}
.slide-forward-leave-active {
    transform: translate(-100%);
    transition: all .5s ease-in-out;
}
.slide-back-enter {
    transform: translate(-100%);
}
.slide-back-enter-active {
    transition: all .5s ease-in-out;
}
.slide-back-leave-active {
    transform: translate(100%);
    transition: all .5s ease-in-out;
}

二、测试效果
注意:转场的组件需要时fixed固定定位,否则有可能导致转场效果异常

vue手机商城项目实战(8)-路由跳转转场过渡动画效果实现

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/6022.html

管理员

相关推荐
2025-08-06

文章目录 一、Promise基础回顾 二、Promise 与 axios 结合使用场景及方法 (一)直接返回 axios …

269
2025-08-06

文章目录 一、模块初始化时的内部机制 二、常见导出写法的差异分析 (一)写法一:module.exports…

107
2025-08-06

文章目录 一、ResizeObserver详解 (一)ResizeObserver是什么 (二)ResizeObserver的基本用法 …

683
2025-08-06

文章目录 一、前期准备工作 (一)下载相关文件 (二)安装必要工具 二、处理扣子空间生成的文件…

338
2025-08-06

文章目录 一、官方文档 二、自动解包的数据类型 ref对象:无需.value即可访问 reactive对象:保持…

371
2025-08-06

文章目录 一、Hooks的工作原理 二、在if语句中使用Hook会出什么岔子? 三、React官方的Hook使用规…

843
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号