原文发布时间为:2009-11-15 —— 来源于本人的百度文章 [由搬家工具导入]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<div id="divS" style="border:1px solid #f0f0f0;background-color:#ccc;padding:4px;margin:10px">
<p>测试文本</p>
<p>测试了</p>
<p>测试侧试试了</p>
<p>测试文本</p>
<p>测试了</p>
<p>测试侧试试了</p>
<p>测试</p>
<p>测试文本</p>
<p>测试了</p>
<p>测试侧试试了</p>
<p>测试文本</p>
<p>测试了</p>
<p>测试侧试试了</p>
</div>
<p>
<script type="text/javascript"><!--
doShrink(document.getElementById('divS'),60);
function doShrink(oshrink,maxHeight){  
    if(oshrink){  
        var oH = (oshrink.clientHeight||oshrink.offsetHeight);  
        if(oH>maxHeight){  
            var linka = document.createElement("a");  
            var div = document.createElement("div");     
            div.innerHTML = "……<br />"
            text = document.createTextNode("[点击查看更多内容]");
            linka.href = "javascript:void(0)";  
            linka.onclick = function(e) { shrinkShow(this); }  
            linka.appendChild(text);  
            div.appendChild(linka);
            var onext = oshrink.nextSibling;  
            if(onext)  
                oshrink.parentNode.insertBefore(div,onext);  
            else
                oshrink.parentNode.appendChild(div);  
            //过滤较长的内容  
            oshrink.srcHeight = oH;  
            oshrink.style.cssText ="overflow-y: hidden; max-height: "+maxHeight+"px; *_height: "+maxHeight+"px; ";  
        }  
    }  
}

function remove(o){
if(o && o.parentNode)o.parentNode.removeChild(o);
}

/* 第一种,具有展开效果 */
var shrinkInterval = false;  
function shrinkShow(obj) {  
    var omore = obj.parentNode;  
    var ohide = omore.previousSibling;  
    shrinkInterval = window.setInterval(function(){shrinkStep(ohide);},20);
remove(omore); //去除更多链接
}

function shrinkStep(ohide){  
    var targetHeight = ohide.srcHeight;  
    var nowHeight = (ohide.clientHeight||ohide.offsetHeight);;  
    if(nowHeight < targetHeight){  
        ohide.style.height = nowHeight+20 + 'px';  
        ohide.style.maxHeight = nowHeight+20 + 'px';  
    }else{  
        if(shrinkInterval){  
            window.clearInterval(shrinkInterval);  
            shrinkInterval = false;  
        }  
    }  
}

/* 第二种,没有展开效果 */

/*
function shrinkShow(obj) {  
    var omore = obj.parentNode;  
    var ohide = omore.previousSibling;  
    ohide.style.height = ohide.srcHeight + 'px';  
    ohide.style.maxHeight = ohide.srcHeight + 'px';
remove(omore); //去除更多链接
}
*/

// --></script>
</p>
</body>
</html>

转载于:https://www.cnblogs.com/handboy/p/7158381.html

JavaScript文本收缩展开 showdetail相关推荐

  1. jQuery 文本段落展开和折叠效果

    找了几个感觉这个效果是最好的,最简单的. jQuery 文本段落展开和折叠效果 <!DOCTYPE html> <head> <meta http-equiv=" ...

  2. ASP.NET 动态输出Javascript 文本格式换行问题 [ASP.NET | C# | Response]

    一.普通输出问题分析.测试 1.     我们先来看一段代码:     /// <summary>     /// 连接接数据库     /// </summary>      ...

  3. JavaScript文本特效实例小结【3个示例】

    本文实例讲述了JavaScript文本特效.分享给大家供大家参考,具体如下: 1.标题跑马灯 常常能够在一些新闻网站,或者其他地方,看到文字在一个特定的区域内,来回滚动.一旦超出边界就消失了,那么这些 ...

  4. 实现对手机联系人列表进行读写操作,并用RecyclerView收缩展开方式展现

    实现对手机联系人列表进行读写操作,并用RecyclerView收缩展开方式展现 在之前做的类微信界面上加了显示手机联系人,姓名,电话,邮箱三项信息的功能,同时可以添加联系人同步到手机联系人记录中,添加 ...

  5. uni-app,文本实现展开、收起全文

    效果: 思路: 1.根据文本显示的布局中,每行大致能显示的文字个数.(实例是大致每行26个文字) 2.首先加载页面时,根据文字总长度判断是否超出自定义行数,来处理相应的数据,多余自定义行数,截取对应的 ...

  6. JavaScript文本晃动js特效代码

    下载地址 JavaScript文本晃动特效代码 dd:

  7. javascript 文本框限制输入1到10位数字正则表达式

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!D ...

  8. JavaScript 文本编码解码详解笔记

    JavaScript 文本的编码解码 文本编码 文本编码方法分为批量编码和流编码. 1.批量编码 所谓批量编码,指的是JavaScript引擎会同步编码整个字符串.对于非常长的字符串,可能会花较长时间 ...

  9. element-ui 表格(table)合并表头下面合并列且可以收缩展开

    百度了一大堆,发现了首行不能合并,想到了用dom做,找到了下面这个链接 要点记录: 1.表头合并 -- 给table添加属性:header-cell-style="headerStyle&q ...

  10. android 卡片收缩展开,jQuery和CSS3炫酷堆叠卡片展开和收缩特效

    插件描述:这是一款效果超酷的jQuery和CSS3堆叠卡片展开和收缩特效.该图片特效开始的时候卡片被堆叠在一起,当用户点击最上面的卡片的时候,堆叠图片以各种动画方式展开.展开后再点击任意卡片,它们又会 ...

最新文章

  1. golang使用gdb
  2. 页面间参数值传递含“%”的处理方法
  3. 为了OFFER,继续深入学习树和二叉树
  4. rust和gta5哪个吃配置_选指数基金,像“今晚吃什么”一样容易
  5. android studio 2.0 导入工程
  6. 2 环境设置_用友U8V10.1安装(Windows 7环境)
  7. 电子邮件.NET控件MailBee.NET Objects使用指南合集(上)
  8. ZigBee协议栈工作原理
  9. Windows CE 5.0 五笔输入法
  10. c语言flag,flag是什么意思
  11. iphone捷径大全_iPhone捷径,助您一臂之力
  12. Minecraft mod制作简易教程(一)——配置工作环境
  13. android刷脸支付宝,安卓手机可以支付宝刷脸吗 刷脸登陆安卓机能用吗
  14. 使用 Vue 和 epub.js 制作电子书阅读器
  15. 31: Nginx代理服务器 、 Nginx优化 、 总结和答疑
  16. 小程序获取链接中的参数
  17. “新一代人工智能前沿与挑战”国际研讨会专家观点分享
  18. 我的cocos2d-x学习之路
  19. TypeScript 中slice(-1)是什么意思?
  20. 什么是AOP,AOP能干什么,有什么优点

热门文章

  1. 中国移动云能力中心 高薪诚聘各路运维技术专家
  2. 怎么有效提高执行力?
  3. Java中单例设计模式总结
  4. Qt::FocusPolicy的使用
  5. 框架-vue-cli
  6. gitserver提交代码的总结
  7. centos 打包RPM包 ntopng
  8. JavaScript技巧总结和本地存储(一)
  9. SQLite.dll混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。...
  10. 使用drawBitmapMesh扭曲图像