·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

Discuz!社区帖子内容页实现仿CSDN展开阅读全文效果

388 1
发表于 2020-7-13 23:29:30 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
完整代码如下
JS代码

  1. function pd(ele,bili){//ele是展开阅读全文的点击按钮,bili是高度比例,一般为1
  2.     var n = $("div.article_content"),
  3.     e = n.children(),
  4.     l = e.length, //获取内容区域子元素的数量
  5.     h=0,c=0; //h是显示区域的高度,c是计数器,显示多少个元素
  6.     if (l > 20){
  7.         e.each(function(){
  8.             c += 1;
  9.             if (c<=20){h += $(this).height()}
  10.         })
  11.         n.css({//设置显示区域的高度
  12.             height: h * bili + "px",
  13.             overflow: "hidden"
  14.         })
  15.     }else{ele.parent().remove()}//少于20个元素就不用隐藏
  16. }

  17. (function(){
  18. var i = $(".btn-readmore"), //展开阅读全文的点击按钮
  19. n = $("div.article_content");
  20. i.click(function(){
  21.   $(this).parent().remove();//取消隐藏
  22.   n.css({height:'auto',});//高度自适应
  23.   n.after('{{lisnext|safe}}')//插入剩余内容,{{lisnext|safe}}是flask的调用内容,其他框架的自行修改。
  24. })
  25. pd(i, 1)
  26. })()
复制代码


HTML代码
  1. <div class="article_content">{{lispre|safe}}</div>
  2. <div class="hide-article-box hide-article-pos text-center">
  3.   <a class="btn-readmore">
  4.     展开阅读全文
  5.     <i class="layui-icon layui-icon-down" style="font-size: 18px; color: #ca0c16;vertical-align:middle;"></i>  
  6.   </a>
  7. </div>
复制代码


我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论1

Discuz智能体Lv.8 发表于 2025-3-19 09:11:35 | 查看全部
要实现Discuz!社区帖子内容页仿CSDN展开阅读全文的效果,你可以按照以下步骤进行操作。我们将使用你提供的JS代码,并对其进行完善和优化。

### 1. HTML结构
首先,确保你的帖子内容页的HTML结构如下:

  1. <div class="article_content">
  2.     <!-- 这里是帖子内容 -->
  3. </div>
  4. <a href="javascript:;" class="read-more">展开阅读全文</a>
复制代码


### 2. CSS样式
为了控制展开和收起的效果,我们需要添加一些CSS样式:

  1. .article_content {
  2.     overflow: hidden;
  3.     max-height: 200px; /* 初始显示的高度 */
  4.     transition: max-height 0.5s ease;
  5. }

  6. .article_content.expanded {
  7.     max-height: none; /* 展开后的高度 */
  8. }

  9. .read-more {
  10.     display: block;
  11.     text-align: center;
  12.     margin-top: 10px;
  13.     color: #007bff;
  14.     cursor: pointer;
  15. }
复制代码


### 3. JavaScript代码
接下来,完善你提供的JS代码,并添加事件监听器来控制展开和收起的效果:

  1. function pd(ele, bili) {
  2.     var n = $("div.article_content"),
  3.         e = n.children(),
  4.         l = e.length, // 获取内容区域子元素的数量
  5.         h = 0, c = 0; // h是显示区域的高度,c是计数器,显示多少个元素

  6.     if (l > 20) {
  7.         e.each(function() {
  8.             c += 1;
  9.             if (c <= 20) {
  10.                 h += $(this).outerHeight(true);
  11.             }
  12.         });

  13.         n.css('max-height', h + 'px');

  14.         $(ele).on('click', function() {
  15.             if (n.hasClass('expanded')) {
  16.                 n.removeClass('expanded');
  17.                 $(this).text('展开阅读全文');
  18.             } else {
  19.                 n.addClass('expanded');
  20.                 $(this).text('收起');
  21.             }
  22.         });
  23.     } else {
  24.         $(ele).hide(); // 如果内容少于20个元素,隐藏“展开阅读全文”按钮
  25.     }
  26. }

  27. // 调用函数
  28. pd('.read-more', 1);
复制代码


### 4. 解释代码
- **HTML结构**:`article_content`是帖子内容的容器,`read-more`是展开/收起的按钮。
- **CSS样式**:通过`max-height`和`transition`属性来控制内容的展开和收起效果。
- **JavaScript代码**:
  - `pd`函数用于计算内容的高度,并根据内容数量决定是否显示“展开阅读全文”按钮。
  - 如果内容超过20个元素,则计算前20个元素的高度,并设置`max-height`。
  - 点击按钮时,切换`expanded`类来控制内容的展开和收起。

### 5. 使用说明
将上述代码分别放入你的Discuz!模板文件中:
- HTML代码放入帖子内容页的模板文件(如`viewthread.htm`)。
- CSS代码放入样式文件(如`common.css`)。
- JavaScript代码放入脚本文件(如`common.js`),并在页面加载时调用`pd`函数。

### 6. 注意事项
- 确保jQuery库已加载,因为代码中使用了jQuery。
- 如果帖子内容较少(少于20个元素),按钮将自动隐藏。

通过以上步骤,你可以在Discuz!社区帖子内容页实现仿CSDN的展开阅读全文效果。如果有任何问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.132.213.245,GMT+8, 2025-4-23 01:06 , Processed in 0.240940 second(s), 73 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表