首页
学习
活动
专区
圈层
工具
发布

左侧导航click,右侧内容scroll——一个模拟外卖点单的简易页面

本人很少做移动端的东西,这是一个小伙伴发过来的案例。功能很明确,就是点击左侧菜单,右侧内容对应滚动指定;右侧内容滚动,左侧菜单对应高亮。 ?...点单的简易页面,emmmm..简洁得特别简陋 一、 问题描述 这个demo有两处问题: 1. 点击切换左侧菜单时,由于右侧内容滚动也触发了scroll事件,导致互相影响; ?...造成的菜单栏闪烁问题 2. 由于滚动高度的限制,点击左侧6/7/8菜单时,右侧对应的内容不会置顶 (当然,这个特征在目前各大外卖平台的产品设计就是不让置顶,但此处设计就是想点谁谁up)。 ?...滚动高度限制 二、问题分析与解决 1.事件冲突问题 这个问题我们可以考虑,在左侧菜单点击触发动画前,禁用右侧滚动事件,等动画结束后再启动右侧滚动事件。具体实现,可以通过一个标志来设定。...具体计算公式是: 合适的滚动高度 = 原本的滚动高度 + 页面高度 - 最后一个分类的高度 // 设置右侧分类合适的滚动高度 $("#listUl").

2.3K10

商品添加到购物车动画getBoundingClientRect获取元素位置

