Home  >  Article  >  Web Front-end  >  How to use JavaScript to jump to different tabs on the same page

How to use JavaScript to jump to different tabs on the same page

PHPz
PHPzOriginal
2023-04-21 09:12:32543browse

JavaScript is a programming language widely used in front-end development, which contains many functions and techniques that are very useful for WEB applications. In various application scenarios, JavaScript can improve user interaction and user experience. In this article, we’ll explore a common technique, which is how to use JavaScript to jump to different tabs on the same page.

With the development of web applications, front-end technology is also constantly developing, providing better and better user experience. In web applications, tabs are a very important interactive element, allowing users to quickly switch between different functional pages. It is very useful to jump between these pages and maintain the previous state. At this time, it becomes necessary to jump to the specified tab.

We use several different methods to jump between different tabs on the same page.

1. Use URL hash

First of all, we can use the hash (#) in the browser URL to jump between different tabs on the same page. Add a hash frame to the page link as follows: http://www.example.com/#tab1, where tab1 is a selected tab id. At the same time, we also need to detect hash change events in the JavaScript code of the page in order to update the tab status and display content. The code implementation of this method is as follows:

// 获取所有选项卡和内容区域
var tabs = document.querySelectorAll('.tab-item');
var contents = document.querySelectorAll('.content-item');

// 监听 hash 的改变
window.addEventListener('hashchange', function () {
  // 获取当前的 hash
  var hash = window.location.hash;

  // 遍历所有的选项卡,根据当前 hash 进行选中
  for (var i = 0; i < tabs.length; i++) {
    var tab = tabs[i];
    var href = tab.getAttribute('href');

    if (href === hash) {
      tab.classList.add('active');
    } else {
      tab.classList.remove('active');
    }
  }

  // 遍历所有的内容区域,根据选中的选项卡进行显示
  for (var i = 0; i < contents.length; i++) {
    var content = contents[i];
    var id = content.getAttribute('id');

    if ('#' + id === hash) {
      content.classList.add('active');
    } else {
      content.classList.remove('active');
    }
  }
});

2. Use JavaScript programming to implement

The second method is to implement it by writing JavaScript code and add an automatic link to the tab you want to jump to. Define attributes, such as data-tab, and then operate it in JavaScript. The code is implemented as follows:

// 获取所有选项卡和内容区域
var tabs = document.querySelectorAll('.tab-item');
var contents = document.querySelectorAll('.content-item');

// 给选项卡添加 click 事件
for (var i = 0; i < tabs.length; i++) {
  var tab = tabs[i];
  var target = tab.getAttribute('data-tab');

  tab.addEventListener('click', function (e) {
    // 阻止默认跳转事件
    e.preventDefault();

    // 遍历所有的选项卡,根据 data-tab 进行选中
    for (var i = 0; i < tabs.length; i++) {
      var tab = tabs[i];
      var href = tab.getAttribute('data-tab');

      if (href === target) {
        tab.classList.add('active');
      } else {
        tab.classList.remove('active');
      }
    }

    // 遍历所有的内容区域,根据选中的选项卡进行显示
    for (var i = 0; i < contents.length; i++) {
      var content = contents[i];
      var id = content.getAttribute('data-tab');

      if (id === target) {
        content.classList.add('active');
      } else {
        content.classList.remove('active');
      }
    }
  });
}

3. Use jQuery

The third method is to use jQuery, which provides a set of very useful functions to simplify DOM operations and event binding. Using jQuery, we can jump on the click event of the tab. The code is implemented as follows:

// 获取所有选项卡和内容区域
var $tabs = $('.tab-item');
var $contents = $('.content-item');

// 给选项卡添加 click 事件
$tabs.on('click', function (e) {
  // 阻止默认跳转事件
  e.preventDefault();

  // 获取当前选项卡和内容区域
  var $tab = $(this);
  var target = $tab.attr('href');
  var $content = $(target);

  // 切换选项卡和内容区域的 active 状态
  $tab.addClass('active').siblings().removeClass('active');
  $content.addClass('active').siblings().removeClass('active');
});

No matter which method is used, they can help us jump between different tabs on the same page. Of course, the above code only provides an implementation method. For different scenarios and needs, more detailed adjustments and modifications may be required for specific situations. In actual development, we should choose the solution that best suits the current needs, pay attention to the readability and maintainability of the code, and ultimately achieve an efficient, robust, and concise code.

The above is the detailed content of How to use JavaScript to jump to different tabs on the same page. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn