1. 程式人生 > 實用技巧 >search路徑,列表設定過渡效果

search路徑,列表設定過渡效果

typeNav.vue

html部分

<transition name="show">
          <div class="sort" v-show="isShow">
            <div class="all-sort-list2" @click="toSearch">
              <div
                class="item"
                v-for="(c1, index) in categoryList"
                :key="c1.categoryId"
@mouseenter="moveIn(index)" :class="{item_on:currentIndex === index}" > <h3> <a href="javascript:;" :data-category1Id="c1.categoryId" :data-categoryName
="c1.categoryName" >{{c1.categoryName}}</a> <!-- 為什麼不適用宣告式導航,因為一次性建立了多個元件物件影響效率,因此我們採用程式設計式導航去跳轉 --> <!-- <router-link :to="{name:'search',query:{categoryName:c1.categoryName,category1Id:c1.categoryId}}">{{c1.categoryName}}</router-link>
--> <!-- 使用了程式設計式導航,但是效率還不是很高,因為每個類別都添加了相同的點選事件,每個點選事件都有自己的回撥函式 採用事件委派(事件委託,事件代理)來處理--> <!-- <a href="javascript:;" @click="$router.push({name:'search',query:{categoryName:c1.categoryName,category1Id:c1.categoryId}})">{{c1.categoryName}}</a> --> </h3> <div class="item-list clearfix"> <div class="subitem"> <dl class="fore" v-for="(c2, index) in c1.categoryChild" :key="c2.categoryId"> <dt> <!-- <router-link :to="{name:'search',query:{categoryName:c2.categoryName,category2Id:c2.categoryId}}">{{c2.categoryName}}</router-link> --> <!-- <a href="javascript:;" @click="$router.push({name:'search',query:{categoryName:c2.categoryName,category2Id:c2.categoryId}})">{{c2.categoryName}}</a> --> <a href="javascript:;" :data-category2Id="c2.categoryId" :data-categoryName="c2.categoryName" >{{c2.categoryName}}</a> </dt> <dd> <em v-for="(c3, index) in c2.categoryChild" :key="c3.categoryId"> <!-- <router-link :to="{name:'search',query:{categoryName:c3.categoryName,category3Id:c3.categoryId}}">{{c3.categoryName}}</router-link> --> <!-- <a href="javascript:;" @click="$router.push({name:'search',query:{categoryName:c3.categoryName,category3Id:c3.categoryId}})">{{c3.categoryName}}</a> --> <a href="javascript:;" :data-category3Id="c3.categoryId" :data-categoryName="c3.categoryName" >{{c3.categoryName}}</a> </em> </dd> </dl> </div> </div> </div> </div> </div> </transition>

less部分

 .show-enter{
      height: 0;
      opacity: 0;
    }
    .show-enter-to{
      height: 461px;
      opacity: 1;
    }
    .show-enter-active{
      transition: all 3s;
    }