
本教程详细讲解如何在Divi主题中,通过JavaScript代码实现手风琴(Accordion)模块默认展开其最后一个项目。文章将提供清晰的代码示例,并指导如何将其集成到Divi网站,确保手风琴在页面加载时,仅最后一个项目处于打开状态,提升用户体验和内容展示的灵活性。
Divi主题的手风琴模块是一个非常实用的内容展示工具,但其默认行为通常是所有项目都处于关闭状态,或者第一个项目默认展开。在某些设计场景下,我们可能希望页面加载时,手风琴的最后一个项目能够默认展开,以突出特定信息或引导用户关注结尾内容。本教程将指导您如何通过自定义JavaScript代码实现这一功能。
在深入代码之前,了解Divi手风琴模块的HTML结构和相关CSS类是至关重要的。一个典型的Divi手风琴模块通常包含以下关键元素:
我们的目标就是通过JavaScript,在页面加载完成后,精确控制这些类和样式,从而实现最后一个项目的默认展开。
由于Divi手风琴的默认行为是由其内置的JavaScript控制的,单纯的CSS :last-child 规则无法直接实现“默认展开”的效果,因为Divi的JS会在页面加载后重新应用其逻辑。因此,我们需要使用JavaScript来干预这一过程。
核心思路如下:
为了实现上述思路,我们将编写一段jQuery代码。
首先,在Divi Builder中编辑您希望实现此功能的手风琴模块:
这将允许我们的JavaScript代码精确地定位到这个特定的手风琴模块。
将以下JavaScript代码添加到您的网站。
jQuery(document).ready(function($) {
// 目标手风琴模块的自定义CSS类。
// 请确保与您在Divi Builder中设置的类名一致。
var $targetAccordion = $('.my-last-open-accordion');
// 检查目标手风琴模块是否存在于页面上
if ($targetAccordion.length) {
// 获取该模块内的所有手风琴项
var $toggles = $targetAccordion.find('.et_pb_toggle');
// 确保手风琴项存在
if ($toggles.length > 0) {
// 1. 遍历所有手风琴项,确保它们都处于关闭状态
$toggles.each(function() {
var $toggle = $(this);
// 如果当前项是打开的,则将其关闭
if ($toggle.hasClass('et_pb_toggle_open')) {
$toggle.removeClass('et_pb_toggle_open').addClass('et_pb_toggle_close');
// 直接设置内容区域的display属性为none
$toggle.find('.et_pb_toggle_content').css('display', 'none');
}
});
// 2. 找到最后一个手风琴项并将其打开
var $lastToggle = $toggles.last();
// 如果最后一个项是关闭的,则将其打开
if ($lastToggle.hasClass('et_pb_toggle_close')) {
$lastToggle.removeClass('et_pb_toggle_close').addClass('et_pb_toggle_open');
// 直接设置内容区域的display属性为block
$lastToggle.find('.et_pb_toggle_content').css('display', 'block');
}
}
}
});您可以选择以下任意一种方式将上述JavaScript代码添加到您的Divi网站:
Divi主题选项 -youjiankuohaophpcn 集成:
使用Divi代码模块 (仅适用于特定页面):
子主题的 functions.php (推荐):
<?php
function custom_divi_accordion_last_open_script() {
// 确保只在前端页面加载此脚本
if ( ! is_admin() ) {
wp_add_inline_script( 'divi-custom-script', '
jQuery(document).ready(function($) {
var $targetAccordion = $(".my-last-open-accordion");
if ($targetAccordion.length) {
var $toggles = $targetAccordion.find(".et_pb_toggle");
if ($toggles.length > 0) {
$toggles.each(function() {
var $toggle = $(this);
if ($toggle.hasClass("et_pb_toggle_open")) {
$toggle.removeClass("et_pb_toggle_open").addClass("et_pb_toggle_close");
$toggle.find(".et_pb_toggle_content").css("display", "none");
}
});
var $lastToggle = $toggles.last();
if ($lastToggle.hasClass("et_pb_toggle_close")) {
$lastToggle.removeClass("et_pb_toggle_close").addClass("et_pb_toggle_open");
$lastToggle.find(".et_pb_toggle_content").css("display", "block");
}
}
}
});
', 'after' );
}
}
add_action( 'wp_enqueue_scripts', 'custom_divi_accordion_last_open_script' );通过上述JavaScript代码和集成方法,您可以轻松地实现Divi手风琴模块默认展开最后一个项目的功能。这不仅提升了网站内容的展示灵活性,也为用户提供了更加定制化的浏览体验。请务必遵循教程中的步骤,并根据您的具体需求进行调整和测试。
以上就是Divi手风琴模块:实现默认展开最后一个项目的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号