首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Javascript Accordion更改img取决于它是打开还是关闭

JavaScript Accordion是一种常用的前端开发技术,用于创建可折叠的内容面板。当用户点击面板标题时,面板可以展开或折叠,以显示或隐藏相关内容。根据面板的打开或关闭状态,可以通过更改img元素的属性来改变图片。

Accordion的实现通常使用HTML、CSS和JavaScript。HTML用于创建面板的结构,CSS用于定义面板的样式,而JavaScript用于处理面板的交互行为。

在实现Accordion时,可以使用JavaScript来监听面板标题的点击事件。当面板打开时,可以通过修改img元素的src属性来更改图片,以显示打开状态的图标。同样,当面板关闭时,可以通过修改img元素的src属性来更改图片,以显示关闭状态的图标。

以下是一个示例代码,展示了如何使用JavaScript Accordion来更改img元素的图片:

HTML部分:

代码语言:txt
复制
<div class="accordion">
  <div class="panel">
    <div class="panel-header" onclick="togglePanel(1)">
      <h2>面板标题1</h2>
      <img id="img1" src="closed.png" alt="关闭图标">
    </div>
    <div id="panel1" class="panel-content">
      <!-- 面板内容1 -->
    </div>
  </div>
  <div class="panel">
    <div class="panel-header" onclick="togglePanel(2)">
      <h2>面板标题2</h2>
      <img id="img2" src="closed.png" alt="关闭图标">
    </div>
    <div id="panel2" class="panel-content">
      <!-- 面板内容2 -->
    </div>
  </div>
</div>

CSS部分:

代码语言:txt
复制
.panel-header {
  cursor: pointer;
}

.panel-content {
  display: none;
}

.panel-content.active {
  display: block;
}

JavaScript部分:

代码语言:txt
复制
function togglePanel(panelNumber) {
  var panel = document.getElementById("panel" + panelNumber);
  var img = document.getElementById("img" + panelNumber);

  if (panel.style.display === "none") {
    panel.style.display = "block";
    img.src = "opened.png";
  } else {
    panel.style.display = "none";
    img.src = "closed.png";
  }
}

在上述代码中,每个面板都有一个唯一的ID(例如panel1、panel2),以及一个对应的img元素(例如img1、img2)。当面板标题被点击时,togglePanel函数会根据面板的当前状态来切换面板的显示与隐藏,并相应地更改img元素的src属性。

这是一个基本的Accordion实现示例,可以根据实际需求进行样式和功能的定制。腾讯云提供了丰富的云计算产品和服务,可以根据具体需求选择适合的产品进行开发和部署。具体推荐的腾讯云产品和产品介绍链接地址可以根据实际情况进行选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Jump Start Bootstrap 第4章

在这里,请求是打开关闭下拉菜单。 让我展示一个如何使用这些事件的例子。我已经写了下面的JQuery代码片段去监听所有的下拉插件状态,并打印每个事件触发时的状态。 <!...关闭按钮的解除动作靠data-dismiss属性来触发,由Bootstrap使用JavaScript实现。...它是一个插入多个垂直堆叠标签的插件,但同一时间只能打开一个标签。 在Bootstrap中,通过将多个面板组件组合在一个容器中来创建Collapse。我们在最近一章看到了如何创建一个面板。...你也可以给Collapse()方法传递参数 collapse(‘toggle’): 切换选项卡状态 collapse(‘show’): 打开一个选项卡 collapse(‘hide’): 关闭一个选项卡...Bootstrap的Tooltip用CSS制作,通过JavaScript触发。时至今日,相对于其他可用的悬浮提示插件,它是及其轻量的。它也可以轻松的自定义相对父容器的位置(上下左右)。

28.3K40

腾讯面试官:如何从0到1实现一个高性能Collapse折叠组件,直到现在我还实现不出来

