关于 作业 - 商品细节页面 -1

关于 作业 - 商品细节页面 -1

<router-link class="recommend-link"
    v-bind:to="{ name:'home-product', params: {id: item.baseinfo.itemId} }"
>
</router-link>
<template>
<transition name="product">
    <div class="product">
    product
    </div>    
</transition>
</template>

<style lang="scss" scoped>
    // 过程中的
    .product-enter-active,
    .product-leave-active {
    transition: all 0.3s;
    }
    
    // 刚开始进入 和 离开
    .product-enter,
    .product-leave-to {
    transform: translate3d(100%, 0, 0);
    }
</style>

请问老师:

为什么 我写这样 点击的时候,没有从 右到左的 动画效果? 


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

你好同学, 因为v-show相当于display:none,就是让这个组件彻底隐藏了,所以看不到动画效果,如果想要使用它,会用到同学现在没有接触过的知识,这个用到的不多,老师给你写一下,你暂时了解一下就行。使用v-if更简单一些,推荐同学按照老师第一次回复的进行修改即可哦。

http://img1.sycdn.imooc.com//climg/5d6f97640001be1605160148.jpg

祝学习愉快,望采纳。

好帮手慕夭夭 2019-09-04 10:43:38

你好同学,在Vue 提供了 transition 的封装组件中,只有4种情况可以给元素和组件添加进入/离开过渡

1.条件渲染 (使用 v-if)

2.条件展示 (使用 v-show)

3.动态组件

4.组件根节点

像咱们课程里面的搜索框点击时可以实现动画是因为搜索组件本身在根节点下,而同学的代码中,做的是商品页面,点击商品进入详情页面,即product详细页面,就已经离开根节点,所以没有动画效果。你可以给product页面中设置v-if ,默认让它隐藏,然后挂载组件的时候让它显示。这样就满足第一个v-if的情况,点击进入的时候就有动画了哦。参考如下设置:

http://img1.sycdn.imooc.com//climg/5d6f249a0001091b06190433.jpg

祝学习愉快,望采纳。

  • 提问者 慕小庄 #1
    老师,请问一下,我使用 v-show="isShow" 之后,他虽然点击有 动画了,但 我在返回首页的时候,就没有动画了,我使用的是在icon-back上触发点击命令 methods: { goback() { this.$router.back(); } },
    2019-09-04 11:31:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师