首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用箭头键滚动时,将菜单顶部设置在ul元素的中间

,可以通过以下步骤实现:

  1. 首先,需要确定ul元素的高度和可视区域的高度。可以使用CSS的height属性设置ul元素的高度,使用JavaScript的clientHeight属性获取可视区域的高度。
  2. 接下来,需要监听键盘事件,以便捕获箭头键的按下事件。可以使用JavaScript的keydown事件监听键盘按键。
  3. 在键盘事件的处理函数中,判断按下的是上箭头键还是下箭头键。可以使用JavaScript的event.keyCode属性获取按下的键码,上箭头键的键码是38,下箭头键的键码是40。
  4. 如果按下的是上箭头键,将ul元素的scrollTop属性设置为当前scrollTop减去可视区域高度的一半。这样就可以将菜单顶部设置在ul元素的中间。
  5. 如果按下的是下箭头键,将ul元素的scrollTop属性设置为当前scrollTop加上可视区域高度的一半。这样也可以将菜单顶部设置在ul元素的中间。

以下是一个示例代码:

代码语言:html
复制
<!DOCTYPE html>
<html>
<head>
  <style>
    ul {
      height: 200px;
      overflow: auto;
    }
  </style>
</head>
<body>
  <ul>
    <li>菜单项1</li>
    <li>菜单项2</li>
    <li>菜单项3</li>
    <li>菜单项4</li>
    <li>菜单项5</li>
    <li>菜单项6</li>
    <li>菜单项7</li>
    <li>菜单项8</li>
    <li>菜单项9</li>
    <li>菜单项10</li>
  </ul>

  <script>
    var ul = document.querySelector('ul');
    var visibleHeight = ul.clientHeight;

    document.addEventListener('keydown', function(event) {
      if (event.keyCode === 38) { // 上箭头键
        ul.scrollTop -= visibleHeight / 2;
      } else if (event.keyCode === 40) { // 下箭头键
        ul.scrollTop += visibleHeight / 2;
      }
    });
  </script>
</body>
</html>

这段代码中,ul元素的高度被设置为200px,并且使用了overflow: auto属性,以便在内容溢出时显示滚动条。键盘事件被添加到整个文档上,当按下上箭头键或下箭头键时,ul元素的scrollTop属性会相应地进行调整,从而实现将菜单顶部设置在ul元素的中间。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

提高效率 |ArcGIS Pro 中所有快捷键一网打尽

未完成文本翻转 180 度至随沿边左侧或右侧。使用随沿要素创建文本,可以使用此快捷键。 O 使用“随沿要素”选项。 打开编辑器设置对话框。使用随沿要素创建文本,可以使用此快捷键。...当照相机移动,调整鼠标指向以设置您要行驶方向。可以选择使用 W 和 S 键更改方向。 左箭头键和右箭头键 从视图中心向左或向右移动照相机。...按住左箭头或右箭头键可垂直于照相机当前视图方向左或向右移动照相机。当照相机移动,调整鼠标指向以设置要相对垂直行驶方向。可以选择使用 A 和 D 键更改方向。...Ctrl+D 为选定模型元素选中添加到显示。 Ctrl+Shift+D 为选定模型元素取消选中添加到显示。 Ctrl+I 为选定模型元素选中中间数据。...要在不打开字段视图情况下重新显示所有字段,请单击表格视图顶部菜单按钮,然后单击显示所有字段。此时,所有隐藏字段恢复为显示状态,并在表格视图和其他对话框中变为可用状态。

