文字溢出部分自动滚动显示

我们在一定区域里面写文字的时候经常会出现文字溢出的现象,一般情况下会使用
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;

实现溢出隐藏,即用省略号代替溢出的部分,这样比较美观而且溢出部分的详情也可以点进相应的详情页面去查找,但是如果这段文字本来就在详情页面里面了还能用省略号代替么?显然是不可以的,这时我们可以让文字溢出部分自动滚动显示。如图:


代码如下:

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>test</title>
    <style type="text/css">
        *{ margin:0; padding:0;}
        body{font:12px/1 '微软雅黑';background: #fff;}
        .wrap{ width:140px; padding:10px;}
        .info{ padding-top:10px; overflow:hidden;}
        .inner{ width:1000px;height:172px; height:17px; line-height:17px; overflow:hidden;}
        .inner p{ display:inline-block;}
    </style>
</head>
<body>
<div class="wrap">
    <div class="img"><img src="http://dummyimage.com/140x90/" alt=""/></div>
    <div id="info" class="info">
        <div class="inner">
            <p class="txt">文字如果超出了自动向左滚动</p>
        </div>
    </div>
</div>
<script>
    function scroll(){
        var info = document.getElementById('info');
        var div = info.getElementsByTagName('div')[0];
        var p = document.getElementsByTagName('p')[0];
        var p_w = p.offsetWidth;
        var div_w = info.offsetWidth;
        if(div_w > p_w){ return false; }
        div.innerHTML += div.innerHTML;

        setInterval(function(){
            if(p_w <= info.scrollLeft){
                info.scrollLeft -= p_w;
            } else {
                info.scrollLeft++;
            }
        }, 30);
    }
    scroll();
</script>
</body>
</html>


### 前端实现文字滚动显示的方法 #### 使用纯CSS实现简单的水平文字滚动效果 对于较为简单的需求,可以仅依靠CSS来创建一个基础的文字滚动效果。这主要依赖于`@keyframes`动画以及一些特定的选择器属性。 ```css /* 定义动画 */ @keyframes scrollText { from { transform: translateX(0); } to { transform: translateX(-100%); } } .scroll-text { white-space: nowrap; overflow: hidden; animation: scrollText 10s linear infinite; } ``` 此段代码会使得具有`.scroll-text`类别的元素内的文本从右向左持续移动[^2]。 #### 结合JavaScript增强交互性和兼容性 当需求变得更加复杂时——比如希望根据窗口大小调整速度、暂停/恢复滚动或是处理多行文本等情况,则可能需要引入JavaScript来进行辅助操作。下面是一个利用原生JS监听鼠标事件并控制滚动行为的例子: ```javascript document.querySelector('.scroll-container').addEventListener('mouseenter', function() { this.classList.add('paused'); }); document.querySelector('.scroll-container').addEventListener('mouseleave', function() { this.classList.remove('paused'); }); ``` 配合相应的样式规则,在用户悬停时停止滚动,并在离开区域后恢复正常流动。 #### 处理溢出内容自动展示滚动条的情况 如果目标是在容器内有过多的内容无法一次性完全展现给访问者查看的情况下提供一种友好的解决方案,那么可以通过设置合适的CSS属性让浏览器自动生成必要的垂直或水平滚动条供浏览更多隐藏起来的信息片段。 ```html <view class="tes" style="margin-top: 15rpx;"> <p v-html="content" class="content"></p> </view> <style scoped> .tes .content { max-height: 200px; /* 设置最大高度 */ overflow-y: auto; /* 当内容超过设定的高度时启用纵向滚动条 */ } </style> ``` 上述HTML与CSS组合能够有效地解决长篇幅文章或其他形式的数据列表等场景下的可读性问题[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值