首页 > 其他分享 >纯css星空效果

纯css星空效果

时间:2022-10-21 16:22:52浏览次数:45  
标签:星空 效果 100% random transform Math background css perspective

vue2版的

<!--
 * @Description: 星空
 * @Autor: 赵婧
 * @Date: 2022-09-07 17:27:44
 * @LastEditors: 赵婧
 * @LastEditTime: 2022-10-21 10:17:58
-->
<template>
  <div class="body">
    <div class="stars" ref="starsRef">
      <div class="star" v-for="(item, index) in starsCount" :key="index"></div>
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      starsCount: 800, //星星数量
      distance: 900 //间距
    };
  },
  mounted() {
    let starNodes = Array.from(this.$refs.starsRef.children);
    starNodes.forEach(item => {
      let speed = 0.2 + Math.random() * 1;
      let thisDistance = this.distance + Math.random() * 300;
      item.style.transformOrigin = `0 0 ${thisDistance}px`;
      item.style.transform = `
        translate3d(0,0,-${thisDistance}px)
        rotateY(${Math.random() * 360}deg)
        rotateX(${Math.random() * -50}deg)
        scale(${speed},${speed})`;
    });
  }
};
</script>

<style lang="css" scoped>
.body {
  position: absolute;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  background: radial-gradient(
    200% 100% at bottom center,
    #f7f7b6,
    #db6f8e,
    #1b2947
  );
  background: radial-gradient(
    200% 105% at top center,
    #1b2947 10%,
    #75517d 40%,
    #e96f92 65%,
    #f7f7b6
  );
  background-attachment: fixed;
  overflow: hidden;
}

@keyframes rotate {
  0% {
    transform: perspective(400px) rotateZ(20deg) rotateX(-40deg) rotateY(0);
  }
  100% {
    transform: perspective(400px) rotateZ(20deg) rotateX(-40deg)
      rotateY(-360deg);
  }
}
.stars {
  transform: perspective(500px);
  transform-style: preserve-3d;
  position: absolute;
  perspective-origin: 50% 100%;
  left: 45%;
  animation: rotate 90s infinite linear;
  bottom: 0;
}
.star {
  width: 2px;
  height: 2px;
  background: #f7f7b6;
  position: absolute;
  left: 0;
  top: 0;
  backface-visibility: hidden;
}
</style>

 

标签:星空,效果,100%,random,transform,Math,background,css,perspective
From: https://www.cnblogs.com/ruyijiang/p/16813857.html

相关文章

  • CSS字体显示设置
    CSS字体显示设置宋体:SimSun黑体:SimHei微软雅黑:MicrosoftYaHei微软正黑体:MicrosoftJhengHei新宋体:NSimSun新细明体:PMingLiU细明体:MingLiU标楷体:DFKai-SB仿宋:Fang......
  • unity 实现人物遮挡透明效果(遮挡剔除)
    创建shaderGraph  创建ShaderGraph材质 在刚创建后的 ShaderGraph上右键创建一个材质会生成一个材质球此时双击打开创建的ShaderGraph 调整设置ShaderGraph......
  • 给自己的博客园添加一点效果
    为自己的博客园添加motto漂浮效果^_^由于下面附的是图片,先在这里注明下:首先使用@keyfram定义帧动画,并且让最后的效果停留在最后一帧,移动属性使用transform在传入的app......
  • 如何实现一个丝滑的点击水波效果
    本文为Varlet组件库源码主题阅读系列第九篇,读完本篇,可以了解到如何使用一个div创建一个点击的水波效果。Varlet组件库提供了一个使元素点击时生成水波扩散效果的指令:<te......
  • 雪碧图CSS Sprite
    CSSSprite也叫CSS精灵图,或者CSS雪碧图,是一种网页图片应用处理方式。它允许你讲一个页面涉及到的所有的小图标(或其他图)包含到一张大图。当前的问题虽然每个小图标或者小图片......
  • css 写 >箭头
    .area-input{position:relative;.at-input__container::after{content:"";height:18px;width:18px;top:36px......
  • CSS:img被hover的时候改变src图片路径
    mg的src可以通过content改变鼠标hover时的图片路径<imgclass="import_imgcreate"src="@/assets/add_icon.png"alt=""/>.titleButton:hover.create{content:u......
  • 前端开发日常——CSS动画无限轮播
    近来没有什么值得写的东西,空闲的时候帮前端的同学做了些大屏上的展示模块,就放在这里写写吧,手把手“需求->设计->实现”,受众偏新手向。为了直观便于理解,直......
  • selenium元素定位之css选择器和xpath
    CSS选择器(cssselector)作用:用于定位页面上的标签元素的,找到符合选择器的标签元素,然后应用样式。语句:dr.find_element_by_css_selector("CSS选择器")——根据CSS选择器......
  • HTML5和CSS3的新特性
    HTML5的新特性1.用于绘画的canvas元素;2.用于媒介回放的video和audio;3.本地离线存储;4.新标签:header,footer,nav,section,article5.新的表单控件:date,time,email,url,cale......