css-doodle动态拟态玻璃效果

上效果

上代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<style>
			html,
			body {
				position: relative;
				margin: 0;
				width: 100%;
				height: 100%;
				display: flex;
				align-items: center;
				justify-content: center;
				overflow: hidden;
				background-color: #fff;

			}

			body::after {
				content: "";
				position: absolute;
				top: -100%;
				left: -100%;
				right: -100%;
				bottom: -100%;
				background-color: hsl(205deg 20% 94% / 36%);

				backdrop-filter: blur(100px);
				z-index: 1;
			}
		</style>


		<css-doodle>
			:doodle {
			@grid: 1x20 / 100vmin;
			}
			@place-cell: center;
			width: @rand(60vmin, 100vmin);
			height: @rand(60vmin, 100vmin);
			transform: translate(@rand(-120%, 120%), @rand(-80%, 80%)) scale(@rand(.8, 2.8)) skew(@rand(45deg));
			clip-path: polygon(
			@r(0, 30%) @r(0, 50%),
			@r(30%, 60%) @r(0%, 30%),
			@r(60%, 100%) @r(0%, 50%),
			@r(60%, 100%) @r(50%, 100%),
			@r(30%, 60%) @r(60%, 100%),
			@r(0, 30%) @r(60%, 100%)
			);
			background: @pick(#f44336, #e91e63, #9c27b0, #673ab7, #3f51b5, #60569e, #e6437d, #ebbf4d, #00bcd4, #03a9f4,
			#2196f3, #009688, #5ee463, #f8e645, #ffc107, #ff5722, #43f8bf, #e136eb, #f57c23, #32ed39);
			opacity: @rand(.5, .9);
			position: relative;
			top: @rand(-80%, 80%);
			left: @rand(-80%, 80%);
			animation: colorChange @rand(6.1s, 26.1s) infinite @rand(-.5s, -2.5s) linear alternate;
			@keyframes colorChange {
			100% {
			left: 0;
			top: 0;
			filter: hue-rotate(360deg);
			}
			}

		</css-doodle>

	</body>
	<script src="http://117.83.152.189:8081/sw_Scoring/js/interact.min.js"></script>
	<script>
		const positionChat = {
			"x": 0,
			"y": 0
		}

		document.getElementsByClassName("main")[0]
			.style.transform =
			`translate(${positionChat.x}px, ${positionChat.y}px)`
		interact('.main').draggable({

			listeners: {
				move(event) {
					console.log(event);
					positionChat.x += event.dx
					positionChat.y += event.dy

					document.getElementsByClassName("main")[0]
						.style.transform =
						`translate(${positionChat.x}px, ${positionChat.y}px)`
					localStorage.targetElementPosition = JSON.stringify(positionChat)
				},
			}

		})
	</script>

	<script src="https://cdnjs.cloudflare.com/ajax/libs/css-doodle/0.3.0/css-doodle.min.js"></script>
	<script>
		const doodle = document.querySelector('css-doodle');

		document.addEventListener('click', function(e) {
			doodle.update();
		});
	</script>

</html>

backdrop-filter 就是修改模糊的数值

    const doodle = document.querySelector('css-doodle');

        document.addEventListener('click', function(e) {
            doodle.update(); //点击就修改
        });

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值