前端实现“查看更多”效果

步骤1:设置文字容器的高度,超出部分隐藏

步骤2:设置查看更多按钮层,绝对定位,至于文字层底部

步骤3:设置按钮层线性渐变,实现遮罩效果

步骤4:按钮添加点击事件,点击时取消文字层高度限制,并隐藏查看更多按钮

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
    <title>查看更多</title>
</head>
<body>
    <div class="main">
        <div class="contain" id="textcontain">
            <P>
               阿萨德记录卡决定是否考虑房价拉水电费就看见阿弗莱克士大夫家看来是打发时间登飞来峰
                骄傲的看法杰卡斯两地分居卡斯柯老大哥工行卡里发生打架阿斯利康的积分卡拉斯激发开始代理费
                阿贾克斯房贷辣椒水两地分居阿斯顿福建高考合格哈卡司法局大啊佳世客东方丽景阿斯蒂芬两个号拉丝粉
                按甲方的快速拉设计公开课辣椒粉单身快乐阿达撒说过发的说法噶经济的方式卡里的首付款
                离开垃圾发的空间里规划开发的规划爱上发达水电费噶地方爱的嘎啊哈哈公司的发生
                埃及高科技阿里山风景奥克兰市附近阿萨德六块腹肌赶紧啊加快发啦时代峰峻奥克兰市附近案件开发及
                爱看的宫颈癌禄口街道法拉第设计费拉三季度福利卡世纪东方卡死了都放假快乐复健科就爱看的更加疯狂地老师
            </P>
            <div class="open-btn" id="btncontain">
                <a onclick="showMore()">查看更多</a>
            </div>
        </div>
    </div>
    <script>
        // 点击显示更多按钮
        function showMore() {
            $("#textcontain").height("auto");//取消文字容器高度限制
            $("#btncontain").hide();//隐藏查看更多按钮
        }
    </script>
    <style>
        .main{
            width: 100%;
        }
        .contain{
            width: 20%;
            position: relative;
            margin: 0 auto;
            height: 200px;
            overflow: hidden;/*设置文案容器高度,超出部分隐藏*/
            text-align: center;
        }
        .open-btn{
            position: absolute;
            width: 100%;
            bottom: 0;
            height: 80px;
            background: linear-gradient(180deg,rgba(255,255,255,0),#fff);/*实现渐变效果,遮罩效果*/
        }
        .open-btn a{
            text-decoration: none;
            color: chocolate;
            display: inline-block;
            margin-top: 60px;
        }
    </style>
</body>
</html>
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用CSS的text-overflow属性和JavaScript来实现这个效果。 首先,在CSS中使用text-overflow属性将超出容器宽度的文本隐藏,并显示省略号: ``` .container { width: 300px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } ``` 接着,在JavaScript中获取文本容器的高度和文本的实际高度,当文本实际高度大于容器高度时,显示“查看更多”按钮,并设置点击事件: ``` var container = document.querySelector('.container'); var content = document.querySelector('.content'); var btn = document.querySelector('.btn'); if (content.offsetHeight > container.offsetHeight) { btn.style.display = 'block'; btn.addEventListener('click', function() { container.style.height = 'auto'; btn.style.display = 'none'; }); } ``` 当点击“查看更多”按钮时,将文本容器的高度设置为auto,这样就可以展示完整的文本了。 完整的HTML和CSS代码如下: ``` <style> .container { width: 300px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .btn { display: none; } </style> <div class="container"> <div class="content"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed varius ante vel velit sodales, non pellentesque mauris mollis. Nam nec leo at purus aliquet maximus sit amet ut metus. Duis velit urna, sagittis ut sollicitudin a, fringilla sit amet massa. Aliquam erat volutpat. Etiam id ante luctus, fermentum lorem eu, ultrices magna. Vivamus auctor at turpis id mattis. Sed euismod, velit nec suscipit mattis, urna erat consequat velit, quis volutpat sapien mi quis nisi. Nulla facilisi. Curabitur sed ante vel nulla aliquet malesuada. Vestibulum vel neque ac magna bibendum porttitor. Sed ac felis est. Duis euismod tincidunt elit, in bibendum ipsum rutrum in. Aliquam luctus at dolor vel placerat. Duis lobortis bibendum libero, vel convallis sapien hendrerit in. Sed sollicitudin, leo sed eleifend ornare, nunc libero laoreet lectus, vel accumsan velit massa in velit. Nullam sed risus vitae risus mollis scelerisque. Fusce pellentesque, ante vel finibus euismod, nunc dolor luctus justo, et fringilla augue sapien vel velit. Nullam interdum, ligula vel rhoncus bibendum, felis sapien blandit ipsum, vel porttitor felis dui eu nisl. Duis ac libero justo. Nullam finibus aliquam eros, vel semper quam facilisis eu. Sed tristique velit erat, eget vehicula mauris elementum eget. Nullam nec nunc in mauris tempor auctor. Quisque congue at sapien nec faucibus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Ut ut bibendum nibh. Donec ut elementum leo. Nullam non mauris non lacus condimentum facilisis. Sed tristique, justo ut lobortis interdum, felis felis suscipit nunc, eu porta quam justo vel nisi. Nulla vitae augue vel erat vestibulum blandit. Sed quam odio, blandit ut libero nec, tempus gravida mi. Sed sed sapien ipsum. Quisque sed eros ut felis suscipit lacinia. Sed nec magna eu velit dictum vehicula. Duis nec enim tristique, blandit lectus eget, sodales sapien. Ut non erat non nisi commodo ultricies. </div> <button class="btn">查看更多</button> </div> <script> var container = document.querySelector('.container'); var content = document.querySelector('.content'); var btn = document.querySelector('.btn'); if (content.offsetHeight > container.offsetHeight) { btn.style.display = 'block'; btn.addEventListener('click', function() { container.style.height = 'auto'; btn.style.display = 'none'; }); } </script> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值