蓝桥杯Web练习题:【功能实现】折叠手风琴

【功能实现】折叠手风琴

背景介绍
本次挑战需要实现图片折叠的效果,请使用 jQuery 语法完成代码。

步骤准备
在开始答题前,你需要在线上环境终端中键入以下命令,下载并解压所提供的文件。

wget https://labfile.oss.aliyuncs.com/courses/7835/exam03-imi.zip && unzip exam03-imi.zip && mv exam03-imi/* ./ && rm -rf exam03-imi*

下载完成之后的目录结构如下:

├── css
│ └── style.css
├── images
│ ├── pic1.jpeg
│ ├── pic2.jpeg
│ ├── pic3.jpeg
│ ├── pic4.jpeg
│ └── pic5.jpeg
├── js
│ ├── index.js
│ └── jquery-3.6.0.min.js
└── index.html
copy
其中:

css/style.css 是页面样式文件。
images 是项目所用到的图片文件夹。
js 是放置 js 代码的文件夹。
index.html 是页面布局。
下载源码。
选中 index.html 右键启动 Web Server 服务(Open with Live Server),让项目运行起来。
打开环境右侧的【Web 服务】,就可以在浏览器中看到当前页面,点击图片,被折叠的图片不会展开。
图片描述
Alt
考试要求
请完善 index.js 文件,让页面具有如下所示的效果:

图片描述

要求规定
请严格按照考试步骤操作,切勿修改考试默认提供项目中的文件名称、文件夹路径等。
满足题目需求后,保持 Web 服务处于可以正常访问状态,点击「提交检测」系统会自动判分。
总通过次数: 714 | 总提交次数: 757 | 通过率: 94.3%

难度: 简单 标签: Web 前端

题解

  function init() {
    // TODO 待补充代码  
    // 
    var btns = document.querySelectorAll(".option")

    for(let i = 0; i<btns.length; i++) {
      // 循环添加点击事件
      btns[i].onclick = function () {
        // 点击事件被触发 通过 .classList 为所有元素移除 active css类
        for (let j = 0; j<btns.length; j++) {
          btns[j].classList.remove('active')
        }
        // 点击事件被触发 通过 .classList 为点击元素添加 active css类
        btns[i].classList.add('active')
      }
    }
 
  }
  init();
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的手风琴折叠效果的HTML、CSS和JavaScript代码示例: HTML代码: ``` <div class="accordion"> <div class="accordion-item"> <div class="accordion-header">Section 1</div> <div class="accordion-content">Content for section 1 goes here.</div> </div> <div class="accordion-item"> <div class="accordion-header">Section 2</div> <div class="accordion-content">Content for section 2 goes here.</div> </div> <div class="accordion-item"> <div class="accordion-header">Section 3</div> <div class="accordion-content">Content for section 3 goes here.</div> </div> </div> ``` CSS代码: ``` .accordion { display: flex; flex-direction: column; } .accordion-item { border: 1px solid #ccc; margin-bottom: 10px; } .accordion-header { background-color: #eee; padding: 10px; cursor: pointer; } .accordion-header:hover { background-color: #ddd; } .accordion-content { padding: 10px; display: none; } ``` JavaScript代码: ``` const accordionHeaders = document.querySelectorAll('.accordion-header'); accordionHeaders.forEach(header => { header.addEventListener('click', () => { const accordionItem = header.parentElement; const accordionContent = accordionItem.querySelector('.accordion-content'); accordionContent.classList.toggle('active'); if (accordionContent.classList.contains('active')) { accordionContent.style.maxHeight = accordionContent.scrollHeight + 'px'; } else { accordionContent.style.maxHeight = null; } }); }); ``` 这段代码使用了Flexbox布局和JavaScript事件监听器来实现手风琴折叠效果。当用户点击折叠标题时,对应的内容部分将展开折叠。其中,CSS代码设置了默认的折叠样式,JavaScript代码则根据内容的高度来动态计算展开的高度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值