联动菜单 1.1 用户点击左侧导航栏会跳转到相应的内容 这个很简单,给导航栏的每一个元素加一个点击事件,其实也可以通过a标签的锚点来实现 右侧的内容左侧的导航栏会响应式改变 右侧内容监听一个scroll事件,当触发滑动事件的时候获取粘性定位在顶部的标题,根据标题使导航栏定位到相应的li var obj = element.getBoundingClientRect...listScroll() { // 为了达到联动效果,右侧滑动则改变左侧导航栏样式 var titles = document.getElementsByClassName('goodTitle...这也实现了内容区标题栏始终在顶部的效果。关于粘性定位更多的可以看这里 2. 按钮缓慢弹出 当我们点击添加按钮的时候其他的内容会缓慢弹出,这个是靠css的动画实现的。...动画实现思路:用户点击添加时将一个小球的位置设置为被点击元素的位置,且获取目的地位置(购物车位置),当小球抛出时使其运动方式按照贝塞尔曲线过渡。

2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    「大众点评点餐」小程序开发经验 03:事件联动

    点击下方左侧导航菜单栏,高亮显示被点击的菜单分类,下方右侧对应分类详情模块顶部与右侧滚动区的顶部重合(类似于 HTML 里的锚点功能)。...若左侧高亮的导航菜单不在可视区域: 当高亮的导航菜单顶部在左侧 scroll-view 滚动区上方(被遮住了),则将该高亮导航菜单滚动至将高亮导航栏的顶部与左侧可滚动区域顶部重合(高亮菜单为滚动区的第一个分类...左侧栏与右侧栏的联动 首先我们要做到:点击左侧导航菜单栏,右侧定位到对应的分类菜品详情。...由于小程序无法获取元素的宽高,位置信息,滚动右侧实现左侧联动效果的实现难度非常高。 如何准确的获取右侧滚动到的具体分类,并让左侧导航菜单栏相应分类高亮,且在可视的范围内?...左侧导航菜单栏高亮分类切换的边界条件为:右侧分类菜单详情的分类小灰条顶部,与右侧滚动区顶部重合。

    3.1K40

    进阶篇 - 三栏布局的嵌套与复杂界面构建

    具体内容展示代码回顾与分析让我们回顾一下三栏垂直分割布局的核心代码,并进行深入分析:ColumnSplit() { // 左侧导航 Column() {...通过点击按钮,我们可以切换左右两栏的宽度,实现收起和展开的效果。2. 条件渲染内容在复杂界面中,我们可能需要根据不同的条件渲染不同的内容。...{ ColumnSplit() { // 左侧导航 // 右侧内容区(合并中间和右侧) } } @Builder...,我们构建了一个功能完善的三栏布局界面,包含以下特性:顶部工具栏:显示标题和全屏切换按钮左侧分类导航:显示不同的内容分类,可以点击切换中间列表区:显示当前分类下的内容列表,可以点击查看详情右侧详情区:显示选中内容的详细信息...,可以关闭全屏模式:可以切换全屏模式,隐藏左侧导航,调整中间和右侧区域的宽度这个示例展示了如何使用三栏布局构建一个复杂的界面,并通过状态管理和条件渲染实现动态内容切换和布局调整。

    12700

    jQuery 尺寸、位置操作

    jQuery 尺寸、位置操作 ​ jQuery中分别为我们提供了两套快速获取和设置元素尺寸和位置的API,方便易用,内容如下。 1.1. ...jQuery 尺寸操作 ​ jQuery 尺寸操作包括元素宽高的获取和设置,且不一样的API对应不一样的盒子模型。 语法   1.以上参数为空,则是获取相应值,返回的是数字型。...案例: 品优购电梯导航(上) 1.当我们滚动到 今日推荐 模块,就让电梯导航显示出来2.点击电梯导航页面可以滚动到相应内容区域3.核心算法:因为电梯导航模块和内容区模块一一对应的4.当我们点击电梯导航某个小模块...,就可以拿到当前小模块的索引号5.就可以把animate要移动的距离求出来:当前索引号内容区模块它的offset().top6.然后执行动画即可 1.5....).index()); // 当我们每次点击小li 就需要计算出页面要去往的位置 // 选出对应索引号的内容区的盒子 计算它的.offset().top var current

    1.4K20

    88. 基础篇 - 打造现代化设置中心界面

    设置中心布局概述我们要实现的设置中心采用了经典的左右分栏设计:左侧为菜单栏,占据屏幕宽度的40%,用于展示各个设置类别右侧为内容区,占据屏幕宽度的60%,根据左侧选择的菜单项动态显示不同的设置内容这种布局设计在平板和桌面应用中非常常见...在我们的案例中,ColumnSplit用于将右侧内容区进一步分割为上中下三个部分。...在build方法中,我们使用RowSplit组件将界面分为左右两部分:左侧是一个Column组件,宽度为40%,背景色为浅灰色右侧是一个ColumnSplit组件,宽度为60%左侧菜单实现接下来,我们来实现左侧的菜单栏...,当按钮被点击时,更新selectedMenu状态变量的值右侧内容区实现右侧内容区使用ColumnSplit组件进行垂直分割,包含三个部分:ColumnSplit() { // 标题区 Text...:@State selectedMenu: string = '账户' - 使用@State装饰器声明一个状态变量,当这个变量的值发生变化时,相关的UI会自动更新在按钮的点击事件中更新状态变量:.onClick

    14710

    118. 基础篇 - 水平分割布局打造旅行规划应用

    左侧的行程列表区域占总宽度的40%,背景色为浅绿色,设置了10的内边距。右侧的详情区域占总宽度的60%,设置了15的内边距。...selectedDay状态 底部是一个"添加新行程"按钮 右侧详情区域 右侧详情区域包含顶部操作栏、内容区和底部操作按钮: Column() { // 顶部操作栏 Row() {...,用于切换地图视图和详情视图 内容区根据showMap状态条件渲染不同的内容 底部操作按钮包含"导航"和"分享行程"两个按钮 地图视图 当showMap为true时,显示地图视图: Column() {...使用Scroll处理溢出内容 在左侧行程列表和右侧详情视图中,我们都使用了Scroll组件来处理可能的内容溢出情况。这样,当内容超出可视区域时,用户可以通过滚动来查看所有内容。 3....通过水平分割布局,我们将界面分为左侧行程列表和右侧详情区域,实现了行程选择、视图切换等交互功能。

    10900

    vue系列教程之微商城项目|分类

    描述 本文需要实现的页面如下,点击左侧导航栏按钮,右侧自动滑动到对应位置。当滑动右侧内容,左侧导航栏也要做出相应变动。 ?...右侧商品分类列表 借助在主页中使用过的vant-ui的宫格布局快速实现相应布局和样式. ? ? ? ? ? ? 这样就完成了相应的静态布局,但无法实现内容滚动效果。...如果将overflow:hidden;属性取消,多出的内容就会溢出屏幕. 内容滚动 需要内容滚动的区域有左侧导航栏和右侧商品分类列表,需要分开处理。...联动思路 通过监听'scrollEnd'事件,获取当前显示的子元素的索引,奖其赋值给this.activeKey,因为this.activeKey与左侧导航栏动态绑定,这样就完成了滚动右侧内容,左侧导航栏随之变化的效果...赋值给wheel中的selectedIndex属性,就完成了点击左侧导航按钮,右侧自动滚动到对应内容.完整代码如下 fenlei.vue ?

    6.7K10

    Android 可拖动悬浮窗实现

    在实现逻辑之前,因为整体都在悬浮窗上实现,需要定义悬浮窗内容的一些必要属性,因为 indicatorView 和 rootView 的属性差不多,所以只列出 indicatorView 的属性列表,具体的可以看...,滑到左侧展开悬浮窗内容的动画 rightInSmoothToLeft(); } else {...@Override public void onScrollLeft(float scrollX) { // 从右侧滑到左侧,根据手势滑动的距离,...在屏幕的右侧,那么 contentView 也必须在屏幕的右侧,当拖动 indicatorView 的时候再慢慢的显示 contentView 就实现了拖动效果,所以 contentView 一开始...和 rightInSmoothToRight动画的实现,不多解释,直接上代码和注释 /** * 右侧滑进,滑到页面左侧,进入动画 */ private void rightInSmoothToLeft

    2.5K21

    移动Web 开发中的 Off Canvas 导航

    Off Canvas 简介 Off Canvas 导航相比也不陌生,在一些安卓应用(如谷歌的一些官方应用、易信、WordPress 安卓版)上常常能到——看到当你点击应用中的一个按钮时,会从左边或者右边侧拉出一个菜单...移动设备中空间极为有限,要显示最重要的内容,一些次要的或者不常用的内容最好做暂时隐藏处理,而专为移动端而生的Off-Canvas 就是这么一种“潜力无穷”的布局模式。...左侧或右侧),然后通过绑定某个鼠标或touch 事件调出导航菜单。...但细细考虑,该如何实现这个“调出导航菜单”的过程?用CSS的margin? 还是CSS的display?或者说 jQuery 的animate ?CSS3 的 transition?...的开源代码,以下列举一些: 一个jquery 插件:http://mobify.github.io/pikabu/ 又一个jquery 插件:http://christopheryee.ca/pushy

    2K50

    前端-10款web动画插件

    今天分享的这款就是基于jQuery的瀑布流图片筛选插件,我们可以点击图片分类名称,即可将对应分类下的图片以瀑布流的方式展示出来,这款插件在筛选图片上使用还是比较方便的。 ?...2.基于Layui的可自定义添加删除数据的表格处理插件 如何在网页上编辑表格数据,这通过自己编写JS和CSS实现都是比较麻烦的,jQuery有很多插件可以完成这种功能,比如这款jQuery简易版的Excel...5.jQuery左侧边栏多级菜单 适合后台管理页面使用 这是一款基于jQuery的侧边栏多级下拉菜单插件,这个菜单的特点是可以固定在左侧边栏,当页面滚动时整个菜单可以保持一直可见,方便操作。...6.CSS3弧形曲线循环菜单导航 菜单项图标高亮 今天给大家带来一个非常富有创意的CSS3菜单导航插件,它与我们平常看到的横向菜单或者纵向菜单都不同,它的菜单项是沿着一段弧形曲线分布的,同时有两个上下切换的按钮...我想知道有多少人,是直接滑到下面来看获取方式的! 哈哈~快给我点小心心

    6.7K50

    94. 基础篇 - 三栏垂直分割布局

    主要ColumnSplit容器接下来,我们添加了一个ColumnSplit容器,用于实现三栏垂直分割布局:ColumnSplit() { // 左侧导航 // 中间内容区 // 右侧边栏...整个布局可以分为以下几个部分:外层容器:使用Column组件作为最外层的容器,包含标题和主要内容区主要分割区:使用ColumnSplit组件将界面分为左、中、右三栏左侧导航栏:宽度为20%,包含导航菜单中间内容区...具体的设置如下:区域 宽度 高度 左侧导航栏 20% 100% (默认)中间内容区 60% 100% (默认)右侧边栏 20%...背景色设置为了使不同区域有视觉上的区分,我们为左侧导航栏、中间下部内容和右侧边栏设置了背景色:.backgroundColor('#f8f9fa') // 左侧导航栏和右侧边栏.backgroundColor...例如,我们可以在左侧导航栏中再嵌套一个ColumnSplit,将其分为上下两部分;或者在右侧边栏中嵌套一个RowSplit,将其分为左右两部分。

    12400

    设计师应该了解的iOS应用开发基础知识

    文件加载成功之后,点击左侧导航栏(Navigator)中的项目(Portfolio,1 target,iOS SDK),这时我们就可以在编辑区中看到这个项目的概况信息了,如下图所示。...关于这些概况信息的用处,我们稍后解释。图片点击左侧导航栏当中项目名称旁边的箭头,我们可以看到一个资源列表,里面包含了当前项目所涉及到的所有资源文件,例如代码和图片等。...在Xcode左侧的导航栏中点击MainWindow.xib,进入Interface Builder编辑模式。...在Xcode左侧的导航栏中选择HomeViewController.xib,然后从右侧的对象库中拖拽一个Label控件到编辑区当中的空白View上面。双击该控件,将文案更改为“Home”。...回到Xcode中,点击导航栏中的Portfolio项目图标,此时内容区会呈现出应用的信息概况。

    1.2K30

    教你实现最简单的QQ消息item侧滑菜单

    这次跟大家介绍怎么简单的实现类似QQ消息Item的左右滑动菜单的实现。首先见效果图先: ? show.gif 这就实现了ListView或RecyclerView加载的item的View实现侧滑菜单。...至于这么实现,很简单就是通过继承HorizontalScrollView,再判断滑动的距离以滑到对应的View或菜单。具体如下: 首先,在item的界面布局方面如下: 内容,右菜单所对用的view,即left,centre,right这三个View,然后获取屏幕的宽度,动态设定菜单的宽度为屏幕宽度的四分之一,而内容的宽度就是整个屏幕的宽度,即...(注:是屏幕最右边到整个View最右边的距离).当operateLeft==true的时候,滑动在操作在左侧,当getScrollX()的二分之一宽度时...,所以只能滑到内容区域,即this.scrollTo(MenuWidth, 0);,这两种情况除外都会滑到最后边的菜单,所以this.scrollTo(MenuWidth * 2, 0); 同样的道理,

    1.1K20

    超好看的30款网站侧边栏设计

    第一部分:为什么需要网站侧边栏? 侧边栏其实就是一种比较经典的网站导航设计,它的形式通常为竖向的一列,展示在网站的右侧或者左侧,具体的位置当然是取决于整体的设计。...但一般来讲,由于视觉习惯和用户行为,侧边栏位于左侧更容易第一时间吸引用户注意力,因而也能很高效地给用户提供导航;而右侧的侧边栏则常被看做是二级导航,因而可以丰富网站的结构层次。...Grace chuang Grace chuang是一个作品集单页网站,该网站布局分为三大部分,左侧为带有logo和社交按钮的侧边栏,中心是网站所有者的照片展示,右侧是自我介绍。 ? 4....Nice cream Nicecream 是一家手工冰淇淋生产网站,图文的布局和搭配很好的凸显了网站主题,侧边栏导航位于左侧,引导用户轻松访问感兴趣的内容。 ? 6....这里推荐一个YouTube的视频,详细地讲解了如何使用html、css和jQuery创建侧边栏侧边菜单。 https://www.youtube.com/watch?

    13.5K10

    scrollIntoView()方法导致整个页面产生偏移

    问题描述 今天在做页面UI改版的时候发现,我之前使用的是dom.scrollIntoView(); 使得点击右侧题目编号的时候,让左侧题目滚动到页面可视区域。...,当点击题目编号的时候,除了题目会滚动到可视区域,整个页面也会稍稍往上滚动,导致页面错位。...如下图所示,当我点击第9题的时候,左侧第9题移动到视口中,但是整个页面包括导航栏都往上移动了,且无法在移回来,整个页面是没有滚动条的。 ?...- target.parentNode.offsetTop; 参考 offset 相关属性:Web/06-一文搞懂DOM相关距离问题 解决方法 代码如下,加上动画: var target = document.getElementById...下面是一个参考例子:javascript - scrollTop animation without jquery 相关问题 类似的问题和解决方法如下链接: scrollintoview-moves-the-whole-page-layout-up

    4.6K40

    【CSS】课程网站横版导航栏 ( 横版导航栏测量及样式 | 代码示例 )

    文章目录 一、盒子测量及样式 1、总体盒子测量及样式 2、左侧盒子测量及样式 3、中间盒子测量及样式 4、右侧盒子测量及样式 二、横版导航栏代码示例 1、HTML 标签结构 2、CSS 样式 3、显示效果..., color 等样式可以被子元素继承 ; 该盒子有 2 像素的阴影 ; 最终的盒子样式如下 : /* 横向导航栏模块 总体盒子模型 样式 */ .goods { /* 内容高度 60 像素..., 竖线中间的文字都是链接标签 , 每个链接标签左右两侧各有 30 像素的间隔 , 这里使用外边距实现 ; 文本的高度和行高继承父元素的样式 , 都为 60 , 会自动垂直居中 , 文本大小为...导航栏盒子 - 使用无序列表实现 --> 首页 ...-- 左侧 侧导航栏 --> <!

    6.2K30

    LayUI之旅-入门

    ,不仅仅要PC端使用,还有移动端也是要使用的,所以需要实现左边栏的显示和隐藏),因为设计是右侧(页面内容区域)异步加载(这是最终确定的方案),所以页面上的所有事件的绑定都需要用事件委托来处理(刚开始我也没注意到这个问题...注意:上面的代码用到了device模块,在使用之前必须先加载(use),详细的可以参照官方的加载所需模块 2、实现右侧内容部分的异步加载(局部刷新) 刚开始想到的是直接用html的iframe来实现,很快就实现了...,就需要有新的方案来实现,有两种方案可行; 第一种,每一页都独立加载,使用框架的模板继承来实现头部和左边导航栏的重载(原样输出),这样有一个问题,就是用户不知道自己刚刚点击的是导航栏的哪一项,以及重复验证用户是否登录...第二种,头部和左边栏固定,右侧内容区域使用异步加载,ajax去向后台取内容,并进行局部刷新,这个方案很符合要求,所以这次的项目也是采用这个方案来实现的。...上面说到了,要使异步加载的页面内容的事件生效,需要进行事件委托,但我在委托完毕之后发现事件会被重复执行,表现的现象是:第一次点击,执行一次;第二次点击,执行两次;第N次点击,执行N次,这个问题很严重,

    3.1K20
    领券