通过javascript实现段落的收缩与展开


Posted in Javascript onJune 26, 2019

主要是使用-webkit-line-clamp这个属性进行限制显示行数,通过计算文字在标签内的显示高度来计算当前文字行数,再与需要限制的行数进行对比,来确定是否显示

   代码如下:

<!--Created by lmj on 2017/8/10.-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
<title>段落的收起与展开</title>
<script src="js/jquery.js"></script>
<style type="text/css">
.info-shrink-text {
display: -webkit-box;
overflow: hidden;
text-overflow: ellipsis;
-webkit-box-orient: vertical;
}
#info-manager-content {
text-indent: 2em;
font-size: 12px;
color: #404040;
font-family: 微软雅黑;
}
.more-text {
display: -webkit-box;
width: 100%;
-webkit-box-sizing: border-box;
-webkit-box-pack: end;
padding-right: 10px;
color: #00a5e0;
font-size: 14px;
}
</style>
</head>
<body>
<div class="ui-tab">
<P id="info-manager-content" class="info-shrink-text">
测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.
测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.
测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.
测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.
测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.
测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.
测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.测试段落的展开与收起.
测试段落的展开与收起.测试段落</P>
<div class="more-text">查看更多</div>
</div>
<script type="text/javascript">
var isHide = true;
var textContainer;
function initView() {
textContainer = $("#info-manager-content");
var single=document.createElement("div");
// 设置文字样式
single.style.cssText = "padding:0;visibility:hidden;font-familly:微软雅黑;font-size:12px";
single.innerHTML = "单";
document.body.appendChild(single);
//获取该样式下的单个文字的高度
var singleHeight = single.offsetHeight;
document.body.removeChild(single);
//获取整个段落的高度
var paragraphHeight = textContainer.innerHeight();
//设置你要限制的高度
var limitHeight = 50;
//当前文本行数
var currentLine = (paragraphHeight/singleHeight).toFixed(0);
//转化为行数
var lineCount = (limitHeight / singleHeight).toFixed(0);
// alert(singleHeight+"----"+paragraphHeight+"---"+lineCount+"---"+currentLine);
// 修改段落限制行数
textContainer.attr("style", "-webkit-line-clamp:" + lineCount);
// 设置按钮的显示或隐藏
if (currentLine >= lineCount) {
$(".more-text").show();
isHide = true;
} else {
$(".more-text").hide();
}
}
initView();
window.onresize = function () {
initView();
};
//添加点击事件
$(".more-text").on("click", function () {
if (isHide) {
textContainer.removeClass("info-shrink-text");
$(this).text("收起");
isHide = false;
} else {
textContainer.addClass("info-shrink-text");
$(this).text("查看更多");
isHide = true;
}
});
</script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js实现图片漂浮效果的方法
Mar 02 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
May 14 Javascript
各式各样的导航条效果css3结合jquery代码实现
Sep 17 Javascript
微信小程序使用第三方库Underscore.js步骤详解
Sep 27 Javascript
javascript html5轻松实现拖动功能
Mar 01 Javascript
从对象列表中获取一个对象的方法,依据关键字和值
Sep 20 Javascript
js+html获取系统当前时间
Nov 10 Javascript
在Vue中使用highCharts绘制3d饼图的方法
Feb 08 Javascript
JS Ajax请求会话过期处理问题解决方法分析
Nov 16 Javascript
vue等两个接口都返回结果再执行下一步的实例
Sep 08 Javascript
vue 防止页面加载时看到花括号的解决操作
Nov 09 Javascript
原生JS实现京东查看商品点击放大
Dec 21 Javascript
vue.js 打包时出现空白页和路径错误问题及解决方法
Jun 26 #Javascript
Vue实现日历小插件
Jun 26 #Javascript
微信小程序入口场景的问题集合与相关解决方法
Jun 26 #Javascript
Vue组件实现触底判断
Jun 26 #Javascript
vue-week-picker实现支持按周切换的日历
Jun 26 #Javascript
CKeditor4 字体颜色功能配置方法教程
Jun 26 #Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
Jun 26 #Javascript
You might like
php去掉字符串的最后一个字符附substr()的用法
2011/03/23 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
关于PHP开发的9条建议
2015/07/27 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
2015/12/19 PHP
php实现文件与16进制相互转换的方法示例
2017/02/16 PHP
在PHP中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
PHP7变量处理机制修改
2021/03/09 PHP
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
使用javascript实现ListBox左右全选,单选,多选,全请
2013/11/07 Javascript
js中一个函数获取另一个函数返回值问题探讨
2013/11/21 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
angularjs的一些优化小技巧
2014/12/06 Javascript
简介JavaScript中valueOf()方法的使用
2015/06/05 Javascript
JavaScript实现的背景自动变色代码
2015/10/17 Javascript
AngularJS控制器详解及示例代码
2016/08/16 Javascript
AngularJS应用开发思维之依赖注入3
2016/08/19 Javascript
微信小程序版翻牌小游戏
2018/01/26 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
Vue中关闭弹窗组件时销毁并隐藏操作
2020/09/01 Javascript
Python格式化css文件的方法
2015/03/10 Python
仅利用30行Python代码来展示X算法
2015/04/01 Python
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
2015/05/20 Python
Python实现递归遍历文件夹并删除文件
2016/04/18 Python
详解从Django Rest Framework响应中删除空字段
2019/01/11 Python
python简单验证码识别的实现方法
2019/05/10 Python
萨克斯第五大道精品百货店: Saks Fifth Avenue
2017/04/28 全球购物
美国汽车零部件和配件网站:CarParts
2019/03/13 全球购物
毕业自我鉴定范文
2013/11/06 职场文书
家居设计专业个人自荐信范文
2013/11/26 职场文书
研修第一天随笔感言
2014/02/15 职场文书
公路绿化方案
2014/05/12 职场文书
电子商务专业自荐信
2014/06/02 职场文书
教师先进个人材料
2014/12/17 职场文书
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python
详解MongoDB排序时内存大小限制与创建索引的注意事项
2022/05/06 MongoDB