(饿了么商家点餐页面Vue实战项目)better scroll实现后发现的问题:手机端右边商品栏滑动到底左边菜单栏超出屏幕隐藏菜单部分不显示

在Vue实战项目中,使用better-scroll时遇到手机端右侧商品栏滚动到底,左侧菜单栏隐藏部分不显示的问题。解决方案是通过在菜单项li上添加特殊class,并在计算高亮菜单时使用scrollToElement方法,同步滚动到对应菜单,从而解决隐藏菜单不显示的故障。
摘要由CSDN通过智能技术生成

具体问题描述:
手机端当右边商品滚动到对应最后一个菜单“特色粥品”(超出屏幕长度隐藏的菜单),左边对应菜单栏仍隐藏不可见。如下图:
问题展示图解决办法:
仿照点击菜单项右边商品栏滚动到对应位置的方法:
(1)在li的class添加menu-list-hook,该class没有具体的样式,用于在JS中获取对象。
样式(2)在计算高亮菜单项处添加scrollToElement,使左边菜单栏随之滚动到对应的菜单项。
代码更改后解决该问题。

商品页面goods.vue代码:

<template>
    <div class="goods">
      <div class="menu-wrapper" ref="menuWrapper">
          <ul>
              <li v-for="(item,index) in goods" :key="index" class="menu-item menu-list-hook" @click="selectMenu(index, $event)" :class="{'current':currentIndex===index}">
                  <span class="text border-1px">
                      <span v-show="item.type>0" class="icon" :class="classMap[item.type]"></span>{
   {
   item.name}}
                  </span>
              </li>
          </ul>
      </div>
      <div class="foods-wrapper" ref="foodsWrapper">
        <ul>
          <li v-for="(item, index) in goods" class="food-list food-list-hook" :key="index">
            <h1 class="title">{
   {
   item.name}}</h1>
            <ul>
              <li v-for="(food,index) in item.foods" :key="index" class="food-item border-1px">
                <div class="icon">
                  <img :src="food.icon" width="57px" height="57px">
                </div>
                <div class="content">
                  <h2 class="name">{
   {
   food.name}}</h2>
                  <p class="desc">{
   {
   food.description}}</p>
                  <div class="extra">
                    <span>月售{
   <
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值