纯CSS实现边框流光效果(跑马灯效果)

这篇具有很好参考价值的文章主要介绍了纯CSS实现边框流光效果(跑马灯效果)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先上一个效果图

纯CSS实现边框流光效果(跑马灯效果)

有木有发现和夜晚街上的广告牌很像,接下来让我们看看如何使用css实现的吧

结构分析

首先很明显应该使用一个盒子将文字装起来,并且将文字进行了居中,然后我们看到这盒子的周围围绕了两条光带,那么这两条光带是怎么实现的呢?

其实这是用四个小盒子实现的,将这四个小盒子分别放在大盒子的周围(紧贴这大盒子的内壁),然后使用这几个小盒子实现流光(跑马灯)效果。

接下来看看具体的代码实现

代码实现

HTML结构

首先准备一个div大盒子,用来装我们的广告语,还有跑马灯的四个小盒子

	<div class="main">
		跑马灯
		<div></div>
		<div></div>
		<div></div>
		<div></div>
	</div>

给大盒子设置样式,方便我们在浏览器中看到

	body {
		background-color: #000;
	}

	.main {
		position: absolute;
		width: 400px;
		height: 150px;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);//当为百分百单位时,相对的是自身的宽高
		overflow: hidden; //溢出部分隐藏
		text-align: center;
		line-height: 150px;
	    background-color: transparent;
		color: aquamarine;
		font-size: 30px;
		font-family: '宋体';
	}

当前效果是这样的

纯CSS实现边框流光效果(跑马灯效果)

接下来我们给大盒子设置灯光效果。

内部灯光效果

在效果图上,我们可以看到灯光尾部的颜色比较淡,头部颜色较亮, 展现出一种过渡效果,那这样的效果是怎么实现的呢?

这里就需要用到css3中background的一个新的属性值:linear-gradient,通过这个属性,我们可以将多个颜色设置为一个盒子的背景颜色,并且还有过渡效果,更强大的地方在于,这个属性值可以设置渐变的方向。

语法:linear-gradient(渐变方向,color1,color2,color3...)

这里我选择了#fff, #acd, cyan渐变的三种配色

