微信小程序 简单的实现左右内容联动

这篇具有很好参考价值的文章主要介绍了微信小程序 简单的实现左右内容联动。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

微信小程序 简单的实现左右内容联动

请求到的数据 封装请求

微信小程序左右菜单联动,原生微信小程序,微信小程序,小程序

实现方法

scroll-view 的属性scroll-into-view 可以实现类似于瞄点链接的效果,在绑定的属性修改时会触发,滑动到对应id的地方
注意: id不能以数字开头
设置两个变量tabIndexnowIndex保存状态,如果只设置一个更新变量时会触发瞄点更新
通过tabIndex更新瞄点
通过nowIndex设置当前的分类(用来高亮当前的分类)
在按下分类时同时更新tabIndexnowIndex
在滑动时通过判断没一个id的内容距离scroll-view 顶部的高度
如果等于或小于0表示该内容滑到了,只需要 更新nowIndex,如果更新`tabIndex了的话,会触发滑动

WXML

    <view class="main">
        <!-- 通过scroll-into-view 可以实现类型于 瞄点链接的效果 当 tabIndex 改变时 会自动划到id="scroll-x"处 -->
        <scroll-view class="category" scroll-with-animation
        scroll-into-view="scroll-{{nowIndex}}"
         scroll-y>
            <view wx:for="{{ list }}" wx:key="index" 
            id="scroll-{{ index }}"
            class="item {{ nowIndex==index?'active':'' }}" data-index="{{ index }}"
             bindtap="tabNav">
                {{ item.name }}
            </view>
        </scroll-view>
        <!-- 通过scroll-into-view 可以实现类型于 瞄点链接的效果 当 tabIndex 改变时 会自动划到id="scroll-x"处 -->
        <!-- 但是滑动内容不会更新scroll-into-view设置的值 -->
        <!-- 通过bindscroll监听滑动  -->
        <!-- id="scrollMenu"用于获取scroll-view到顶部的高度  -->
        <scroll-view id="scrollMenu" class="menu" scroll-with-animation scroll-y scroll-into-view="{{tabIndex}}" bindscroll="scroll">
        <!-- 注意:id 不能以数字开头 -->
        <!-- 注意:监听滚动条中通过goodItem获取商品分类列表 -->
            <view wx:for="{{ list }}" wx:key="index" 
            class="goodItem"
            id="scroll-{{index}}">
                <view class="title"> {{ item.name }}</view>
                <view wx:for="{{item.food}}" wx:key="indexs" class="item" wx:for-index="indexs" wx:for-item="items">
                    <view class="left">
                        <image src="{{ items.image_url }}" mode="widthFix" />
                    </view>
                    <view class="right">
                        <view class="msg">
                            <view class="name">{{ items.name }}</view>
                            <view class="price">¥{{ items.price }}</view>
                        </view>
                        <view bindtap="addCarList" class="btn">
                            +
                        </view>
                    </view>
                </view>
            </view>
        </scroll-view>
    </view>

js

// pages/food/foodlist/foodlist.js
import api from '../../../utils/api/index';
Page({
    data: {
        list:[],
        carList:[],
        tabIndex:"scroll-0",//右边瞄点项
        nowIndex:0//颜色项
    },
    onLoad(options) {
        this.getList()
    },
    getList(){
        api.getFoodList().then(res=>{
            this.setData(res)
        })
    },
    tabNav(e){
        let index = e.currentTarget.dataset.index
        this.flag = true // 修复点击分类过快时,会因为滚动条的的滑动,调用scroll触发瞄点
        // 联动右边
        this.setData({nowIndex:index})
        this.setData({tabIndex:`scroll-${index}`})
    },
    addCarList(e){
        this.data.carList.push(e)
        this.setData({carList:this.data.carList})
    },
    /**
     * 联动分类
     * 滑动右侧商品列表,与之对应的左侧商品分类菜单高亮显示
     */
    scroll(e){
          if(this.flag){
            this.flag = false
            return
        }
        // 获取每个goodItem到顶部的距离
        // 减去顶部距离其他东西的距离
        // 如果距离小于或等于0则更新index
        // 设置最后更新index
        var index = this.data.nowIndex
        // scroll-view 距离顶部的高度
        var scrollMenuTop  = 0
        let query = wx.createSelectorQuery()
        query.selectAll('#scrollMenu').boundingClientRect()
        query.selectAll('.goodItem').boundingClientRect()
        query.exec(res=>{
            console.log(res);
            scrollMenuTop = res[0][0].top
            res[1].forEach((item,index2) => {
                // 每个项目距离顶部的高度-scroll-view 距离顶部的高度=每个项目距离scroll-view顶部的高度
                if(item.top-scrollMenuTop<=0){
                    index = index2
                }
            });
            // 联动左边项
            this.setData({nowIndex:index})
        })
        
    }
})

效果图

微信小程序左右菜单联动,原生微信小程序,微信小程序,小程序文章来源地址https://www.toymoban.com/news/detail-773682.html

到了这里,关于微信小程序 简单的实现左右内容联动的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小程序-实现左右菜单联动功能

    实现效果类似: 1.左边点击 - 右边滚动的相应的分类 2.右边滑动 - 左边的样式跟着改变 wxml js wxss文件 参考资料

    2024年02月11日
    浏览(42)
  • uni-app —— 小程序实现左右菜单联动

    文章目录 前言 一、示意图 二、使用步骤 1.静态页面的布局 2.模拟数据格式 3.左侧菜单的点击效果 4.右侧菜单的联动效果 三、具体实现代码 1.页面结构 2.相关样式 3.业务逻辑部分 今天写出了一个新的小玩意儿,个人认为实现思路与方法还算值得学习,在这里分享给大家! 页

    2024年02月07日
    浏览(60)
  • 【微信小程序】页面tab栏与页面内容联动_微信小程序实现tabs跟下面的内容联动

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新大数据全套学习资料》,

    2024年04月28日
    浏览(45)
  • Uni-app实现左右滑动页面内容切换(兼容微信小程序)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档         前言         整体思路         一、HTML部分         二、Script部分         三、Style部分           (先声明哦我可不是偷懒,只是想学术借鉴一下)因为最近有在做左右滑动功能,

    2024年02月07日
    浏览(106)
  • 微信小程序———同一页面内左右滑动切换内容显示

    一、微信小程序事件  由于首先介绍一下微信小程序中的事件,可选择快速略过或者直接进去之后的重点内容 一、什么是事件 事件是视图层到逻辑层的通讯方式。 事件可以将用户的行为反馈到逻辑层进行处理。 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对

    2024年02月03日
    浏览(73)
  • 记录--左右菜单联动

    对于左右菜单联动的需求是很常见的在小程序里,主要表现为: 点击左侧的菜单栏,右侧会切换到对应的内容区域 滑动右侧的内容,左侧会自动切换到对应的菜单项 主要利用的是 scroll-view标签,以及相关的一些API,可参考:uniapp.dcloud.net.cn/api/ui/node… 去获取当前的所有节点

    2024年02月19日
    浏览(35)
  • vue2 实现后台管理系统左侧菜单联动实现 tab根据路由切换联动内容,并支持移动端框架

    效果图: pc端  移动端    由于代码比较多,我这里就不一一介绍了,可以去我的git上把项目拉下来 git地址https://gitee.com/Flechazo7/htglck.git 后台我是用node写的有需要的可以评论联系

    2024年02月16日
    浏览(45)
  • vue3 + TS + elementplus + pinia实现后台管理系统左侧菜单联动实现 tab根据路由切换联动内容

    效果图:  home.vue页面代码 left.vue页面代码 tab.vue页面代码 pinia里面的代码 安装 使用插件  在main.ts中注册 路由代码 我把代码放git上了,有需要的自行拉取 https://gitee.com/Flechazo7/vue3.git

    2024年02月09日
    浏览(50)
  • 微信小程序实现手机屏幕左右旋转,页面元素左右移动,小程序加速计

    在做微信小程序的项目时,有一个需求是当用户左右旋转手机屏幕时,页面上特定的元素要随着用户的旋转动作左右移动。当将手机屏幕向左旋转时,人物向左移动;手机屏幕向右旋转时,人物向右移动。 这里主用到了微信小程序的加速计: 开始监听加速度数据, wx.startA

    2024年02月09日
    浏览(54)
  • 微信小程序(二)微信小程序选择本地图片显示并预览(实现左右滑动)

    在微信小程序里面实现选择图片然后预览是一个非常普遍的功能,在我们上传图片文件的时候,都会选择本地的图片进行上传,在上传之前会查看一下自己上传的图片是否准确。所以要做到预览图片。 下面就实现一个简单的本地图片显示预览的功能~~ 1、创建页面 这里我直接

    2024年02月03日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包