js实现饿了么点餐界面左右滑动绑定

效果图:点击左侧右侧会自动定位,滑动右侧左侧也会自动定位。
源码在文章末尾,文中提供思路
在这里插入图片描述

整体思路

左侧和右侧列表通过索引关联起来,同时记录右侧每一项的offsetTop

方案一 ScrollTo

点击左侧对应项之后直接通过索引找右侧offset,调用ScrollTo即可,关于这个函数可以参考MDN.

方案二 锚点法

右边设置a标签 href属性设置为 foodlist+index,对应右边设置id = foodlist+index,这样就可以了。

方案二 锚点法优化scrollIntoView

锚点会改变url,这里我们间接使用,将左右的id关联起来即可,比如左边项设置点击事件,传入(index),右边id = food-list+index,左右关联起来,点击事件调用document.querySelector(‘food-list’+index).scrollIntoView(true),同样这个方法可以参考MDN

右边滑动监听

右边只需要比较容器的ScrollTop和当前的offsetTopList(在数据获取之后计算出每一个列表的offsetTop),设置滚动监听即可

解决滑动生硬问题,

后两种方案在MDN上有实现平滑滑动的配置参数,锚点法目前还没想到。

具体实现源码实现

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程小飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值