html css 走马灯,纯css 实现跑马灯效果

重点:使用 inline-block 获取实际文本的宽度

由于

标签的宽度为父元素的 100%,如果是这样,我们很难进行下面的操作。我们首先需要拿到实际文本的宽度,这里可以借助 inline-block 的特性,做到这一点.

.wrap {

position: relative;

width: 200px;

height: 100vh;

background: #ddd;

overflow: hidden;

}

span {

display: inline-block;

white-space: nowrap;

padding: 5px;

line-height: 24px;

cursor: pointer;

}

.one:hover {

animation: move 5s infinite alternate linear;

}

@keyframes move {

0% {

transform: translate(0, 0);

}

100% {

transform: translate(calc(-100% + 200px), 0);

}

}

Overflow scorll left to right Overflow

AAA BBB CCC DDD EEE FFF DDD GGG

AAA BBB CCC

AAA BBB CCC DDD EEE FFF DDD GGG HHH III

0f47b8aeb8c2

image.png

有时候我们也不确定父元素的宽度,这时候我们只要改变一下我们动画效果

.wrap {

position: relative;

width: 10vw;

height: 100vh;

background: #ddd;

overflow: hidden;

resize: horizontal;

}

.wrap::-webkit-scrollbar {

width: 200px;

height: 200px;

}

span {

position: relative;

display: inline-block;

white-space: nowrap;

padding: 5px;

line-height: 24px;

cursor: pointer;

transition: .5s all;

will-change: left, transform;

}

.scroll:hover {

animation: move 2s infinite alternate linear;

}

@keyframes move {

0% {

left: 0;

transform: translate(0, 0);

}

100% {

left: 100%;

transform: translate(-100%, 0);

}

}

Overflow scorll left to right

Overflow

AAA BBB CCC DDD EEE FFF DDD GGG

AAA BBB CCC

AAA BBB CCC DDD EEE FFF DDD GGG HHH

III

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用CSS3的动画属性和伪元素来实现边框跑马灯特效。 首先,需要给元素设置一个固定的宽度和高度,并设置边框样式。然后,使用伪元素::before和::after来创建两个半透明的遮罩层,覆盖在元素的边框上方。 接下来,使用CSS3的动画属性来使伪元素移动。将伪元素的宽度设置为0,然后使用@keyframes关键字定义动画,让伪元素从左侧或右侧移动到另一侧,并将宽度逐渐增加到与元素相同的宽度。 最后,使用animation属性将动画应用到伪元素上,并设置动画的持续时间、延迟时间和循环次数。 下面是一个示例代码: HTML代码: ```html <div class="marquee"> <p>这是一个边框跑马灯特效</p> </div> ``` CSS代码: ```css .marquee { width: 500px; height: 100px; padding: 20px; border: 2px solid #000; position: relative; } .marquee::before, .marquee::after { content: ""; position: absolute; top: 0; bottom: 0; width: 0; background-color: rgba(255, 255, 255, 0.5); } .marquee::before { left: 0; animation: marquee-left 5s ease-in-out infinite; } .marquee::after { right: 0; animation: marquee-right 5s ease-in-out infinite; } @keyframes marquee-left { 0% { width: 0; transform: translateX(0); } 50% { width: 100%; transform: translateX(0); } 100% { width: 0; transform: translateX(100%); } } @keyframes marquee-right { 0% { width: 0; transform: translateX(0); } 50% { width: 100%; transform: translateX(0); } 100% { width: 0; transform: translateX(-100%); } } ``` 在这个示例中,我们创建了一个宽度为500px、高度为100px的div元素,并设置了2px的黑色边框。然后,在div元素上使用了伪元素::before和::after,并设置它们的宽度为0,背景色为半透明白色。 接着,使用@keyframes关键字分别定义了两个动画marquee-left和marquee-right,让伪元素从左侧或右侧移动到另一侧,并将宽度逐渐增加到与元素相同的宽度。最后,将动画应用到伪元素上,并设置了动画的持续时间、延迟时间和循环次数。 这样,一个简单的边框跑马灯特效就完成了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值