微信小程序实现商品分类列表

 更新时间:2022年05月22日 09:00:23   作者:J1FengZ  
这篇文章主要为大家详细介绍了微信小程序实现商品分类列表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了微信小程序实现商品分类列表的具体代码,供大家参考,具体内容如下

一、效果展示

二、代码实现

<!-- wxml -->
<view class="container">
<!-- 商品列表 -->
    <view class="cate">
        <!-- 左侧导航 -->
        <scroll-view scroll-y class="nav-left">
            <view 
                wx:for="{{List}}"
                wx:key="this"
                class="nav-left-item {{currentIndex_L == index ? 'L-item-active' : ''}}" 
                bindtap="bindleLeftItemTap" 
                data-index="{{index}}" >
                <text class="nav-left-item-txt {{currentIndex_L == index ? 'L-i-txt-active' : ''}}">{{item.LeftName}}</text>
            </view>
        </scroll-view>
        <!-- 右侧导航 -->
        <scroll-view scroll-y scroll-top="{{scrollTop}}" class="nav-right">
            <view 
                wx:for="{{List[currentIndex_L].RightList}}"
                wx:key="this"
                class="nav-right-item"
                bindtap="bindleRightItemTap" 
                data-index="{{index}}">
                <text class="nav-right-item-txt {{currentIndex_R == index ? 'R-i-txt-active' : ''}}">{{item.RightName}}</text>
                <view class="{{currentIndex_R == index ? 'image-select' : ''}}">
                    <image wx:if="{{currentIndex_R == index}}" class="item-select" src="../icon/Hook_icon.png"/>
                 </view>
            </view>
        </scroll-view>
    </view>
    <view class="pd32 btn-find">
        <view bindtap="toDetail">
            <view class="btn-big">查看详情</view>
        </view>
    </view>
</view>
// js
// 假数据
let List = [
    {
        "LeftId": 1,
        "LeftName": "分类1",
        "RightList": [
        {
            "RightId": 11,
            "RightName": "商品11"
        },
        ]
    },
    {
        "LeftId": 2,
        "LeftName": "分类2",
        "RightList": [
        {
            "RightId": 21,
            "RightName": "商品21"
        },
        ]
    },
]

Page({
    /**    
     * 页面的初始数据
     */
    data: {
        List : List,
        selectLeftId : null,
        selectRightId : null,
        currentIndex_L : null,
        currentIndex_R : null,
        scrollTop : 0
    },
    
    /**
     * 左导航点击事件
     */
    bindleLeftItemTap(e) {
        const {index} = e.currentTarget.dataset;
        this.setData({
            currentIndex_L:index,
            currentIndex_R : null,
            selectLeftId : this.data.List[index].LeftId,
            selectRightId : null,
            scrollTop : 0,
        }) 
    },

    /**
     * 右导航点击事件
     */
    bindleRightItemTap(e) {
        const {index} = e.currentTarget.dataset;
        let index_L = this.data.currentIndex_L;
        this.setData({
            currentIndex_R : index,
            selectRightId : this.data.List[index_L].RightList[index].RightId,
        }) 
    },

    /**
     * 底部查看详情按钮点击事件
     */
    toDetail(e) {
        var selectLeftId = this.data.selectLeftId;
        var selectRightId = this.data.selectRightId;

        if(selectLeftId === null){
            wx.showToast({
                title: '请选择一种分类或商品!',
                icon: 'none',
                duration: 1500,
                mask: true
            });
            return;
        }
        if(selectRightId != null) {
            wx.navigateTo({
                url: '/pages/Detail/Detail' + '?' +
                'selectLeftId=' + selectLeftId + 
                '&selectRightId=' + selectRightId,
                });
            }
            else {
                wx.navigateTo({
                url: '/pages/Detail/Detail' + '?' +
                '&selectLeftId=' + selectLeftId,
            });
        }    
    },
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • JavaScript 在各个浏览器中执行的耐性

    JavaScript 在各个浏览器中执行的耐性

    经常会遇到这样一个情况:浏览器弹出对话框,提示脚本运行时间过长,询问“停止”还是“继续”。那究竟各个浏览器是如何判断在什么时候才弹出此对话框呢?
    2009-04-04
  • JS拖拽排序插件Sortable.js用法实例分析

    JS拖拽排序插件Sortable.js用法实例分析

    这篇文章主要介绍了JS拖拽排序插件Sortable.js用法,结合实例形式分析了拖拽排序插件Sortable.js功能、使用方法及相关操作注意事项,需要的朋友可以参考下
    2019-02-02
  • js中根据字数截取字符串,不能截断url

    js中根据字数截取字符串,不能截断url

    给一个文字,对输出的文字进行截取,保留400个字符,其中对url的保留比较麻烦,尤其是有两个相同url时不能采用indexOf获取其字符位置
    2012-01-01
  • 微信小程序天气预报功能实现(支持自动定位,附源码)

    微信小程序天气预报功能实现(支持自动定位,附源码)

    对于一个经常出门在外的人,关注天气是至关重要的,下面这篇文章主要给大家介绍了关于微信小程序天气预报功能实现的相关资料,文中通过实例代码介绍的非常详细,支持自动定位,需要的朋友可以参考下
    2022-04-04
  • js异步上传多张图片插件的使用方法

    js异步上传多张图片插件的使用方法

    这篇文章主要为大家详细介绍了js异步上传多张图片插件的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • ES6 Promise对象的应用实例分析

    ES6 Promise对象的应用实例分析

    这篇文章主要介绍了ES6 Promise对象的应用,结合实例形式分析了Promise对象原理与异步处理相关操作技巧,需要的朋友可以参考下
    2019-06-06
  • 浅谈JS验证表单文本域输入空格的问题

    浅谈JS验证表单文本域输入空格的问题

    下面小编就为大家带来一篇浅谈JS验证表单文本域输入空格的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • JS常见算法详解

    JS常见算法详解

    本文主要介绍了前端常见算法的JS实现,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • label+input实现按钮开关切换效果的实例

    label+input实现按钮开关切换效果的实例

    下面小编就为大家带来一篇label+input实现按钮开关切换效果的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • JS实现IE状态栏文字缩放效果代码

    JS实现IE状态栏文字缩放效果代码

    这篇文章主要介绍了JS实现IE状态栏文字缩放效果代码,涉及JavaScript针对浏览器的相关调用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10

最新评论