css 文本超出自动滚动

假设滚动的这个东西类名为name

1. name的父元素宽度一定,且小于name的宽度,且父元素overflow: hidden;

2. 下面2.35rem是name的父元素的宽度, 可替换为别的

.name {
    white-space: nowrap;
}
.name.scroll {
    animation: 3s wordsLoop linear infinite;
}
@keyframes wordsLoop {
    0% {
        transform: translateX(0px);
    }
    25% {
        transform: translateX(0px);
    }
    75% {
        transform: translateX(calc(-100% + 2.35rem));
    }
    100% {
        transform: translateX(calc(-100% + 2.35rem));
    }
}

3. 当name宽度超过父元素宽度时,为其添加scroll类

以下是在vue中的操作:

1)绑定一个ref和一个scroll类

<div 
    class="name" 
    v-html="currentSong.name" 
    ref="songName1" 
    :class="{ scroll: nameScroll }">
</div>

2)data里加一个nameScroll: false

3) 2.35 * parseInt(document.querySelector('html').style.fontSize) 是我项目里name的父元素宽度,可以替换为别的。这段代码写在哪需要根据自己的项目调整,需要在name渲染之后调用。

if (this.$refs.songName1.clientWidth > 2.35 * parseInt(document.querySelector('html').style.fontSize)) {
    this.nameScroll = true
} else {
    this.nameScroll = false
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>