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

单击外部时,iOS设备上的CSS下拉菜单不会消失

在iOS设备上,当用户单击页面的其他区域时,CSS下拉菜单不会自动消失。这是因为iOS设备上的CSS下拉菜单在默认情况下具有固定的行为,即只有在用户选择其中一个选项后,菜单才会关闭。

为了解决这个问题,可以使用JavaScript来实现下拉菜单的关闭行为。具体步骤如下:

  1. 监听页面的点击事件,当用户点击页面其他区域时触发。
  2. 在点击事件的处理函数中,判断点击的区域是否在下拉菜单的范围内。
  3. 如果点击的区域不在下拉菜单范围内,则关闭下拉菜单。

以下是一个示例代码:

代码语言:txt
复制
document.addEventListener('click', function(event) {
  var dropdownMenu = document.getElementById('dropdown-menu'); // 下拉菜单的ID
  var target = event.target; // 点击的目标元素

  // 判断点击的目标元素是否在下拉菜单范围内
  if (!dropdownMenu.contains(target)) {
    // 关闭下拉菜单
    dropdownMenu.classList.remove('show'); // 假设使用show类来显示下拉菜单
  }
});

在上述代码中,我们通过document.getElementById方法获取到下拉菜单的元素,并通过contains方法判断点击的目标元素是否在下拉菜单范围内。如果不在范围内,则移除显示下拉菜单的类。

此外,还可以通过CSS的:focus伪类来实现下拉菜单的关闭行为。具体步骤如下:

  1. 使用tabindex属性将下拉菜单的元素设为可获得焦点。
  2. 使用:focus伪类选择器来定义下拉菜单获得焦点时的样式。
  3. 在CSS中为页面其他区域添加点击事件,当点击其他区域时,下拉菜单失去焦点,从而关闭菜单。

以下是一个示例代码:

代码语言:txt
复制
<style>
  .dropdown-menu:focus {
    /* 下拉菜单获得焦点时的样式 */
  }
</style>

<div tabindex="0" class="dropdown-menu">
  <!-- 下拉菜单的内容 -->
</div>

<script>
  document.addEventListener('click', function(event) {
    var dropdownMenu = document.querySelector('.dropdown-menu'); // 下拉菜单的类名
    var target = event.target; // 点击的目标元素

    // 判断点击的目标元素是否在下拉菜单范围内
    if (!dropdownMenu.contains(target)) {
      // 失去焦点,关闭下拉菜单
      dropdownMenu.blur();
    }
  });
</script>

在上述代码中,我们通过tabindex属性将下拉菜单的元素设为可获得焦点,并使用:focus伪类选择器来定义下拉菜单获得焦点时的样式。通过blur方法使下拉菜单失去焦点,从而关闭菜单。

推荐的腾讯云相关产品:无

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

相关·内容

CSS 下拉菜单与 focus

导航栏之所以不直接显示而是放进下拉菜单,也是为了在移动端等小尺寸设备中显示得优雅一点,因此这个单击判定其实是优势。...不过还是有点问题,比如一台 iPad mini 这种中尺寸设备,竖屏 + 鼠标情况下,但凡鼠标掠过就会调出下拉菜单;或者即便是 PC,把窗口缩小也同样是掠过频繁调出下拉菜单……毕竟是为了小尺寸设备设计而其中并非全是触摸设备...iOS Safari 出错 是的,iOS Safari 这个错误是促成本文最主要缘故。...这个问题很迷,在 iOS Safari 100% 复现而在 iOS Chrome 完全无法复现。...PC iOS Android focus 持续到失去焦点 默认不可用 松开进入,持续到失去焦点 hover 悬停期间 按下进入,持续到失去焦点 按下进入,持续到失去焦点 active 单击按下期间

5.4K20

前端jQuery炫酷效果

获取用户输入数据 -- value属性值访问 2、看下拉菜单选项 如果是a -- 获取下拉菜单vlaue == 0,把用户数据按照a模板展示;如果是b --获取下拉菜单vlaue == 1,...由于此处代码实现过于复杂,css和js功能实现代码量较多,公众号文章字数有所限制,所以此处将两个重要功能实现即可,有了这两个例子,其他都可以做出来了,至于网页美化这些到是简单许多。...flag_user = false } } // 验证同意协议复选框 // 单击时候改变勾选状态 -- 验证click:if(勾选){合法}else{...else { alert('不能提交') return false } }) }) 案例四:弹窗 要求:单击弹窗外部...,弹窗消失;点击x弹窗消失;点击弹窗内部,弹窗不消失

3.8K30

