vue3+scss开启写轮眼

vue3+scss开启写轮眼

一、相关技术

采用vue3+vite+scss的技术内容进行开发

二、使用步骤

1.安装依赖

代码如下:

javascript 复制代码
npm install sass

2.眼球

首先我们根据需要 将眼睛的基础形状描绘出来,基础形状是由外眼线、内眼线以及中间的瞳孔组成

html 复制代码
<div class="outLine">
    <div class="innerLine">
        <div class="eyeBall"></div>
    </div>
</div>
css 复制代码
//外眼线
.outLine {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: red;
  border: 3px solid #000;
  display: flex;
  justify-content: center;
  align-items: center;
  //内眼线
  .innerLine {
    width: 50px;
    height: 50px;
    position: relative;
    border-radius: 50%;
    border: 3px solid #000;
    display: flex;
    justify-content: center;
    align-items: center;
	//瞳孔
    .eyeBall {
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: #000;
    }
  }
}

3 勾玉

要绘制一个勾玉,先对勾玉的形状进行分析,它是由一个圆和一个勾组成,因此我们可以使用css中的伪类来实现

定义一个div,类名为gouyu

typescript 复制代码
<template>
    <div class="gouyu"></div>
</template>

<style lang="scss" scoped>
//默认圆
.gouyu {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #000;
  position: absolute;
  top: 12px;
}
//添加勾
.gouyu:before {
  position: absolute;
  content: "";
  width: 12px;
  height: 10px;
  left: 2px;//左偏移量
  top: -6px;//上偏移量
  border: 0 solid transparent;//取消其余边框
  border-top: 6px solid #000000;//上边框
  border-radius: 20px 0 0 0;//上边框圆角
  transform: rotate(77deg);//勾旋转角度
}

4 旋转动画

要实现勾玉绕瞳孔旋转的效果,我们可以使用css3中的动画实现

css 复制代码
.gouyu {
  transform: rotate(0deg);//默认开始位置
  transform-origin: 50% 36px;//旋转中心,如不设置默认自旋转
  animation: 3s gouyuRotate-1850a03c linear infinite;//执行动画的时间,事件,无限次数
}
@keyframes gouyuRotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(var(0deg));
  }
}

5 综合

结合二者即可实现以下效果,源代码在此

相关推荐
tERS ERTS9 分钟前
头歌答案--爬虫实战
java·前端·爬虫
当时只道寻常17 分钟前
Vue3 集成 NProgress 进度条:从入门到精通
前端·vue.js
kyriewen18 分钟前
React性能优化:从“卡成狗”到“丝般顺滑”的5个秘诀
前端·react.js·性能优化
米丘18 分钟前
Vue 3.x 单文件组件(SFC)模板编译过程解析
前端·vue.js·编译原理
helloweilei20 分钟前
Web Streams 简介
前端·javascript
悟空瞎说20 分钟前
Flutter热更新 Shorebird CodePush 原理、实现细节及费用说明
前端·flutter
didadida26221 分钟前
从“不存在”的重复请求,聊到 Web 存储的深坑
前端
xiaominlaopodaren22 分钟前
Three.js 渲染原理-透明渲染为什么这么难
前端
米丘23 分钟前
vue3.x 内置指令有哪些?
前端·vue.js