vue項目實戰(zhàn)(三)- 旅游網(wǎng)站詳情頁面開發(fā)

一拴清、詳情頁banner

添加動態(tài)路由:

{
      path: '/detail/:id',
      name: 'Detail',
      component: Detail
  }

詳情頁首圖:

<template>
  <div class="banner">
    <img class="banner-img" src="http://img1.qunarzz.com/sight/p0/1809/10/10d6568ad3ad4bb5a3.img.jpg_600x330_02eafe8e.jpg">
    <div class="banner-info">
      <div class="banner-title">
        亞龍灣熱帶天堂森林公園(AAAA景區(qū))
      </div>
      <div class="banner-number">
        <span class="iconfont banner-icon">&#xe650;</span>
        41
      </div>
    </div>
  </div>
</template>
<script>
export default {
  name: 'DeatilBanner'
}
</script>
<style lang="stylus" scoped>
  .banner
    position: relative
    overflow: hidden
    height: 0
    padding-bottom: 55%
    .banner-img
      width: 100%
    .banner-info
      display: flex
      position: absolute
      left: 0
      right: 0
      bottom: 0
      line-height: .6rem
      color: #FFFFFF
      background-image: linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.8))
      .banner-title
        flex: 1
        font-size: .32rem
        padding: 0 .2rem
      .banner-number
        height: .32rem
        line-height: .32rem
        margin-top: .14rem
        padding: 0 .4rem
        border-radius: .2rem
        background: rgba(0, 0, 0, .8)
        font-size: .24rem
        .banner-icon
          font-size: .24rem
</style>

效果圖:

image.png

二拜英、公共畫廊組件拆分

新建一個公用組件稼钩,gallary.vue:

<template>
  <div class="container" @click="handleGallaryClick">
    <div class="wrapper">
      <swiper :options="swiperOptions">
        <swiper-slide v-for="(item, index) in imgs" :key="index">
          <img class="gallary-img" :src="item" />
        </swiper-slide>
        <div class="swiper-pagination"  slot="pagination"></div>
      </swiper>
    </div>
  </div>
</template>
<script>
export default {
  name: 'CommonGallary',
  props: {
    imgs: {
      type: Array,
      default () {
        return []
      }
    }
  },
  data () {
    return {
      swiperOptions: {
        pagination: '.swiper-pagination',
        paginationType: 'fraction',
        observeParents: true,
        observer: true
      }
    }
  },
  methods: {
    handleGallaryClick () {
      this.$emit('close')
    }
  }
}
</script>
<style lang="stylus" scoped>
  .container >>> .swiper-container
    overflow: inherit
  .container
    display: flex
    flex-direction: column
    justify-content: center
    z-index: 99
    position: fixed
    left: 0
    right: 0
    top: 0
    bottom: 0
    background: #000000
    .wrapper
      width: 100%
      height: 0
      padding-bottom: 50%
      .gallary-img
        width: 100%
      .swiper-pagination
        color: #FFFFFF
        bottom: -1rem
</style>

三铭腕、實現(xiàn)header漸隱漸現(xiàn)

<template>
  <div>
    <router-link
      tag="div"
      to="/"
      class="header-abs"
      v-show="showAbs"
    >
      <div class="iconfont header-abs-back">&#xe624;</div>
    </router-link>
    <div
      class="header-fixed"
      v-show="!showAbs"
      :style="opacityStyle"
    >
      <router-link to="/">
        <div class="iconfont header-fixed-back">&#xe624;</div>
      </router-link>
       景點詳情
    </div>
  </div>
</template>
<script>
export default {
  name: 'DetailHeader',
  data () {
    return {
      showAbs: true,
      opacityStyle: {
        opacity: 0
      }
    }
  },
  methods: {
    handleScroll () {
      const top = document.documentElement.scrollTop
      if (top > 60) {
        let opacity = top / 140
        opacity = opacity > 1 ? 1 : opacity
        this.opacityStyle = {opacity}
        this.showAbs = false
      } else {
        this.showAbs = true
      }
    }
  },
  activated () {
    window.addEventListener('scroll', this.handleScroll)
  }
}
</script>
<style lang="stylus" scoped>
  @import '~styles/varibles.styl'
  .header-abs
    position: absolute
    left: .2rem
    top: .2rem
    width: .8rem
    height: .8rem
    line-height: .8rem
    border-radius: .4rem
    text-align: center
    background: rgba(0, 0, 0, .8)
    .header-abs-back
      color: #FFFFFF
      font-size: .4rem
  .header-fixed
    position: fixed
    top: 0
    left: 0
    right: 0
    height: $headerHeight
    line-height: $headerHeight
    text-align: center
    color: #FFFFFF
    background: $bgColor
    font-size: .32rem
    .header-fixed-back
      position: absolute
      top: 0
      left: 0
      width: .64rem
      text-align: center
      font-size: .4rem
      color: #fff
