scroll-fold-nav.uvue 3.2 KB
Newer Older
1 2 3 4 5 6 7
<template>
  <view class="page">
    <scroll-view :scroll-y="true" @scroll="onScroll" class="scroll-view">
      <view class="content">
        <view style="height: 110px;">
          <!-- 垫高专用 -->
        </view>
W
wanganxp 已提交
8
        <view v-for="(item,index) in 20" :key="index" style="height: 100px;background-color: #FFF;">
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
          content-{{item}}
        </view>
      </view>
    </scroll-view>

    <view class="top-box" :style="{height:(110 - (scrollTop>40?40:scrollTop) )+'px','background-color': 'rgba(255, 255, 255, '+(scrollTop*3>100?100:scrollTop*3)/100+')'}">
      <view class="scroll-fold-nav"
        :style="{'opacity': 1 -(scrollTop*3>100?100:scrollTop*3)/100}"
      >
        <view style="margin-left: 30px;">DCloud 为开发者而生</view>
      </view>
      <view @click="back" class="back" style="position: absolute;top:35px;left: 8px;">
        <image src="/static/template/scroll-fold-nav/back.png" style="width: 20px;" mode="widthFix"></image>
      </view>
      <view class="search" @click="toSearchPage" :style="{
        'width':searchWidth - (scrollTop>40?40:scrollTop) +'rpx',
        'top':0 - (scrollTop>40?40:scrollTop) +'px'
      }">
        <view style="flex-direction: row;">
          <image src="/static/template/scroll-fold-nav/search.png" style="width: 15px;" mode="widthFix"></image>
          <text class="search-tip-text">请输入你要搜索的内容</text>
        </view>
        <text class="search-btn">搜索</text>
      </view>
    </view>

  </view>
</template>

<script>
  import ScrollEvent from 'io.dcloud.uniapp.runtime.ScrollEvent';
  export default {
    data() {
      return {
        scrollTop: 0,
        searchWidth: 700
      }
    },
    methods: {
      onScroll(e : ScrollEvent) {
        this.scrollTop = e.detail.scrollTop
      },
      back(){
W
wanganxp 已提交
52 53 54 55 56 57 58 59 60 61 62 63 64
        // uni.navigateBack()  // 这么写用不了
        // 这么写可以用
		uni.navigateBack({
		  success(result) {
		    console.log('navigateBack success', result.errMsg)
		  },
		  fail(error) {
		    console.log('navigateBack fail', error.errMsg)
		  },
		  complete(result) {
		    console.log('navigateBack complete', result.errMsg)
		  },
		})
65
        
W
wanganxp 已提交
66 67 68
        // uni.switchTab({
        //   url:'/pages/tabBar/template'
        // })
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
        
      },
      toSearchPage(){
        uni.showToast({
          title: '暂不支持',
          icon: 'none'
        });
      }
    },
    onLoad() {
    }
  }
</script>

<style>
  .page {
    flex: 1;
    background-color: #fbdf0d;
  }

  .scroll-view {
    flex: 1;
  }

  .top-box {
    position: fixed;
    top: 0;
    padding-top: 25px;
    align-items: flex-end;
    border-bottom: 1px solid #efefef;
  }

  .scroll-fold-nav {
    height: 44px;
    width: 750rpx;
    justify-content: center;
  }

  .search {
    background-color: #FFFFFF;
    border: 1px solid #fbdf0d;
    height: 35px;
    border-radius: 100px;
    margin: 0 25rpx;
    padding: 8px;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
  .search-tip-text {
    font-size: 12px;
    color: #666;
  }
  .search-btn {
    font-size: 12px;
    background-color: #ff6900;
    color: #FFF;
    padding: 5px 8px;
    border-radius: 100px;
  }
</style>