TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码

文本溢出展开与收起功能实现

2025-06-23
/
0 评论
/
17 阅读
/
正在检测是否收录...
06/23

引言

准备工作

HTML结构

首先,我们需要定义一个包含文本的HTML元素,例如使用<div>标签。同时,为了提供展开与收起的交互按钮,我们将添加两个按钮元素<button>

```html

...

...



```

CSS样式

接下来,我们通过CSS设置文本容器的样式,包括高度限制以模拟溢出效果,以及按钮的基本样式。

```css
.text-container {
height: 200px; /* 设定高度以模拟溢出 / overflow: hidden; / 隐藏超出部分 / border: 1px solid #ccc; / 容器边框 / padding: 10px; / 内边距 */
}

button {
cursor: pointer; /* 鼠标悬停时显示指针 / padding: 10px 20px; / 按钮内边距 / font-size: 16px; / 字体大小 */
}
```

JavaScript逻辑

现在,我们使用JavaScript来添加交互逻辑,使文本能够在点击“展开更多”时显示更多内容,在点击“收起”时只显示初始内容。

```javascript
const textContainer = document.getElementById('text-container');
const showMoreButton = document.getElementById('show-more');
const showLessButton = document.getElementById('show-less');
const maxHeight = textContainer.scrollHeight; // 获取最大高度以恢复原始状态
let currentHeight = 200; // 初始高度为200px,可根据需要调整
let isExpanded = false; // 标记是否展开状态

function toggleTextVisibility() {
if (isExpanded) { // 如果当前是展开状态
textContainer.style.height = ${currentHeight}px; // 恢复到原始高度并隐藏超出部分
showMoreButton.style.display = 'block'; // 显示“展开更多”按钮
showLessButton.style.display = 'none'; // 隐藏“收起”按钮
currentHeight = textContainer.offsetHeight; // 更新当前高度为实际高度(包括滚动条)以便收起时使用正确的位置计算
isExpanded = false; // 更新状态为非展开状态(收起)
} else { // 如果当前是收起状态
textContainer.style.height = ${maxHeight}px; // 展开至最大高度以显示全部内容(含溢出部分)
showMoreButton.style.display = 'none'; // 隐藏“展开更多”按钮(不再需要)
showLessButton.style.display = 'block'; // 显示“收起”按钮(准备收起)
isExpanded = true; // 更新状态为展开状态(未完全展开)
}
}
为了响应按钮点击事件,我们还需要在JavaScript中添加事件监听器:javascript
showMoreButton.addEventListener('click', toggleTextVisibility); // “展开更多”按钮点击事件处理函数调用函数以切换显示状态。同样地,对于“收起”按钮,当它被点击时也应调用该函数以恢复初始状态。然而,逻辑略有不同,只需调整高度和显示状态即可。在实际情况中,你可能需要结合实际业务逻辑来决定何时触发收起操作(如定时器或其他交互触发)。这里主要展示如何通过代码实现基本的展开与收起功能。

朗读
赞(0)
版权属于:

至尊技术网

本文链接:

https://www.zzwws.cn/archives/30595/(转载时请注明本文出处及文章链接)

评论 (0)