</style>

四谴餐、全局事件解綁

activated () {
    window.addEventListener('scroll', this.handleScroll)
  },
  // 頁面即將被隱藏或者被替換成新的頁面時,執(zhí)行該方法
  deactivated () {
    window.removeEventListener('scroll', this.handleScroll)
  }

五汁展、使用遞歸組件

數(shù)據(jù):

list: [{
        title: '成人票',
        children: [{
          title: '成人三館聯(lián)票',
          children: [{
            title: '成人三館聯(lián)票-某一連鎖店銷售'
          }]
        }, {
          title: '成人五館聯(lián)票'
        }]
      }, {
        title: '學(xué)生票'
      }, {
        title: '兒童票'
      }, {
        title: '特惠票'
      }]

遞歸:

<div
      class="item"
      v-for="(item, index) of list"
      :key="index"
    >
      <div class="item-title border-bottom">
        <span class="item-title-icon"></span>
        {{item.title}}
      </div>
      <div class="item-children" v-if="item.children">
        <detail-list :list="item.children"></detail-list>
      </div>
    </div>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末厌殉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子公罕,更是在濱河造成了極大的恐慌,老刑警劉巖铲汪,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罐柳,死亡現(xiàn)場離奇詭異,居然都是意外死亡张吉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門士飒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔗崎,“玉大人,你說我怎么就攤上這事缓苛。” “怎么了未桥?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵冬耿,是天一觀的道長。 經(jīng)常有香客問我亦镶,道長,這世上最難降的妖魔是什么缤骨? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任绊起,我火速辦了婚禮,結(jié)果婚禮上虱歪,老公的妹妹穿的比我還像新娘。我一直安慰自己实蔽,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布坛吁。 她就那樣靜靜地躺著铐尚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宣增。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天帖旨,我揣著相機與錄音,去河邊找鬼解阅。 笑死,一個胖子當(dāng)著我的面吹牛述召,可吹牛的內(nèi)容都是我干的蟹地。 我是一名探鬼主播积暖,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼夺刑,長吁一口氣:“原來是場噩夢啊……” “哼琼梆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起茎杂,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎倾哺,沒想到半個月后刽脖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體羞海,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡却邓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年院水,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片檬某。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡恢恼,死狀恐怖民傻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情牵署,我是刑警寧澤喧半,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站薯酝,受9級特大地震影響爽柒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜浩村,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一心墅、第九天 我趴在偏房一處隱蔽的房頂上張望酿矢。 院中可真熱鬧怎燥,春花似錦、人聲如沸铐姚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽依许。三九已至,卻和暖如春峭跳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背竣付。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工滞欠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓惹恃,卻偏偏與公主長得像棺牧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子颊乘,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 11-1.詳情頁-動態(tài)路由和banner布局 上一章節(jié)我們制作了城市頁面相關(guān)的東西乏悄,那么這一節(jié)我們打算制作咱們最后...
    讀書的魚閱讀 611評論 0 3
  • vue去哪網(wǎng)跟學(xué)筆記 記錄學(xué)習(xí)點滴 1. 初始化項目 1.1 手機顯示配適 minimum-scale=1.0,m...
    noobakong閱讀 2,259評論 0 16
  • 久違的晴天,家長會开呐。 家長大會開好到教室時,離放學(xué)已經(jīng)沒多少時間了筐付。班主任說已經(jīng)安排了三個家長分享經(jīng)驗阻肿。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,523評論 16 22
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友冕茅。感恩相遇!感恩不離不棄姨伤。 中午開了第一次的黨會,身份的轉(zhuǎn)變要...
    迷月閃星情閱讀 10,567評論 0 11
  • 可愛進取当编,孤獨成精徒溪。努力飛翔忿偷,天堂翱翔臊泌。戰(zhàn)爭美好,孤獨進取渠概。膽大飛翔嫂拴,成就輝煌贮喧。努力進取筒狠,遙望箱沦,和諧家園∥叫危可愛游走...
    趙原野閱讀 2,731評論 1 1