html中下拉菜单(html做下拉菜单栏)

下面我们通过代码与案例接受select跳转菜 html5怎么实现div+css二级下拉菜单 1.外部为ul标签,在每个li里嵌套一个ol列表 2.设置外部li左浮动,内部ol标签绝对定位,外部li标签相对定位...3.设置ol高为0,溢出隐藏 4.外部li标签:hover ,设置ol高度。...McGrak 2018-11-03 | 浏览19 次 HTML编程语言html5 |举报 答题抽奖 首次认真答题后 即可获得3次抽奖 html5下拉菜单怎么弄拉菜单 HTML5如何才能让导航栏固定顶部不动...2,后者是网页具体内容,这里代码比较简单。 3,在样式中,首先在菜单中定义一些样式。 4,此时,在运行页面,滚动条滚动后导航将消失。...html select标签下拉框中怎么指定只让显示5个 静态数据:你写几个options就是几个选项 动态数据:把返回数据取你需要5个放到options中就行了呀 html5 + css3 做下拉菜单在部分手机浏览器中无法

11.3K40

最新iOS设计规范五|3大界面要素:控件(Controls)

iOS是运行于iPhone、iPad和iPod touch设备、最常用移动操作系统之一。作为互联网应用开发者、产品经理、体验设计师,都应当理解并熟悉平台设计规范。...在模式视图中,人们可以对日期和时间进行多次编辑,然后在视图外部轻按以确认他们选择。 指定分钟数,请考虑提供较小粒度。默认情况下,分钟列表包含60个值(0到59)。...网络加载指示(Network Activity Indicators) 网络加载指示在iOS 13和全面屏显示设备已被弃用。...在iOS 12及更早版本中,以及在全面屏显示设备,网络活动指示器会在发生联网在屏幕顶部状态栏中旋转,联网完成后消失。和活动加载指示器样式一样,并且是非交互式。 ?...九、下拉菜单(Pull-Down Menus) 在iOS 14及更高版本中(微信右上角下拉菜单其实出现更早),按钮可以显示一个下拉菜单,其中列出了人们可以选择项目或动作。

8.5K30

10分钟内就可以学会几个CSS高招

当学习基本 CSS ,你将更好地控制你代码创造力和自由度,直到我进入 Web 开发职业生涯后,我才得到最好建议是学习 CSS 盒模型,因为当你理解它,语言开始变得更有意义,事实它很简单,我现在就教你盒子模型...5、 Clamp it down 现在,当我们谈论响应式布局,有 90% 时间我们谈论是根据设备或视口上可用空间来更改某些内容宽度。有很多方法可以做到。...现在你永远不必担心在你 HTML 中给东西编号,在构建一个复杂下拉菜单,你可能会假设一些 JavaScript 涉及到管理菜单打开和关闭状态,但是你可能会惊讶于仅使用简单 CSS 就能做到多远...现在,你很可能熟悉,当你进入表单输入或单击按钮应用于元素焦点伪类。 ? 问题在于构建下拉菜单,你可能会使用焦点打开菜单,但是当你单击该菜单内某些内容,它会失去焦点并关闭。...但请记住我在文章前面提到那些浏览器供应商前缀事情。 这些东西不会消失,幸运是,我们确实有一些方法,可以使它几乎不引人注目。

1.4K20

Figma也可以用时间轴做超级流畅动画了

将矩形放置在靠近Frame左角位置,以便在右侧留出一些空间来移动它。 ? 现在转到Motion,然后单击X属性“添加关键帧”按钮。 ? 我们动画将持续500毫秒。...有4种缓动功能: 线性 缓入—开始加速 缓和—最终减速 缓入缓出—起点加速,终点减速 在这里还有一个选项-Steps。它将立即更改数值,而不会进行任何转换。...开始加速,结束减速。 ? 瞬间移动 4.3复制粘贴关键帧 复制和粘贴关键帧也很容易。选择关键帧,按Ctrl / Cmd + C或从所选关键帧下拉菜单单击“复制”。...选择我们第一个矩形,转到“Motion”,选择我们关键帧,然后单击Ctrl / Cmd + C或从任意关键帧下拉菜单中选择“复制”。 ?...现在,选择我们第二个矩形,转到“Motion”,然后单击Ctrl / Cmd + V或从时间轴上任何位置下拉菜单中选择“粘贴”。此时会粘贴两个关键帧。 ? 只需单击几下,您就会搞定这个矩形动画。

17.4K34

分享5个关于 Vue 小知识,希望对你有所帮助

