<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • 微信小程序scroll-view如何實(shí)現(xiàn)滾動(dòng)到錨點(diǎn)左側(cè)導(dǎo)航欄點(diǎn)餐功能?

            這篇文章將為大家詳細(xì)講解有關(guān)微信小程序scroll-view如何實(shí)現(xiàn)滾動(dòng)到錨點(diǎn)左側(cè)導(dǎo)航欄點(diǎn)餐功能?,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

            金門(mén)網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,金門(mén)網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為金門(mén)1000多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的金門(mén)做網(wǎng)站的公司定做!

            代碼如下:

            先上效果圖

            微信小程序scroll-view如何實(shí)現(xiàn)滾動(dòng)到錨點(diǎn)左側(cè)導(dǎo)航欄點(diǎn)餐功能?

            1.wxml代碼:

            <view class="page">
             <import src="../../components/catering-item/catering-item.wxml" />
            <!-- 左側(cè)滾動(dòng)欄 -->
            <view class='under_line'></view>
            <view class="body">
            <view style='float: left' class='left'>
             <scroll-view scroll-y scroll-with-animation scroll-left="{{scrollLength}}" class='scrollY'  style='height: {{winHeight}}px'>
              <view class='all clear'>
               <block wx:key="tabs" wx:for="{{tabs}}">
                <view bindtap='jumpIndex' data-menuindex='{{index}}'data-anchor='{{item.anchor}}'>
                 <view class="text-style {{indexId==index&#63;' activeView':''}}">
                  <text class="{{indexId==index&#63;'active1':''}}">{{item.title}}</text>
                 </view>
                </view>
               </block>
              </view>
             </scroll-view>
            </view>
            <view class="right" style='height: {{winHeight}}px'>
            <scroll-view scroll-y scroll-with-animation scroll-left="{{scrollLength}}" bindscroll="scrollToLeft" scroll-into-view="{{toTitle}}" class='scrollRight' style='height: {{winHeight}}px'>
              <block wx:key="tabs" wx:for="{{tabs}}">
              <view id="view-{{item.anchor}}">
                 <view class="title" id="title-{{item.anchor}}">{{item.title}}</view>
                 <view class="orders" wx:for="{{tabsList[item.anchor]}}">
                  <template is="cateringItem" data="{{...item}}" />
                 </view>
                </view>
              </block>
             </scroll-view>
             </view>
            </view>
            </view>

            2.wxss代碼:

            @import "../../components/catering-item/catering-item.wxss";
            /* pages/catering.wxss */
            .page {
             display: flex;
             flex-direction: column;
             width: 100%;
             /* background: #F7F4F8; */
             background-image: linear-gradient(90deg, #FCFCFC 0%, #FCFCFC 99%);
             /* padding-top: 16px; */
            }
            .under_line{
             width: 100%;
             border-top: 1rpx solid #efefef;
            }
            ::-webkit-scrollbar{
              width: 0;
              height: 0;
              color: transparent;
            }
             
            .body{
             display: flex; 
             width: 100%;
            }
             
            .scrollY {
             width: 200rpx;
             /* position: fixed;
             left: 0;
             top: 0; */
             background: #F5F5F5;
             /* border-right: 1rpx solid #efefef; */
            }
             
            /* scrollRight{
             flex: 1;
            } */
            .right{
             flex: 1;
             /* height: 200rpx; */
             /* background: #00FF00; */
            }
             
            .left {
             border-top: 1rpx solid #efefef;
             border-right: 1rpx solid #efefef;
            }
             
            .text-style {
             width: 200rpx;
             height: 100rpx;
             line-height: 100rpx;
             text-align: center;
             font-size: 28rpx;
             font-family: PingFangSC-Semibold;
             color: rgba(51, 51, 51, 1);
            }
             
            .active1 {
             color: #E5D1A9;
             /* background: #FFF; */
            }
            .activeView{
              background: #FFF;
            }
             
            .active {
             display: block;
             width: 50rpx;
             height: 6rpx;
             background: #E5D1A9;
             position: relative;
             left: 75rpx;
             bottom: 30rpx;
            }
            .title{
             margin-left: 32rpx;
             padding-top: 16rpx;
             font-size: 28rpx;
             /* padding-bottom: 16rpx; */
            }

            3.js代碼

            // pages/catering.js
            Page({
             
             /**
              * 頁(yè)面的初始數(shù)據(jù)
              */
             data: {
              tabs: [
               { title: '特惠', anchor: 'a', },
               { title: '必點(diǎn)', anchor: 'b', },
               { title: '營(yíng)養(yǎng)湯', anchor: 'c', },
               { title: '主食', anchor: 'd', },
               { title: '套餐', anchor: 'e', },
               { title: '飲料', anchor: 'f', },
              ],
              tabsList: {
               a: [{
                price: 10.1, anchor: "a", index: 0, num: 0
               }, {
                price: 10.2, anchor: "a", index: 1, num: 0
               },
               {
                price: 10.3, anchor: "a", index: 2, num: 0
               },],
               b: [{
                price: 10.4, anchor: "b", index: 0, num: 0
               }, {
                price: 10.5, anchor: "b", index: 1, num: 0
               },
               {
                price: 10.6, anchor: "b", index: 2, num: 0
               },],
               c: [{
                price: 10.7, anchor: "c", index: 0, num: 0
               }, {
                price: 10.8, anchor: "c", index: 1, num: 0
               },
               {
                price: 10.9, anchor: "c", index: 2, num: 0
               },],
               d: [{
                price: 11.0, anchor: "d", index: 0, num: 0
               }, {
                price: 11.1, anchor: "d", index: 1, num: 0
               },
               {
                price: 11.2, anchor: "d", index: 2, num: 0
               },],
               e: [{
                price: 11.3, anchor: "e", index: 0, num: 0
               }, {
                price: 11.4, anchor: "e", index: 1, num: 0
               },
               {
                price: 11.5, anchor: "e", index: 2, num: 0
               },],
               f: [{
                price: 11.6, anchor: "f", index: 0, num: 0
               }, {
                price: 11.7, anchor: "f", index: 1, num: 0
               },
               {
                price: 11.8, anchor: "f", index: 2, num: 0
               },]
              },
               indexId: 0,
              toTitle:"title-c",
              scrollTop:0,
              top:[],
              },
              // 左側(cè)點(diǎn)擊事件
              jumpIndex(e) {
               let index = e.currentTarget.dataset.menuindex;
               let anchor = e.currentTarget.dataset.anchor;
               let that = this
               that.setData({
                indexId: index,
                toTitle: "title-" + anchor
               });
               //可以設(shè)置定位事件
              
              },
             
             scrollToLeft(res){
              console.log("scrollToLeft-res:" + JSON.stringify(res) + JSON.stringify(this.data.top));
              // let top=res.detail.scrollTop;
              this.setData({
               scrollTop: res.detail.scrollTop
              })
              var length = this.data.top.length;
              for(var i=0;i<this.data.top.length;i++){
               if (this.data.top[i] - this.data.top[0] <= this.data.scrollTop && (i < length - 1 && this.data.top[i + 1] - this.data.top[0] > this.data.scrollTop)){
                if(this.data.indexId!=i){
                 this.setData({
                  indexId: i,
                 }); 
                }
               }
              }
              // console.log("top:"+top);
             },
             
              /**
               * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面加載
               */
              onLoad: function (options) {
               var that = this
               wx.getSystemInfo({
                success: function (res) {
                 that.setData({
                  winHeight: res.windowHeight
                 });
                 var top2=new Array();
                 for(var i=0;i<that.data.tabs.length;i++){
                  wx.createSelectorQuery().select('#view-' + that.data.tabs[i].anchor).boundingClientRect(function (rect) {
                   
                   var isTop=Number(rect.top);
                   
                   top2.push(isTop);
                   console.log("view-c:" + JSON.stringify(rect));
                   
                  }).exec();
                  
                 } 
                 that.setData({
                  top: top2
                 });
                }
                
               });
               
              },
             
            })

            說(shuō)明:

            wxml中的template是菜品的item,可根據(jù)自己的需求進(jìn)行定義。

            使用到scroll-view的scroll-into-view屬性用于對(duì)左側(cè)菜單種類(lèi)點(diǎn)擊定位到右側(cè)菜單的具體位置,js中的jumpIndex為用戶點(diǎn)擊左側(cè)菜單,對(duì)應(yīng)選中位置改變,和對(duì)右側(cè)菜單進(jìn)行定位。

            js中scrollToLeft用于實(shí)現(xiàn)用戶滾動(dòng)右側(cè)菜單,對(duì)左側(cè)菜單分類(lèi)進(jìn)行定位操作,主要思想是將右側(cè)菜單中的種類(lèi)標(biāo)簽的top位置記錄下來(lái),當(dāng)右側(cè)scroll-view滑動(dòng)的位置小于等于某一個(gè)top,而大于下一個(gè)top時(shí),則更換左側(cè)種類(lèi)菜單到指定位置。

            關(guān)于微信小程序scroll-view如何實(shí)現(xiàn)滾動(dòng)到錨點(diǎn)左側(cè)導(dǎo)航欄點(diǎn)餐功能?就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

            文章題目:微信小程序scroll-view如何實(shí)現(xiàn)滾動(dòng)到錨點(diǎn)左側(cè)導(dǎo)航欄點(diǎn)餐功能?
            文章分享:http://www.jbt999.com/article0/pdpeoo.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站標(biāo)簽優(yōu)化做網(wǎng)站品牌網(wǎng)站建設(shè)網(wǎng)站內(nèi)鏈網(wǎng)站設(shè)計(jì)

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

            搜索引擎優(yōu)化

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 亚洲第一中文字幕在线播放 | 熟女作爱一区二区视频 | 三年秘 无码一区二区三区 | 成人性爱豆花视频试看 | 日本一道码高清无码 |