Js实现点击查看全文(类似今日头条、知乎日报效果)

时间: 2018-03-01阅读: 3611标签: js知识

这篇文章主要为大家详细介绍了原生js+css仿QQ今日头条、知乎日报点击查看全文的效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下. 


移动端demo

  1. 需要设置过最大高度max-height,然后把超出部分隐藏。

  2. 判断内容是否超出指定高度,超出就添加,"展开全文"的按钮。

  3. 添加按钮点击事件,点击后展开全文。

代码

<!DOCTYPE html>  
<html>  
<head>  
<meta charset="UTF-8" />  
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />  
<title>点击查看全文</title>  
<style>  
*{  
margin:0;  
padding:0;  
}  
.wrap{  
max-height:14rem;  /*设置默认高度*/  
overflow: hidden;  
position:relative;  
visibility: hidden;  
}  
p{  
font-size: 16px;  
line-height: 20px;  
}  
/*展开全文*/  
.unfold-field{  
display:none;  
position:absolute;  
font-size: 0;  
bottom:0;  
width:100%;  
height:124px;  
z-index: 3;  
}  
.unfold-field .unflod-field_mask {  
height: 78px;  
width: 100%;  
background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0,hsla(0,0%,100%,0)),to(#fff));  
background-image: linear-gradient(-180deg,hsla(0,0%,100%,0),#fff);  
}  
.unfold-field_text{  
cursor: pointer;  
width:100%;  
color: #406599;;  
height:46px;  
font-size: 0px;  
line-height: 46px;  
text-align: center;  
background:#fff;  
}  
.unfold-field_text span{  
display:inline-block;  
font-size: 16px;  
height:46px;  
line-height: 46px;  
}  
.unfold-field_text span::after{  
content:"";  
vertical-align: middle;  
background:url(http://c1.adline.com.cn/static/img/bottom.png);  
background-size: contain;  
background-repeat: no-repeat;  
width: 9px;  
height: 6px;  
display: inline-block;  
margin-left: 5px;  
}  
</style>  
</head>  
<body>  
<div class="wrap" >  
    <div class="content">   
                <p>在群嘲过后,百度将用新一季的财报打一群人的脸。</p>  
                <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>  
                <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>        
                <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>  
                <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>  
                <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>  
                <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>  
                <p>本月初,将自家无人驾驶汽车“开”上北京五环的李彦宏受到了媒体群嘲。然而,当媒体还在津津乐道“看互联网大佬如何违规驾驶吃罚单”的时候,百度已经开始享受人工智能带来的投资回报了。</p>  
    </div>  
    <div class="unfold-field">  
        <div class="unflod-field_mask"></div>  
        <div class="unfold-field_text"><span>展开全文</span></div>  
    </div>   
</div>  
</body>  
<script type="text/JavaScript">  
window.onload=function(){  
var unfoldField=document.querySelector(".unfold-field");  
var wrapH=document.querySelector(".wrap").offsetHeight;  
var wrap=document.querySelector(".wrap");  
var contentH=document.querySelector(".content").offsetHeight;  
// 如果实际高度大于我们设置的默认高度就把超出的部分隐藏。  
if(contentH>wrapH){  
   unfoldField.style.display="block";  
}  
wrap.style.visibility="visible";  
unfoldField.onclick=function(){  
   this.parentNode.removeChild(this);  
   wrap.style.maxHeight="100%";  
   wrap.style.visible="visible";  
}  
  
}  
</script>  
</html>


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/453

关闭

Js中的命名空间(namespace)

全局变量应该由有系统范围相关性的对象们保留,并且它们的命名应该避免含糊并尽量减少命名冲突的风险。在实践中,这意味着你应该避免创建全局对象,除非它们是绝对必须的。 所以你对此是怎么做的?传统方法告诉我们,最好的消除全局策略是创建少数作为潜在模块和子系统的实际命名空间的全局对象。

js设备判断_判断移动端还是PC端?判断android还是ios?判断移动端浏览器类型?

js判断用户的浏览设备是移动设备还是PC?判断详细浏览器设备信息。判断微信、新浪、QQ打开。判断是android系统还是ios系统...

instanceof与constructor的区别

instanceof 的作用是判断实例对象是否为构造函数的实例,实际上判断的是实例对象的__proto__属性与构造函数的prototype属性是否指向同一引用;constructor 的作用是返回实例的构造函数,即返回创建此对象的函数的引用

手写JavaScript中的bind方法

bind方法返回的是一个绑定this后的函数,并且该函数并没有执行,需要手动去调用。(从这一点看bind函数就是一个高阶函数,而且和call,apply方法有区别)。bind方法可以绑定this,传递参数。注意,这个参数可以分多次传递。

归并排序JavaScript实现_关于归并排序思路和代码实现

归并排序:其基本思想是分治策略,先进行划分,然后再进行合并,步骤是: 1.我们以数组[1, 5, 6, 2, 4, 3]举例,归并排序的第一步,将数组一分为2;2.接着将分成的数组继续一分为2,直到长度为1,我们构成如下二叉树(成树 从上往下)

avaScript与WebAssembly进行比较+在哪些情况下会优于JavaScript

这是专门探索JavaScript及其构建组件的系列,在识别和描述核心元素的过程中,我们还分享了构建SessionStack时使用的一些经验法则,这是一个轻量级但健壮且高性能的JavaScript应用程序,以帮助用户实时查看和重现其Web应用程序的缺陷。

base91 for javascript

原理和 base64 是一样的,ASCII 共有94个可打印字符,base64 使用了其中 64 个,base91 使用了 91 个。

Js继承实现小结:JavaScript实现继承的6种方式

JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一。那么如何在JS中实现继承呢?1、原型链继承,2、构造继承,3、实例继承,4、拷贝继承,5、组合继承,6、寄生组合继承

解密JavaScript执行上下文

首先我们先了解一下什么是执行上下文栈(Execution context stack)。分别展示了栈、堆和队列,其中栈就是我们所说的执行上下文栈;堆是用于存储对象这种复杂类型,我们复制对象的地址引用就是这个堆内存的地址

JavaScript弹框、对话框、提示框方法,以及原创JS模拟Alert弹出框效果

通过js实现网页弹出各种形式的窗口,常用的:弹出框、对话框、提示框等。弹出对话框并输出一段提示信息 、弹出一个询问框,有确定和取消按钮 ,利用对话框返回的值 (true 或者 false) 、弹出一个输入框,输入一段文字,可以提交、window.open 弹出新窗口的命令

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!