那就开始使用这个属性值,这是其中一个小盒子的效果(顶部),其他的效果实现方法都类似。

	.main div {
		position: absolute;
	}

	.main :nth-child(1) {
		top: 0;
		left: 0;
		width: 100%;    //与父盒子等宽
		height: 2px;    //高要设置得较小
		background: linear-gradient(to right, #fff, #acd, cyan);
	}

这里设置的是顶部的灯光效果,使用topleft的属性设置这个盒子的位置;使用width:100%,使得这个盒子的宽度与大盒子保持一致,然后使用height:2px,将灯光条的宽度设置为2px,当然也可以根据实际需求,改变灯光条的宽度

接着剩下三条灯光的实现原理基本相同,只有位置和背景颜色不同

剩下右,下,左背景颜色的渐变方向分别是to bottomto leftto top

目前效果是这样的:

纯CSS实现边框流光效果(跑马灯效果)

 这离我们想要的跑马灯效果越来越像了

其实我们还差最后一步,给灯光加上动画效果,也就是css3中的animation动画属性

同样我们也以设置顶部的灯光效果作为示范:

css3动画:

	@keyframes run1 {
		from {
			transform: translateX(-100%) //初始让它沿X轴负方向(向左)位移自身的宽度
		}

		to {
			transform: translateX(100%)  //动画结束时,让它回到原位
		}
	}

 给盒子加上动画

.main :nth-child(1) {
		top: 0;
		left: 0;
		width: 100%;
		height: 2px;
	    animation: run1 1s linear infinite;//复合属性写法,其中infinite是让动画效果无限循环
		background: linear-gradient(to right, #fff, #acd, cyan);
	}

前面没有设置动画之前,可以看到颜色最深的部分在最右边,但是跑马灯的实现需求是需要颜色最深部分从左边出现,然后移动到右边,所以应该将动画的初识位置向左移整个盒子的长度,这样就实现了需求

剩下三个盒子的实现方式类似,设置好后,最终得到我们想要的跑马灯效果

想要了解css3动画的可以看看这篇文章,讲解得很详细

全部代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
</head>
<style>
	body {
		background-color: #000;
	}

	.main {
		position: absolute;
		width: 400px;
		height: 150px;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		overflow: hidden;
		text-align: center;
		background-color: transparent;
		line-height: 150px;
		color: aquamarine;
		font-size: 30px;
		font-family: '宋体';
	}

	.main div {
		position: absolute;
	}

	.main :nth-child(1) {
		top: 0;
		left: 0;
		width: 100%;
		height: 2px;
		animation: run1 1s linear infinite;
		/* animation-delay: 0s;  */
		background: linear-gradient(to right, #fff, #acd, cyan);
	}

	.main :nth-child(2) {
		top: 0;
		right: 0;
		height: 100%;
		width: 2px;
		animation: run2 1s linear infinite;
		/* animation-delay: 1s; 设置动画延迟加载时间*/
		background: linear-gradient(to bottom, #fff, #acd, cyan);
	}

	.main :nth-child(3) {
		bottom: 0;
		left: 0;
		height: 2px;
		width: 100%;
		animation: run3 1s linear infinite;
		/* animation-delay: 2s; 设置动画延迟加载时间*/
		background: linear-gradient(to right, #fff, #acd, cyan);
	}

	.main :nth-child(4) {
		top: 0;
		left: 0;
		height: 100%;
		width: 2px;
		animation: run4 1s linear infinite;
		/* animation-delay: 3s; 设置动画延迟加载时间 */
		background: linear-gradient(to top, #fff, #acd, cyan);
	}

	@keyframes run1 {
		from {
			transform: translateX(-100%)
		}

		to {
			transform: translateX(100%)
		}
	}

	@keyframes run2 {
		from {
			transform: translateY(-100%)
		}

		to {
			transform: translateY(100%)
		}
	}

	@keyframes run3 {
		from {
			transform: translateX(100%)
		}

		to {
			transform: translateX(-100%)
		}
	}

	@keyframes run4 {
		from {
			transform: translateY(100%)
		}

		to {
			transform: translateY(-100%)
		}
	}
</style>

<body>
	<div class="main">
		海绵宝宝
		<div></div>
		<div></div>
		<div></div>
		<div></div>
	</div>
</body>

</html>

最后,希望本文对你有所帮助,阿里嘎多文章来源地址https://www.toymoban.com/news/detail-470679.html

到了这里,关于纯CSS实现边框流光效果(跑马灯效果)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android 实现跑马灯效果

    Android中实现跑马灯效果有多种方式,本篇简单介绍下: 1: TextView属性实现 这里需要注意下: 需要限制textview的宽度,不能设置为wrap_content 启动跑马灯效果需要获取焦点requestFocus(). 2: 代码实现 3: 自定义 view实现 这里可以使用动画的效果实现. 4: 实现竖直效果的跑马灯

    2024年01月18日
    浏览(45)
  • JavaFx 实现水平滚动文本(跑马灯效果)

    原文地址: JavaFx 实现水平滚动文本(跑马灯效果) - Stars-One的杂货小窝 本文是以TornadoFx框架进行编写,各位使用JavaFx可以参考 代码已经封装在common-controls库中 实现原理就是利用了JavaFx里的动画效果去修改scrollpane的translateX属性,原本想在text上改造的,发现文字过多就不行了,最终还

    2023年04月27日
    浏览(39)
  • 使用Vue.js实现文字跑马灯效果

    实现文字跑马灯效果,首先用到 substring()截取 和 setInterval计时器 clearInterval()清除计时器 效果如下: 实现代码如下: 以上是实现文字跑马灯效果,如有不足的地方,欢迎在评论区留言。

    2023年04月19日
    浏览(32)
  • flutter开发实战-实现marquee根据文本长度显示文本跑马灯效果

    flutter开发实战-实现marquee文本跑马灯效果 最近开发过程中需要marquee文本跑马灯效果,这里使用到了flutter的插件marquee 效果图如下 1.1 引入marquee 在pubspec.yaml中引入marquee 1.2 marquee使用 marquee使用也是非常方便的。比如直接指定文本text 或者设置更多属性值 根据Text文本的大小判断

    2024年02月13日
    浏览(36)
  • Android --- 跑马灯效果

    跑马灯效果主要使用的控件为TextView,其中涉及的几个标签如下所示: android:ellipsize If set, causes words that are longer than the view is wide to be ellipsized instead of broken in the middle. You will often also want to set scrollHorizontally or singleLine as well so that the text as a whole is also constrained to a single line in

    2023年04月08日
    浏览(67)
  • uni小程序 跑马灯效果

    写在前面 前几天帮一个朋友咋小程序上加一个类似于跑马灯的效果,本自己手写了一个。(代码和截图都在下方) 效果展示 等我截图~~~ 代码展示(布局代码) 主要就是图片css哪里加了一个“ flex-shrink: 0; ”,因为只是本地的一个功能,所以我就图片数据就写死了,需要的自

    2024年02月12日
    浏览(29)
  • 应广单片机实现跑马灯

            应广单片机处处体现其mini的特性,非常适合做各种方案开发,特别是点灯,什么跑马灯,氛围灯,遥控灯,感应灯,拍拍灯等,用应广都OK。        跑马灯是基础中的基础,我搭了一个框架,要进行扩展或是修改也很容易。不多说,上代码。 #include    \\\"extern.h\\\"

    2024年02月09日
    浏览(28)
  • 应广单片机跑马灯实现--阻塞式编程模式

           我这边再写了一个跑马灯程序,使用阻塞式编程模式,看起来会更简单直观。对于初学者来说,阻塞式编程比较直观好理解。在一些任务单一或是任务不多的程序来说,还是不错的选择。但是建议还是采用任务式/查询式编程,这样使程序会有更好的扩展性能,减少推

    2024年02月09日
    浏览(39)
  • Qt+C++实现灯带动画运动位置变换移动跑马灯图片轮播

     程序示例精选 Qt+C++实现灯带动画运动位置变换移动跑马灯图片轮播 如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助! 这篇博客针对Qt+C++实现灯带动画运动位置变换移动跑马灯图片轮播编写代码,代码整洁,规则,易读。 学习与应用推荐首

    2024年02月13日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包