现代JavaScript高级小册 深入浅出Dart 现代TypeScript高级小册 大家好,我是linwu,之前面腾讯某个部门的时候,面试官曾经给了我一道手写题,题目大概就是从0到1实现一个Collapse...折叠组件,然后我根据提供接口属性,我大概实现出来类似下面组件的形态,然后面试官问动画除了height形式,还有其他它方式么,因为height的变化会触发重排,另外折叠面板panel如果是大量数据,打开的时候会卡顿...这个组件需要有一个状态来追踪它是否被展开 import React, { useState } from 'react'; const Collapse = ({ children }) => {...isOpen); if (accordion) { setCurrentActiveKey(isOpen ?...destroyOnClose:如果设置为true,我们将在面板关闭时销毁它的内容。 disabled:如果设置为true,我们将禁用面板,使其不能被打开关闭

34720

带你走近AngularJS - 体验指令实例

markers 属性被定义为引用因为它是数组形式,把它序列化为字符串比较耗时。link 方法可以实现以下功能: 1. 初始化地图 2. 在用户视图变量更改时更新地图 3....这两个方法检测地图是否重新创建还是仅仅是简单的更新。...这是创建JavaScript指令的常见模式。 创建地图之后,方法会在更新标记的同时添加检测事件,以便监视地图中心位置的变化。该事件会监测当前的地图中心是否和Scope中的相同。...如果不同,即会更新scope,调用$apply 方法通知AngularJS属性已经更改。这种绑定方式为双向绑定。...AngularJS directives and the computer science of JavaScript 比较实用的AngularJS指令说明文章。 4.

2.4K50

Web自动化神器,批量下载小姐姐美图,可直接导入使用

大家好,我是小碗汤,今天为大家分享一款前端自动化操作神器: Automa Automa介绍 它是一款 Chrome 插件,即使你不会写代码,也能按照自己的需求,完成一系列自动化操作。...从自动填写表单、执行重复性任务、截取屏幕截图到抓取网站数据,您想使用此扩展程序做什么取决于您。...NewTab打开img域名页,防止跨域,这里打开地址为: https://img.keaitupian.cn/newupload/11/1637224362487977.jpg LoopData的loopID...LoopBreakpoint结束loopID为two的loopData块;第一个CloseTab关闭img图片域名页面。 第二个CloseTab循环关闭每一页。...当然如果你是编程爱好者,建议还是首选采用编码脚本的形式来完成这类自动化操作任务,但不得不说,Automa工具中传达的一些背后设计思想,在一些实际工作场景中,还是值得参考借鉴的,怎么玩取决于您。

1.3K20

jQuery

FFF; padding-top:5px; cursor:pointer;} #accordion ul li img{display:block; float:right;} .bar01{left:...合并写法可以用 // event.stopPropagation(); // event.preventDefault(); // 合并写法: return false; 例子:页面弹框(点击弹框外弹框关闭...无论是开发难度上,还是开发方式上,现在的网页制作都更接近传统的网站后台开发,所以现在不再叫网页制作,而是叫Web前端开发。...无论是开发难度上,还是开发方式上,现在的网页制作都更接近传统的网站后台开发,所以现在不再叫网页制作,而是叫Web前端开发。...因此,它是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言,学好HTML是成为Web开发人员的基本条件。 学好CSS是网页外观的重要一点,CSS可以帮助把网页外观做得更加美观。

3.9K20

Bootstrap学习文档(四)

话又说回来,在某些情况下可能需要将此功能关闭。因此,我们还提供了关闭 data 属性 API 的方法,即解除以 data-api 为命名空间并绑定在文档上的事件。... 话又说回来,在某些情况下可能需要将此功能关闭。因此,我们还提供了关闭 data 属性 API 的方法,即解除以 data-api 为命名空间并绑定在文档上的事件。... 话又说回来,在某些情况下可能需要将此功能关闭。因此,我们还提供了关闭 data 属性 API 的方法,即解除以 data-api 为命名空间并绑定在文档上的事件。...--1、把所有的面板都放到一个父级里,并且给父级添加一个panel-group,还有一个id--> ...;} #carousel-img .carousel-inner .item img{width: 100%;} 2.轮播图的图片大小一致,但想改变轮播图的高度,改变父级 div 是无法改变图片的高度或者宽度

3.7K20

手势魅力-设置一个触摸菜单

这个手势的方向:你想只能水平移动,或者还是垂直移动?也许是两个? 拖动完成后你想要发生什么?它会回到开始还是结束,取决于它在哪里结束?它是否考虑到速度? 详情:我们是否正在用这个手势记住速度?...这绝对不是你想要用你的手机触摸手势发生的事情,所以考虑一下:当你打开/关闭菜单时,你是否有兴趣阅读滚动隐藏的内容?如果你的拖拽方向是水平的,你就不能滚动 ? 我们需要一些边界在这里!...当菜单打开时,它可以关闭或保持打开状态 - 与动画一起 - 返回之前的位置 如果它关闭了,那么它可以打开或者保持关闭状态,也可以在动画返回之前 if ((translateX < (-menuWidth...那么这个菜单可以根据距离打开关闭。...(设置限制),也就是侧边栏菜单滑动的位置 重叠计算(透明度变化,也就是用小数来计算,百分比值) 动画结束(菜单栏打开关闭状态,菜单栏的位置) 以下是本文陌生词汇(仅供参考) 1.

1.8K40

JavaScript 如何读取本地文件

在这篇文章中,我们将通过一些例子来看看它是如何工作的。 文件操作的流程 获取文件 由于浏览器中的 JS 无法从用户的设备访问本地文件,我们需要为用户提供一种方法来选择一个或多个文件供我们使用。...字节大小 type: 'text/plain', // 基于文件扩展名的假定文件类型,这有可能是不正确的 lastModified: 1234567890, // 根据用户系统的最新更改的时间戳...该属性仅在读取操作完成后才有效,数据的格式取决于使用哪个方法来启动读取操作。...如果用户取消或以其他方式关闭文件选择对话框而不选择文件,我们就没有什么要读取和退出函数。 然后我们继续创建一个FileReader。...(this.files[0]); }); 总结 1)由于安全和隐私的原因,JavaScript 不能直接访问本地文件。

9.3K30
领券