马黑PHP整站系统

js+css+svg花朵演示

位置: 首页 > 代码集锦[ 发布时间: 2023.11.12  作者: 马黑  阅读: 331 ]

以下代码,根据mdn svg 花朵示例简化而成:

<style>
	#sun_flower { background: beige; }
	.segment1, .segment2:hover { fill: url(#rGradient); stroke: orange; }
	.segment2, .segment1:hover { fill: orange; stroke: orange; }
</style>

<svg id="sun_flower" width="600" height="600" viewBox="-300 -300 600 600">
	<defs>
		<radialGradient id="rGradient" cx="0" cy="0" r="200" gradientUnits="userSpaceOnUse">
			<stop offset="33%" stop -color="lightblue" stop-opacity="0.2" />
			<stop offset="100%" stop-color="azure" stop-opacity="1" />
		</radialGradient>
	</defs>
</svg> 

<script>

let gNum = 20;
let ns = 'http://www.w3.org/2000/svg';

let path1 = '<path class="segment1" d="M0,0 v-200 a40,40 0 0,0 -62,10 z" />',
	path2 = '<path class="segment2" d="M0,0 v-200 a40,40 0 0,0 -62,10 z" />';

for(j = 0; j < gNum; j++) {
	let g1 = document.createElementNS(ns, 'g'),
		g2 = document.createElementNS(ns, 'g');  

	g1.setAttribute('transform', 'rotate(' + 360 / gNum * j + ')');
	g1.innerHTML = path1;

	g2.setAttribute('transform', 'rotate(' + 360 / gNum * j + ') scale(0.33)');
	g2.innerHTML = path2;

	sun_flower.appendChild(g1);
	sun_flower.appendChild(g2);
}

</script>

小结:内圆、外圆各由20片花瓣按一定角度旋转围成一圈而成,花瓣以渐变进行渲染,再藉由CSS的加持能产生一定的动态交互效果。

前一篇: 生成svg星形图案和路径
下一篇: 计算器演算动画

发表评论:

       

评论列表 [1条]

#1 | 了了 于 2023-11-12 16:05 发布: 鼠标移花瓣上,颜色会变。。好玩儿。。。

Copyright © 2023 All Right Reserved 马黑PHP文章管理整站系统v1.8
联系我们: gxblk@163.com