1.1K20
  • 【移动端网页布局】流式布局案例 ④ ( Banner 栏制作 | 固定定位 | 标准流 | 百分比宽度设置 )

    { /* 第二排搜索栏样式 */ /* 该样式滑动 , 始终最上方显示 */ position: fixed; /* 防止外边距塌陷进行设置 */ overflow...45 像素 */ height: 45px; } .app ul li { /* 设置左浮动 令列表元素水平排列 */ float: left; /* 设置高度 45...vertical-align: middle; } .app ul li:nth-child(3) { /* 中间 "打开京东APP, 实惠又轻松" 文本盒子宽度 */ width...width: 40px; height: 44px; } .search-btn::before { /* 指定标签元素内部 前面 插入内容 */ /* 左侧按钮盒子中...图标的右上角 right 值为负数说明该竖线 JD 图标之外 */ right: -8px; top: 0; /* 设置显示模式为块级元素 可以设置宽高 */ display

    1.7K20

    CSS固定定位与粘性定位4大企业级案例

    前面两篇文章为大家详细讲解了相对定位与绝对定位应用场景和案例。如果想了解可以公众号里面查看去看。本小节我们学习下固定定位与粘性定位应用场景和案例。...常见应用有:楼梯式导航、浏览器右侧菜单、底部通栏、全屏黑色半透明遮罩弹出层、弹出注册和登录框、左上固定右自适应后台管理系统布局 粘性定位 当滚动高度>元素与浏览器高度,会以fixed固定定位显示...当滚动高度<元素与浏览器高度,会以relative相对定位显示。...常见应用有:吸顶盒导航,滚动吸附效果 1、楼梯式导航、浏览器右侧菜单、底部通栏(固定定位应用) 这三个案例用都是用固定定位来控制其与浏览器位置。...(固定定位应用) 顶部导航和左侧菜单相对于浏览器固定定位。

    1.6K30

    如何使用Midnight Commander,一个可视文件管理器

    [7bbnqsc8rr.png] 屏幕顶部,您可以看到带有文本彩色条: Left,File,Command,Options, Right。...这些是下拉菜单,可以通过按F9然后使用箭头键进行导航来访问这些菜单。按F9键,然后按向下箭头键多次,直到Tree高亮,按ENTER确认。该面板现在更改为树视图显示文件和目录。...您还可以使用鼠标指针单击界面元素使用两个面板来处理文件和目录 使用TAB键左右垂直面板间切换。 使用F10关闭Midnight Commander程序。...example替换为您在远程计算机上创建用户名并将203.0.113.1替换为服务器IP地址。仅当另一端服务器接受密码登录,连接才能生效。...您还可以通过这些设置复制到其他服务器同一位置来进行配置克隆。

    8.6K62

    bootstrap源码分析之scrollspy(滚动侦听)

    源码文件: Scrollspy.js 实现功能 1、当滚动区域内设置hashkey距离顶点到有效位置,就关联设置其导航上指定项 2、导航必须是 .nav > li > a 结构,并且a上href...div> 源码分析: 1、原理:当滚动容器内hashkey位置距离容器顶部只有 offset设置值,就会设置导航中对应href高亮 2、如果滚动区域是body,会将滚动区域元素标记为window(...,用于计算当前需要高亮那个导航菜单    5.1、获取滚动容器已滚动距离: var scrollTop = this....$scrollElement.height()    5.3、设置滚动元素逻辑: for (i = offsets.length; i--;) {//遍历所有的offset activeTarget...& this.activate(targets[i]) //设置i为当前活动项 } 6、active:设置指定导航菜单高亮 7、clear:清除所有高亮菜单

    1K100

    浮动清楚浮动及position用法

    right 右侧不允许浮动元素。 both 左右两侧均不允许浮动元素。 none 默认值。允许浮动元素出现在两侧。 inherit 规定应该从父元素继承 clear 属性值。...对象遵循正常文档流,但依据top,right,bottom,left等属性正常文档流中偏移位置。而其层叠通过z-index属性定义。...fixed(固定) fixed:对象脱离正常文档流,使用top,right,bottom,left等属性以窗口为参考点进行定位,当出现滚动,对象不会随着滚动。...因为它原本所占空间仍然占据文档流。 在理论上,被设置为fixed元素会被定位于浏览器窗口一个指定坐标,不论窗口是否滚动,它都会固定在这个位置。 示例代码: <!...综合示例 顶部导航菜单 <!

    2.1K40

    使用 sroll-snap-type 优化滚动

    }   上面 scroll-snap-type: x mandatory 中,x 表示捕捉 x 轴方向上滚动,mandatory 表示强制滚动结束后元素停留位置设置到我们规定地方。...再看看实际 Demo , scroll-snap-align 添加到滚动子容器上: scroll-snap-align: start 使当前聚焦滚动元素滚动方向上相对于父容器顶部对齐。 ?...CodePen Demo -- CSS Scroll Snap Demo 不规则子元素滚动 如果子元素大小不一,也能有非常好表现,使用 scroll-snap-align: center,使得不规则子元素每次滚动后居于容器中间...然而可选值只有三个,有的时候我们希望进行一些更精细控制,可以使用 scroll-margin 或者 scroll-padding 其中: scroll-padding 是作用于滚动父容器,类似于盒子...padding scroll-margin 是作用于滚动元素,每个子元素 scroll-margin 可以设置为不一样值,类似于盒子 margin 举个例子,竖向滚动下,给滚动父容器添加一个

    1.5K30

    Windows10中键盘快捷方式

    向上键 光标移动到上一段落起始处 Ctrl + Alt + Tab 使用箭头键在所有打开应用之间进行切换 Alt + Shift + 箭头键 当组或磁贴焦点放在“开始”菜单,可将其朝指定方向移动...Ctrl + Shift + 箭头键 当磁贴焦点放在“开始”菜单,将其移到另一个磁贴即可创建一个文件夹 Ctrl + 箭头键 打开“开始”菜单后调整其大小 Ctrl + 箭头键(移至某个项目)+...当出现 Windows 提示,请将焦点移到提示上。 再次按下键盘快捷方式,焦点放在屏幕上 Windows 提示所固定元素上。...(第二个笔划还原所有窗口) Windows 徽标键 + Shift + 向上键 桌面窗口拉伸至屏幕顶部和底部 Windows 徽标键 + Shift + 向下键 垂直方向上还原/最小化活动桌面窗口...当出现 Windows 提示,请将焦点移到提示上。 再次按下键盘快捷方式,焦点放在屏幕上 Windows 提示所固定元素上。

    4.5K20

    python测试开发django-136.Bootstrap 顶部导航navbar

    前言 页面顶部导航可以固定在屏幕顶部,不用随着页面上下拖动而滚动。...Bootstrap 框架可以用 .navbar 快速实现这种页面效果 navbar导航 navbar导航组件常用几个 class 属性 .navbar ——设置 nav 元素为导航条组件; .navbar-default...——设置导航条组件固定在底部; .navbar-header ——主要指定 div 元素为导航条组件包裹品牌图标及切换按钮; .navbar-toggle ——设置 button 元素为导航条组件切换钮...; .collapsed ——设置 button 元素视口小于768px才显示; .navbar-brand ——设置导航条组件内品牌图标; navbar-brand 默认是放文字,也可以放图片...--头部右侧导航菜单--> <ul class="nav navbar-nav navbar-right

    1.4K20

    Windows快捷键速查

    F3 文件资源管理器中搜索文件或文件夹。 F4 文件资源管理器中显示地址栏列表。 F5 刷新活动窗口。 F6 循环浏览窗口中或桌面上屏幕元素。 F10 激活活动应用中的菜单栏。...Ctrl + 向上键 光标移动到上一段落起始处。 Ctrl + Alt + Tab 使用箭头键在所有打开应用之间进行切换。...Alt + Shift + 箭头键 当组或磁贴焦点放在“开始”菜单,可将其朝指定方向移动。...Ctrl + Shift + 箭头键 当磁贴焦点放在“开始”菜单,将其移到另一个磁贴即可创建一个文件夹。 Ctrl + 箭头键 打开“开始”菜单后调整其大小。...Alt + 所选择键 开始块模式下选择。 箭头键 按指定方向移动光标。 Page Up 光标向上移动一个页面。 Page Down 光标向下移动一个页面。

    4.2K20

    Js如何实现当网页超过一屏导航菜单始终置顶-吸顶盒效果

    前言 我们平时逛一些电商网站,无论是首页还是详情页,通常会有一个导航菜单石红跟随着页面,无论是页面滚动中间还是底部 这是为了方便用户查看商品各类信息或提交订单购物 也就是吸顶盒效果,那这个效果是怎么实现...原生Js 如下是原生js // 初始化函数 function init() { // 获取顶部元素DOM var wrap = document.getElementById("wrap...把顶部导航菜单设置固定 if(scrollTop > 150) { wrap.className = "fix-top"; // 固定顶部样式...,就不得不使用csspositon样式,其次,来控制网页是不是需要把导航菜单置顶,因为当网页内容浏览没有滑出导航菜单可见范围,是没有必要把导航菜单置顶,因此,代码中就需要监听网页滚动跳滑动事件...当超过一定范围以后,才有必要为导航菜单设置固定position样式 其实也有另外一种解决办法,就是导航栏始终是固定在顶部,当拉动滚动到一定范围,就改变背景色,也是一种解决办法

    3.4K50

    你也许不知道浏览器一些滚动行为

    ✅ 效果对比如下: 很明显,前者就是把滚动高度设置成100,而后者是每次都增加100,这就是为什么称之为相对滚动了✅ 如何指定一个元素显示视窗 1....最常用方法: // 获取元素offsetTop(元素距离文档顶部距离) let offsetTop = document.querySelector(".box").offsetTop; //...} 效果如下: 注意:设置了该属性之后,所有方法都可以不用设置behavior参数了,二选一即可,因为都是控制当前指定元素滚动行为,所以锚点跳转、设置scrollTop也具有平滑(smooth)滚动行为...滚动结束后,强制滚动到指定元素 基于上面的例子,我们设置如下属性: ul { scroll-snap-type: x mandatory; li { scroll-snap-align...: start; } } 效果如下: 仔细看会发现,我们松手时候,会将最近元素滚动到最右边(初始位置,对于Y轴来讲就是顶部,X轴则是右边) 也可以设置出现在中间: li { scroll-snap-align

    3K20

    Ubuntu 17.10 已经发布,图解新功能

    当一个窗口触及任何一个元素,“动态透明度”功能就会启动,以使底座和顶部颜色变暗,从而使面板标签内容在前景更加清晰。...没有一个真正全局应用程序菜单,大多数应用程序顶部一个小菜单中放置了一个关于应用程序名称菜单。这些应用程序菜单至少可以包含一个单独“退出”按钮,最多可以选择最多选项。...可以通过点击它来启动应用程序,使用键盘箭头键选择它,然后按Enter键,或者触摸(如果您使用是触摸屏)。...Ubuntu 17.10还提供了一个自定义GNOME Shell主题,使用Ambiance调色板来调整顶部栏,弹出菜单,会话对话框。 使用某些应用程序时,您可能会注意到一些按钮是绿色。...“你不会注意到使用Wayland任何重大差异,从传统Xorg显示服务器切换到Wayland是一个巨大变化,但是使用Wayland,您不会注意到任何主要区别。

    1.8K90

    独家 | Tableau使用窍门:轻松学会设计仪表板

    菜单中选择“仪表板”(“Dashboard”),然后再选择“显示网格”(“Show Grid”)。就是这么简单。 ? #9 – 设置像素以调整网格尺寸 这是一个非常方便选项。...#8 – 使用移位键(SHIFT)画布上对象拖动为浮动对象 当一个新工作表放入仪表板画布,你可以按住移位键(SHIFT)同时画布上拖动对象,Tableau随之更改“平铺/浮动”设置。...#1 – 双击仪表板画布中对象顶部标签以选中容器 这是一个简单小窍门。当选中一个对象,双击这个对象顶部标签可以选中容纳这个对象容器。 ?...注意,这些对象以平铺开始,但是结束将会成为浮动对象。 2. 仪表板底部添加一个空对象。 3. 删除“尺寸”图例。 4. 双击对象顶部标签以选中容器。 5....使用移位键(SHIFT)容器设为浮动对象。注意,当你这样操作,你可以改变容器大小并且使4个工作表容器中呈现同等大小。 6. 排版容器以工作表放在所需位置(浮动容器中平铺对象) 7.

    2.3K20
    领券