You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

为Elementor中切换内容的按钮添加激活状态样式的实现方案

Elementor中切换内容的按钮添加激活状态样式的实现方案

没问题,我来帮你搞定这个激活状态的样式!其实只需要在现有JS基础上加点逻辑,再配合CSS就能实现,而且能精准控制只影响这个section里的按钮,不会干扰页面其他元素。

步骤1:给按钮组加统一标识(避免影响全局按钮)

先给你的切换按钮们加个共同的类,比如content-switch-btn,同时保留你原来的data-showme属性(注意格式是data-showme="ID-NAME-content",用双引号包裹属性值)。比如按钮的HTML结构可以是:

<div class="content-switch-buttons">
  <button class="content-switch-btn" data-showme="professionals-content">专业人士</button>
  <button class="content-switch-btn" data-showme="students-content">学生</button>
  <!-- 另外三个按钮同理,对应各自的content ID -->
</div>

步骤2:修改JavaScript逻辑,添加激活状态切换

在你原有的JS代码里,加上激活类的切换逻辑:点击当前按钮时,先移除所有同组按钮的active类,再给当前点击的按钮加上active类。同时初始化时,把默认显示内容对应的按钮设为激活状态。

修改后的JS代码:

var $ = jQuery

$(document).ready(function() {
  // 初始化:给默认显示内容对应的按钮加上active类
  const defaultContentId = 'professionals-content'; // 对应你CSS里默认显示的内容ID
  $(`.content-switch-btn[data-showme="${defaultContentId}"]`).addClass('active');

  // 点击按钮的核心逻辑
  $('.content-switch-btn').on('click', function() {
    var showme = $(this).attr('data-showme');

    // 切换内容的显示隐藏(保留你原有的逻辑)
    $('.all-content').hide();
    $('#' + showme).show();

    // 新增:切换按钮的激活状态
    $('.content-switch-btn').removeClass('active'); // 移除所有按钮的激活类
    $(this).addClass('active'); // 给当前点击的按钮添加激活类
  })
})

步骤3:写激活状态的CSS样式

现在你可以给激活状态的按钮写专属样式了,比如和hover样式呼应,或者自定义差异化样式:

/* 保留你原有的hover样式 */
.content-switch-btn:hover {
  border-width: 0px 0px 0px 3px;
  /* 你的其他hover样式,比如颜色、间距等 */
}

/* 激活状态的专属样式 */
.content-switch-btn.active {
  border-width: 0px 0px 0px 3px;
  /* 可以加比如背景色、文字色变化,和hover区分开 */
  background-color: #f5f5f5;
  color: #1a73e8;
  font-weight: 600;
}

/* 保留你原有的内容显示控制CSS */
.all-content {
  display: none;
}

#professionals-content {
  display: block;
}

关于data-showme属性的说明

你提到的data-showme|ID-NAME-content其实就是按钮上的自定义属性,正确的HTML写法是data-showme="ID-NAME-content",属性值对应你要显示的内容区块的ID,这样JS才能精准匹配到对应的内容。

这样修改后,点击哪个按钮,哪个按钮就会保持激活样式,直到你点击另一个按钮,激活状态会自动转移过去,而且因为我们用了content-switch-btn这个专属类,只会影响这个按钮组,不会干扰页面上的其他按钮~

备注:内容来源于stack exchange,提问作者Dismantle

火山引擎 最新活动