直播商城原始碼,實現左右聯動商品分類頁面
直播商城原始碼,實現左右聯動商品分類頁面
一、搭建結構
重點:使用uniapp的scroll-view元件,如果是小程式原生開發也是這個元件;其次如果是html開發,就自己實現一個溢位滾動。
<template> <view class="u-wrap"> <view class="u-menu-wrap"> <scroll-view scroll-y scroll-with-animation class="u-tab-view menu-scroll-view" :scroll-top="scrollTop" :scroll-into-view="itemId"> <view v-for="(item,index) in tabbar" :key="index" class="u-tab-item" :class="[current == index ? 'u-tab-item-active' : '']" @tap.stop="swichMenu(index)"> <text class="u-line-1">{{item.name}}</text> </view> </scroll-view> <scroll-view :scroll-top="scrollRightTop" scroll-y scroll-with-animation class="right-box" @scroll="rightScroll"> <view class="page-view"> <view class="class-item" :id="'item' + index" v-for="(item , index) in tabbar" :key="index"> <view class="item-title"> <text>{{item.name}}</text> </view> <view class="item-container"> <view class="thumb-box" v-for="(item1, index1) in item.foods" :key="index1" @click="featureC(item1.cat, item1.name)"> <image v-if="item1.icon != ''" class="item-menu-image" :src="item1.icon" mode=""></image> <view v-else class="item-menu-image row-c" style="background-color: #F4F6F8;"><text style="font-size: 20rpx;color: #d0d0d0;">載入失敗</text></view> <view class="item-menu-name">{{item1.name}}</view> </view> </view> </view> </view> </scroll-view> </view> </view> </template>
JavaScript業務邏輯程式碼:
data() { return { scrollTop: 0, //tab標題的滾動條位置 oldScrollTop: 0, // tab標題的滾動條舊位置 current: 0, // 預設當前項的值 menuHeight: 0, // 左邊選單的高度 menuItemHeight: 0, // 左邊選單item的高度 itemId: '', // 欄目右邊scroll-view用於滾動的id tabbar: JSON.parse(uni.getStorageSync('categroy')), // 渲染的資料,放在最後供你們測試 arr: [], // 儲存距離頂部高度的陣列 scrollRightTop: 0, // 右邊欄目scroll-view的滾動條高度 timer: null // 定時器 } }
二、新增邏輯層業務
分別獲取左側和右側每一個類別的高度
我們知道,在uniapp裡面沒有window物件和dom元素,所以如果我們要獲取頁面上的一些節點資訊時,需要通過uni.createSelectorQuery()這個API來獲取,這裡不再贅述。—— 《傳送地址》
/** * 獲取一個目標元素的高度 * @elClass 元素的類名 * @dataVal 儲存高度的物件 */ methods: { getElRect(elClass, dataVal) { new Promise((resolve, reject) => { const query = uni.createSelectorQuery().in(this); query.select('.' + elClass).fields({ size: true }, res => { // 如果節點尚未生成,res值為null,迴圈呼叫執行 if (!res) { setTimeout(() => { this.getElRect(elClass); }, 10); return; } this[dataVal] = res.height; resolve(); }).exec(); }) } }
計算右側每個分類距離頂部的高度並儲存
onReady() { this.getMenuItemTop() }, mehods: { /** * 獲取右邊選單每個item到頂部的距離 * 儲存到 arr 陣列裡面用於後面滾動判斷 */ getMenuItemTop() { new Promise(resolve => { let selectorQuery = uni.createSelectorQuery(); selectorQuery.selectAll('.class-item').boundingClientRect((rects) => { // 如果節點尚未生成,rects值為[](因為用selectAll,所以返回的是陣列),迴圈呼叫執行 if(!rects.length) { setTimeout(() => { this.getMenuItemTop(); }, 10); return ; } rects.forEach((rect) => { // 視情況而定,這裡減去rects[0].top,是因為第一項頂部可能不是貼到導航欄(比如有個搜尋框的情況) // this.arr.push(rect.top - rects[0].top); this.arr.push(rect.top) resolve(); }) }).exec() }) }, }
以上就是直播商城原始碼,實現左右聯動商品分類頁面, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2903644/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 直播賣貨小程式原始碼中,商品分類頁面是如何實現的原始碼
- 直播小程式原始碼,小程式頁面左右滑動如何解決原始碼
- app直播原始碼,平臺登入頁面實現和修改密碼頁面實現APP原始碼密碼
- 直播平臺原始碼,純JS實現左右滑動輪播圖原始碼JS
- 直播系統原始碼,雲朵左右移動迴圈動畫實現原始碼動畫
- 直播平臺原始碼,vue+vue-fullpage實現整屏滾動頁面原始碼Vue
- 手機直播原始碼,使用ViewPager2實現頁面滑動切換原始碼Viewpager
- 為了直播流暢,實現直播商城原始碼的轉碼原始碼
- 直播商城原始碼,商品展示分為視訊和圖片展示兩種方式原始碼
- 直播軟體原始碼,實現頁面滾動到可視區顯示動畫效果原始碼動畫
- 直播帶貨原始碼,商品頁面跳轉顯示白底, 新增漸變動畫原始碼動畫
- 成品直播原始碼,html頁面點選按鈕實現頁面跳轉的兩種方法原始碼HTML
- 手機直播原始碼,JS實現頁面下拉載入資料操作原始碼JS
- 直播商城原始碼,實現商城客服聊天,傳送文字、圖片的功能原始碼
- Vue實現左右選單聯動實現(更新)Vue
- 短視訊程式原始碼,PageSlider實現滑動頁面原始碼IDE
- 利用JavaScript實現註冊頁面省市聯動效果(附程式碼)JavaScript
- 影片直播網站原始碼,flutter 頂部滾動欄頁面網站原始碼Flutter
- 直播商城系統原始碼,點選按鈕 儲存頁面為圖片到本地原始碼
- 直播商城原始碼如何實現資料的單項選擇原始碼
- 直播商城APP,直接實現購物車商品數量加減APP
- 線上商城專案11-商品列表頁的排序實現排序
- 直播app原始碼,使用者首次登入時彈出左右滑動導航頁APP原始碼
- app直播原始碼,彈出層 加遮罩層 頁面禁止滑動APP原始碼遮罩
- 直播系統原始碼,ViewPager載入大圖 左右滑動原始碼Viewpager
- 直播app原始碼,系統首頁或任意頁面下拉自動重新整理APP原始碼
- 直播系統中網頁類似app頁面切換動畫的實現方式網頁APP動畫
- 直播系統app原始碼,Android studio 實現app登入註冊頁面APP原始碼Android
- 電商左側商品分類選單實現
- 直播帶貨原始碼,普通商城購物頁面的製作原始碼
- 線上直播系統原始碼,實現翻頁載入、下拉滾動載入原始碼
- 直播app原始碼,標題欄隨頁面滑動之title移動定位效果APP原始碼
- 直播商城原始碼,實現系統的日間/夜間模式切換原始碼模式
- android 全域性頁面滑動返回聯動效果的實現Android
- 直播商城原始碼,vue 彈窗 慣性滾動 加速滾動原始碼Vue
- 線上直播系統原始碼,實現搜尋後介面顯示商品列表效果原始碼
- 影片直播原始碼,前端canvas動態驗證碼實現原始碼前端Canvas
- 線上直播系統原始碼,簡單實現Android應用的啟動頁原始碼Android