原生js获取css伪类元素并设置属性

需要解决的代码片

<style type="text/css">
	*{padding: 0;margin: 0;}
	body{
		display: flex;
		width: 100vw;
		height: 100vh;
		background: #636e72;
		justify-content: center;
		align-items: center;
	}

	button{
		width: 100px;
		height: 40px;
	}

	button::after{
		content: '';
		width: 3px;
		height: 3px;
		display: inline-block;
	}

	@keyframes load{
		30%{
			box-shadow: 3px 0 0 currentColor;
		}
		60%{
			box-shadow: 3px 0 0 currentColor,9px 0 0 currentColor;
		}
		90%{
			box-shadow: 3px 0 0 currentColor,9px 0 0 currentColor,15px 0 0 currentColor;
		}
	}
</style>
<button>提交</button>

我们需要在点击提交的时候给button::after加上load动效,这时候该怎么做呢?

解决需求(设置或更改伪类的属性)

<script type="text/javascript">
	function loading() {
		document.styleSheets[0].addRule('button::after','animation-name:load;animation-duration: 3s;animation-iteration-count: infinite;')
	}
</script>

ok,这时候设置的属性就可使用了。

获取伪类元素并取值(如果你只是单纯的取值,请看这里)

<script type="text/javascript">
	var buttonObj = document.querySelector('button')
	var buttonAfterStyle = getComputedStyle(buttonObj,':after')
	//第一种方法
	alert('buttonAfterStyle.getPropertyValue("width") result: ' + buttonAfterStyle.getPropertyValue('width'))
	//第二种方法
	alert('buttonAfterStyle.width result: ' + buttonAfterStyle.width)
</script>

在这里插入图片描述
在这里插入图片描述

本博客其他文章推荐

模仿一个球落地效果,最终停在地面上(仿真效果,CSS实现)

让一个小球无限的弹弹弹~(CSS实现球无限弹动)

如果有一屏幕的爱心,你愿意送给谁?(简单实现原生js、css随机生成521个心)

maven新手上路–创建webapp项目,引入jstl、el依赖及el不解析的问题解决(详细图文)

springmvc5.1.9在控制器中一个方法可跳视图也可跳方法问题解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值