首页 > 其他分享 >关于键盘导航顺序和 tabindex 属性的关联关系

关于键盘导航顺序和 tabindex 属性的关联关系

时间:2023-12-09 12:22:06浏览次数:39  
标签:JavaScript 焦点 元素 键盘 Tab 导航 tabindex

"tabindex"属性是HTML元素中的一个属性,用于定义元素在通过键盘导航时的顺序。该属性接受一个整数值,通常为正整数,用于指定元素的tab键顺序。但是,当"tabindex"属性的值为-1时,它有特殊的含义。

当"tabindex"的值为-1时,它表示该元素虽然可以通过JavaScript聚焦,但在通过按下Tab键进行导航时会被忽略。换句话说,元素不会参与普通的Tab键切换焦点的顺序。

这种情况通常用于通过JavaScript动态管理焦点,而不希望用户通过Tab键访问特定元素。例如,在某些交互式Web应用程序中,可能需要通过JavaScript在特定条件下将焦点设置在某个元素上,但又不希望用户通过Tab键访问该元素。

让我们通过一个简单的示例来说明。假设我们有以下HTML代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Tabindex Example</title>
  <style>
    .focusable {
      padding: 10px;
      margin: 5px;
      border: 1px solid #ccc;
      cursor: pointer;
    }
  </style>
</head>
<body>

  <div class="focusable" tabindex="0">First Element (tabindex="0")</div>
  <div class="focusable" tabindex="-1">Second Element (tabindex="-1")</div>
  <div class="focusable" tabindex="0">Third Element (tabindex="0")</div>

  <script>
    // JavaScript代码,用于动态设置焦点
    document.querySelector('.focusable').addEventListener('click', function() {
      document.querySelector('.focusable[tabindex="-1"]').focus();
    });
  </script>

</body>
</html>

在这个例子中,我们有三个div元素,分别具有不同的"tabindex"值。第一个和第三个元素的"tabindex"值为0,表示它们参与Tab键导航的顺序。第二个元素的"tabindex"值为-1,表示它在Tab键导航中被忽略。

通过JavaScript,我们为第一个元素添加了一个点击事件处理程序。当用户点击第一个元素时,JavaScript会将焦点设置到"tabindex"值为-1的第二个元素。虽然通过JavaScript可以设置焦点到"tabindex"为-1的元素,但用户无法通过Tab键访问该元素。

这种用法对于构建自定义键盘导航、模态框、弹出窗口等交互式组件非常有用,可以更精细地控制焦点的流向。

标签:JavaScript,焦点,元素,键盘,Tab,导航,tabindex
From: https://www.cnblogs.com/sap-jerry/p/17890755.html

相关文章

  • 金牌导航-二分图匹配
    金牌导航-二分图匹配例题A题解将行和列相匹配,跑最小割即可。例题A代码#include<bits/stdc++.h>usingnamespacestd;inlineintread(){intx=0,f=1;charch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();......
  • 小程序开发实战案例之三 | 小程序底部导航栏如何设置
    小程序中最常见的功能就是底部导航栏了,今天就来看一下怎么设置一个好看的导航栏~这里我们使用的是支付宝官方小程序IDE做示范。 官方提供的底部导航栏第一步:页面创建一般的小程序会有四个tab,我们这次也是配置四个tab的导航栏。首先,我们先创建四个页面: tab最多可......
  • Unity3D 开发中的触摸事件和键盘事件详解
    前言Unity3D是一款强大的游戏开发引擎,可以用于开发各种类型的游戏,包括PC、移动设备和虚拟现实等平台。在Unity3D开发中,触摸事件和键盘事件是非常重要的交互方式。本文将详细介绍Unity3D开发中的触摸事件和键盘事件,包括技术详解和代码实现。对惹,这里有一个游戏开发交流小组,希望大......
  • Prism导航
    注册导航页面注册区域使用p:RegionManager.RegionName注册页面区域<Windowx:Class="Zhaoxi.PrismRegion.Navigation.Views.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft......
  • uniapp---wap2app去掉系统自带的导航栏
    在用uniapp进行将wap站转化为app的时候,默认打包后的文件,带有系统的导航栏,下面是去除的办法:第一步:找到sitemap.json 设置titleNView为false: 第二步:在pages加入{"webviewId":"common","matchUrls":[{"hostname":"R:.*","pa......
  • 固定导航栏
    废话不多说,先看效果再上代码一、效果图二、html内容我这里用来外部样式表导入css,当然你可以根据自己的喜好<!DOCTYPEhtml><html> <head> <metacharset="utf-8"/> <title>导航栏</title><!--导入外部样式表--> <linkrel="stylesheet"h......
  • 界面控件DevExpress WPF导航组件,助力升级应用程序用户体验!(上)
    DevExpressWPF的SideNavigation(侧边导航)、TreeView、导航面板组件能帮助开发者在WPF项目中添加Windows样式的资源管理器栏或OutlookNavBar(导航栏),DevExpressWPFNavBar和Accordion控件包含了许多开发人员友好的功能,专门设计用于帮助用户构建极佳的应用功能。P.S:DevExpressWPF......
  • Android 9.0 app全屏通过系统属性控制手势上滑是否显示虚拟导航栏和状态栏
    1.前言在9.0的系统rom产品定制化os开发中,在系统设置app的全屏后,默认会隐藏导航栏和状态栏,页面全屏显示的时候,然后底部上滑会显示虚拟状态栏和导航栏显示几秒钟后会自动消失,由于项目开发需要要求通过api来控制全屏时上滑是否显示虚拟导航栏和状态栏,这就要从上滑事件分析看如何显......
  • Wpf Prism 导航(参数传递,路由守卫,路由记录)
    十年河东,十年河西,莫欺少年穷学无止境,精益求精1、新建项目wpfApp5,添加Nuget引用,并初始化App.xaml及cs类 app.xaml如下:<Prism:PrismApplicationx:Class="WpfApp5.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="......
  • 键盘?
    键盘?内存条电化点上的电子,与CPU上的门电路一连通:电子一排一排的流向门电路,做三种运算与运算或运算非运算三种运算能让电子的排列产生位移,从而达到运算的目的播放视频的过程中,电子就像上面所说一样,一排一排地流动就行因为这时进行的只是数据的传输,不需要键盘......