当我们将鼠标移出div,“hovered”消失了。 3、在Vue.js中获取组件内元素 有时候,我们希望在Vue.js中获取组件内元素。...当我们单击外部,应该看到“clicked outside”被记录。 我们可以通过创建自定义指令来检测 Vue.js 中元素外点击。...这种功能在很多应用场景中都非常有用,以下是一些具体示例: 下拉菜单(Dropdown)或模态窗口(Modal):当用户点击下拉菜单或模态窗口外部区域,我们通常期望下拉菜单或模态窗口会关闭。...这就需要检测用户是否点击了元素外部,如果是,那么就触发一个函数来关闭下拉菜单或模态窗口。...当工具提示展示,如果用户点击了工具提示以外其他地方,我们通常希望工具提示会消失

19830

吃透移动端 H5 与 Hybrid|实践踩坑12种问题汇总

iOS safari,为了实现双击缩放操作,在单击 300ms 之后,如果未进行第二次点击,则执行 click 单击操作。也就是说来判断用户行为是否为双击产生。...双层元素叠加,在上层元素绑定 touch 事件,下层元素绑定 click 事件。.../); // 如果设备类型为iOS 12+ 和wechat 6.7.4+,恢复成原来视口 if (+wechatVersion.replace(/\....contain:视图端口按比例缩放,以适合显示内嵌最大矩形。 cover:视图端口被缩放以填充设备显示。强烈建议使用 safe area inset 变量,以确保重要内容不会出现在显示之外。...有些时候测试环境没法复现这个 bug,测试环境和生产环境不一致,此时就需要紧急生产调试。 在 PC 端开发,我们可以直接掉出控制台,使用浏览器提供工具操作devtools或者查看日志。

2.1K20

12个关于移动 H5 开发采坑问题汇总

iOS safari,为了实现双击缩放操作,在单击 300ms 之后,如果未进行第二次点击,则执行 click 单击操作。也就是说来判断用户行为是否为双击产生。...双层元素叠加,在上层元素绑定 touch 事件,下层元素绑定 click 事件。.../); // 如果设备类型为iOS 12+ 和wechat 6.7.4+,恢复成原来视口 if (+wechatVersion.replace(/\....contain:视图端口按比例缩放,以适合显示内嵌最大矩形。 cover:视图端口被缩放以填充设备显示。强烈建议使用 safe area inset 变量,以确保重要内容不会出现在显示之外。...有些时候测试环境没法复现这个 bug,测试环境和生产环境不一致,此时就需要紧急生产调试。 在 PC 端开发,我们可以直接掉出控制台,使用浏览器提供工具操作devtools或者查看日志。

1.5K20

【Hybrid】518- 12种移动端 H5 与 Hybrid问题汇总

iOS safari,为了实现双击缩放操作,在单击 300ms 之后,如果未进行第二次点击,则执行 click 单击操作。也就是说来判断用户行为是否为双击产生。...双层元素叠加,在上层元素绑定 touch 事件,下层元素绑定 click 事件。.../); // 如果设备类型为iOS 12+ 和wechat 6.7.4+,恢复成原来视口 if (+wechatVersion.replace(/\....contain:视图端口按比例缩放,以适合显示内嵌最大矩形。 cover:视图端口被缩放以填充设备显示。强烈建议使用 safe area inset 变量,以确保重要内容不会出现在显示之外。...有些时候测试环境没法复现这个 bug,测试环境和生产环境不一致,此时就需要紧急生产调试。 在 PC 端开发,我们可以直接掉出控制台,使用浏览器提供工具操作devtools或者查看日志。

1.3K22

移动开发实用

200-300 ms延迟响应 移动设备web网页是有300ms延迟,玩玩会造成按钮点击延迟甚至是点击失效。...什么是Retina 显示屏,带来了什么问题 retina:一种具备超高像素密度液晶屏,同样大小屏幕显示像素点由1个变为多个,如在同样带下屏幕,苹果设备retina显示屏中,像素点1个变为4...1/2,例如视觉稿40px字体,使用样式写法为20px .css{font-size:20px} 参考《高清显示屏原理及设计方案》 ios系统中元素被触摸产生半透明灰色遮罩怎么去掉 ios用户点击一个链接...,可明示用户有些事情正要发生,是一个比较好体验,但是移动设备中并没有鼠标指针,使用csshover并不能满足我们需求,还好国外有个激活cssactive效果,代码如下, <!...》 fixed bug ios下fixed元素容易定位出错,软键盘弹出,影响fixed元素定位 android下fixed表现要比iOS更好,软键盘弹出不会影响fixed元素定位 ios4下不支持

6.4K30

iOS开发入门笔记

例如你可以在模拟器长按应用icon调出删除应用的确认框) 鼠标按住拖动 等于 手指拖动 双击和单击模拟器Home键也等于双击和单击真机Home键 多指手势 多指手势比较复杂,在白苹果笔记本可以模拟简单双指手势...要切换模拟器中iOS中英文输入法,也只能按iOS设备软键盘上小地球图标,按Mac电脑Command+空格键是不行。...真机测试 模拟器能验证你开发iOS应用大部分功能,但有些Mac设备不具备硬件,模拟器是不能模拟。...iOS设备。...比如说,10point在Retina设备里是20 pixel,在非Retina设备(iPhone 3G)则是10 pixel。 项目成员间交流,应使用Point,不要使用pixel。

3.9K60

「插图学编程」教你一招,干干净净卸载Python

单击“开始”菜单左下角“设置”图标。这将调出设置窗口。 ? 找出你想要卸载python版本。 ? 点击“Uninstall卸载”按钮并确定。 ? 很大可能它会问一下你,确定卸载吗?非常确定。 ?...到这儿,基本python就从眼前消失了。...在“Devices and Drives(设备和驱动器)”部分双击您硬盘。 在文件夹列表中找到“Python27”(或类似的)文件夹。 选择Python文件夹,然后右键单击它以提示下拉菜单。...单击下拉菜单删除。 ? Mac苹果笔记本怎么卸载 mac是基于BSD古老UNIX系统延伸来,卸载方式与windows不同。 步骤是,先找到python安装文件夹。 ?...选中要删除文件夹,然后删除。 ? ? 这得提示你输入密码,得确认权限。 ? 写在最后 现在Anaconda生态发展比较全面,数据研究,机器学习包库很完备。

3.9K20

玩转谷歌优化(Google Optimize)

编辑器加载,你将看到你在设置实验定义编辑器页面。 如果你曾经使用过WYSIWYG编辑器,那这个界面看起来是比较直观。...显示变体下拉列表,选择一个变体后则会将其加载到编辑器中。 3. 设备测试。此下拉菜单显示可供选择设备。选择其中一个设备将显示你实验在该设设备预览模式。默认情况下是始终选择桌面。 4....如果你需要编辑由下拉菜单或标签隐藏内容,则需要使用交互模式。进入交互模式将允许你单击元素以显示隐藏内容。然后,你可以退出交互模式以编辑所述内容。 8. 设置。有两种方法可以拖放元素。...如果你想选择多个相同类型元素,可使用CSS Element选择器(如上述第9点)。 12. 修改元素选项。当你右键单击所选元素,会显示此下拉菜单。其功能就如其名称。 13....CSS编辑器 如果你不熟悉CSS,谷歌优化有一个编辑器调色板,使得改变样式非常简单。只需单击,或使用元素层次结构,即可选择要更改元素。 CSS调色板将填充该元素所有样式。

3.7K70

如何删除word空白页技巧汇总

3、在Word菜单栏依次单击“格式”→“段落”菜单命令,打开“段落”对话框。在“行距”下拉菜单中选中“固定值”,并将“设置值”调整为“1”。设置完毕单击“确定”按钮。 ?...第2步,在Word菜单栏依次单击“格式”→“段落”菜单命令,打开“段落”对话框。在“行距”下拉菜单中选中“固定值”,并将“设置值”调整为“1”。设置完毕单击“确定”按钮。如图所示~~ ?...第2步,在Word菜单栏依次单击“格式”→“段落”菜单命令,打开“段落”对话框。在“行距”下拉菜单中选中“固定值”,并将“设置值”调整为“1”。...设置完毕单击“确定”按钮 以上就是常用到word怎么删除空白页方法技巧 删除Word空白页方法 我们在Word中编辑文字页面,或者是插入一张表格后,当内容充满当前整页,会在当前页后面产生一个空白页...在“行距”下拉菜单中选中“固定值”,并将“设置值”设置为“1”。设置完毕单击“确定”按钮。

19.1K100

网络故障解疑:找回消失本地连接(多图)

