原生Js与jquery的多组处理, 仅展开一个区块的折叠效果

当需要在网站开发中实现多组区块的展开与折叠效果时,可以使用原生Js或者jQuery来实现。下面分别介绍这两种方法的具体实现步骤。

原生Js的实现方法

HTML结构示例

<div class="accordion">
  <div class="accordion-panel">
    <div class="accordion-heading">区块1</div>
    <div class="accordion-content">内容1</div>
  </div>
  <div class="accordion-panel">
    <div class="accordion-heading">区块2</div>
    <div class="accordion-content">内容2</div>
  </div>
  <div class="accordion-panel">
    <div class="accordion-heading">区块3</div>
    <div class="accordion-content">内容3</div>
  </div>
</div>

CSS样式示例

.accordion-panel {
  margin-bottom: 10px;
}
.accordion-heading {
  background-color: #ccc;
  cursor: pointer;
  padding: 10px;
}
.accordion-content {
  display: none;
  padding: 10px;
}

javascript实现步骤

  1. 获取所有的区块元素(class为.accordion-panel
  2. 给每个区块元素的标题元素(class为.accordion-heading)绑定点击事件。
  3. 点击标题时,获取当前区块的内容元素(class为.accordion-content)。
  4. 判断该内容元素的display属性是否为none,如果是则将其改为block,否则改为none

下面是具体实现的代码:

var accordionPanels = document.querySelectorAll('.accordion-panel');
for (var i = 0; i < accordionPanels.length; i++) {
  var accordionHeading = accordionPanels[i].querySelector('.accordion-heading');
  accordionHeading.onclick = function() {
    var accordionContent = this.nextElementSibling;
    if (accordionContent.style.display === 'none') {
      accordionContent.style.display = 'block';
    } else {
      accordionContent.style.display = 'none';
    }
  };
}

jQuery的实现方法

HTML结构示例

<div class="accordion">
  <div class="accordion-panel">
    <div class="accordion-heading">区块1</div>
    <div class="accordion-content">内容1</div>
  </div>
  <div class="accordion-panel">
    <div class="accordion-heading">区块2</div>
    <div class="accordion-content">内容2</div>
  </div>
  <div class="accordion-panel">
    <div class="accordion-heading">区块3</div>
    <div class="accordion-content">内容3</div>
  </div>
</div>

CSS样式示例

.accordion-panel {
  margin-bottom: 10px;
}
.accordion-heading {
  background-color: #ccc;
  cursor: pointer;
  padding: 10px;
}
.accordion-content {
  display: none;
  padding: 10px;
}

jQuery实现步骤

  1. 获取所有的区块元素(class为.accordion-panel
  2. 给每个区块元素的标题元素(class为.accordion-heading)绑定点击事件。
  3. 点击标题时,获取当前区块的内容元素(class为.accordion-content)。
  4. 判断该内容元素的display属性是否为none,如果是则将其改为block,否则改为none

下面是具体实现的代码:

$('.accordion-heading').on('click', function() {
  var $accordionContent = $(this).next('.accordion-content');
  if ($accordionContent.is(':hidden')) {
    $accordionContent.slideDown();
  } else {
    $accordionContent.slideUp();
  }
});

以上就是原生JS与jQuery多组处理仅展开一个区块的折叠效果的实现方法及示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:原生Js与jquery的多组处理, 仅展开一个区块的折叠效果 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 如何使用jQuery在点击文本框时打开数据时间选择器

    要使用jQuery在点击文本框时打开日期时间选择器,可以使用datepicker()方法。下面是一个完整攻略,包括两个示例说明。 步骤1:引入jQuery和jQuery UI库 首先,我们需要引入jQuery和jQuery UI库。我们可以从官方网站下载这些库,或者使用CDN链接。下面是一个示例代码: <!DOCTYPE html> <ht…

    jquery 2023年5月9日
    00
  • jQuery UI的Draggable handle选项

    以下是关于 jQuery UI 的 Draggable handle 选项的详细攻略: jQuery UI Draggable handle 选项 handle 选项用于指定可拖动元素的句柄。可以使用该选项来限制可拖动元素的拖动区域。 语法 $(selector).draggable({ handle: "句柄选择器" }); 参数 句柄…

    jquery 2023年5月11日
    00
  • js/jquery遍历对象和数组的方法分析【forEach,map与each方法】

    js/jquery遍历对象和数组的方法分析【forEach,map与each方法】 对于 JavaScript 和 jQuery,有多种遍历数组和对象元素的方法可供选择。现在我们来分析其中三种方法:forEach,map 和 each。 forEach方法 forEach 方法允许您在 JavaScript 中遍历数组,它循环读取数组的每个元素,并为每个元素…

    jquery 2023年5月27日
    00
  • JQuery实现鼠标滚轮滑动到页面节点

    实现鼠标滚轮滑动到页面节点的功能,可以使用jQuery库中提供的scroll动作和offset()方法来实现。 下面我将从以下几个方面来详细讲解,实现滚轮滑动到页面节点的完整攻略: 了解scroll动作和offset()方法的基本用法 scroll动作用于绑定页面滚动事件,可以使用它来监听页面滚动事件,然后执行相应的操作。而jQuery中的offset()方…

    jquery 2023年5月27日
    00
  • 如何使用JQuery将css属性应用于子元素

    如何使用jQuery将CSS属性应用于子元素 要在jQuery中将CSS属性应用于子元素,我们可以使用选择器和CSS方法来实现。以下是一些步骤和示例,帮助你更好地理解如何使用jQuery将CSS属性应用于子元素。 步骤1:选择子元素 首先,我们需要选择要应用CSS属性的子元素。我们可以通过访问其CSS类或ID对其进行选择。例如,如果我们想要更改CSS类为“c…

    jquery 2023年5月12日
    00
  • jQWidgets jqxProgressBar min属性

    以下是关于 jQWidgets jqxProgressBar 组件中 min 属性的详细攻略。 jQWidgets jqxProgressBar min 属性 jQWidgets jqxProgressBar 组件的 min 属性用设置进度条的最小值。 语法 $(‘#progressbar’).jqxProgressBar({ min: value }); …

    jquery 2023年5月12日
    00
  • jQWidgets jqxDateTimeInput打开事件

    以下是关于“jQWidgets jqxDateTimeInput打开事件”的完整攻略,包含两个示例说明: 事件简介 jqxDateTimeInput 控件的 open 事件在用户打开日期时间选择器时触发。该事件的语法如下: $("#jqxDateTimeInput").on(‘open’, function (event) { // 处理…

    jquery 2023年5月10日
    00
  • jQuery Mobile操作HTML5的常用函数总结

    关于“jQuery Mobile操作HTML5的常用函数总结”的完整攻略,我将从以下几个方面进行详细讲解: 简介 页面结构 事件和选择器 标记和工具栏 表格 示例演示 以下是详细讲解: 1. 简介 jQuery Mobile是一个基于jQuery核心库开发的专门用于移动设备的网页开发框架。它能够快速帮助你开发出拥有一致的跨平台界面的移动网站。 2. 页面结构…

    jquery 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部