那么一旦你遇到本地连接图标无法找到现象,你该如何快速地来应对呢?相信本文下面的招法,可以帮助你快速找回消失本地连接图标!...要检查网卡是否工作正常,你只要依次单击“开始”/“设置”/“控制面板”命令,在弹出控制面板窗口中,双击“系统”图标,在弹出系统属性设置窗口中,打开“硬件”标签页面,再单击其中设备管理器”按钮,...倘若发现网卡工作不正常的话,你可以用鼠标右键单击设备列表中网卡图标,从弹出右键菜单中执行“卸载”命令,接着再将网卡拔出,并更换一个新插槽,再重新启动一下计算机看看,相信这样系统就能重新正确识别到网卡...检查是否安装简单TCP/IP组件 网络服务中简单TCP/IP服务组件如果没有安装的话,那么网络和拨号连接窗口中可能就不会出现本地连接图标。...在该编辑窗口中,单击菜单栏中“文件”菜单项,从弹出下拉菜单中执行“打开注册表”命令,在接着出现图5所示窗口中,双击其中“本地用户”图标,在其后出现属性设置界面中,依次展开“外壳界面”、“限制

2.6K10

移动应用手动测试策略

选择设备类型 开始测试阶段之前一项重要工作是确定要在其执行测试设备数量。对于 iOS 设备设备数量是有限。但 Android 系统生态中,可以运行Android系统设备数不胜数。...应用程序组件(如按钮、下拉菜单等)在触摸响应 用户交互特定行为,如动画、页面更改及其响应时间 视口在不同设备响应行为,每个设备具有不同分辨率 如果应用程序是基于 Web ,则应在 Android...或 iOS 设备中具有主要使用份额浏览器中测试其关键功能行为和性能 性能和安全测试 移动设备存储空间有限。...当移动设备存储空间几乎已满,应用程序往往会变得缓慢或无响应。需要手动测试应用程序以检查其在存储空间很小设备性能。...如果应用程序正在处理敏感数据,例如银行或在线交易相关信息,则需要开箱即用安全测试方法。特别是,应确保应用程序不会设备中存储信息。

46530

移动端web开发笔记

5、 移动端手机号码识别(IOS) 在 iOS Safari (其他浏览器和Android均不会)上会对那些看起来像是电话号码数字处理为电话链接,比如: 7位数字,形如:1234567 带括号及加号数字...所以启动图片需要减去状态栏区域所对应方向上20px大小,相应地在retina设备要减去40px大小 <!...原因就出在浏览器需要如何判断快速点击,当用户在屏幕单击某一个元素时候,例如跳转链接,此处浏览器会先捕获该次单击,但浏览器不能决定用户是单纯要点击链接还是要双击该部分区域进行缩放操作,所以,捕获第一次单击后...retina:一种具备超高像素密度液晶屏,同样大小屏幕显示像素点由1个变为多个,如在同样带下屏幕,苹果设备retina显示屏中,像素点1个变为4个 在高清显示屏中位图被放大,图片会变得模糊...字体,使用样式写法为20px .css{font-size:20px} 6、ios系统中元素被触摸产生半透明灰色遮罩怎么去掉 ios用户点击一个链接,会出现一个半透明灰色遮罩, 如果想要禁用,可设置

3.5K20

移动端必备H5问题及解决方案

iOS safari,为了实现双击缩放操作,在单击 300ms 之后,如果未进行第二次点击,则执行 click 单击操作。也就是说来判断用户行为是否为双击产生。...双层元素叠加,在上层元素绑定 touch 事件,下层元素绑定 click 事件。.../); // 如果设备类型为iOS 12+ 和wechat 6.7.4+,恢复成原来视口 if (+wechatVersion.replace(/\....contain:视图端口按比例缩放,以适合显示内嵌最大矩形。 cover:视图端口被缩放以填充设备显示。强烈建议使用 safe - area inset 变量,以确保重要内容不会出现在显示之外。...有些时候测试环境没法复现这个 bug,测试环境和生产环境不一致,此时就需要紧急生产调试。 在 PC 端开发,我们可以直接掉出控制台,使用浏览器提供工具操作devtools或者查看日志。

4.2K42

jquery.mobile手机网页简要

能工作在现有主流智能手机和平板电脑,且构建于 jQuery 以及 jQuery UI类库之上,用极少 HTML5、CSS3、JavaScript 和 AJAX 脚本代码就能完成页面的布局渲染。...=1.0, maximum-scale=1.0, user-scalable=no" /> width=device-width :表示宽度是设备屏幕宽度 initial-scale=1.0:表示初始缩放比例...,可以选择配套插件来完成:分享15款为jQuery Mobile定制插件  注意jQuery Mobile对page定义,一个页面有多个page标签下,不同标签间切换,页面加载只加载指定page...下内容包括js,如果需要加载Js未包括在内如写在了head标签内,则不会加载,导致页面切换后达不到想要效果。...和footer消失 jQuery Mobile在 CSDN资源 JQM常见出错问题解决办法汇总

2.9K70
领券