美文网首页
Vue<文字探照灯效果>

Vue<文字探照灯效果>

作者: Wo信你个鬼 | 来源:发表于2019-12-24 11:20 被阅读0次

效果图:

image

代码如下:

<template>
  <div class="overall">
    <div class="text-box">
      <span class="dot"></span>
      <span class="dot"></span>
      <span class="dot"></span>
    </div>
    <svg height="0" width="0">
      <defs>
        <clipPath id="svgTextPath">
          <!-- textLength 文字的长度 此处对应容器的宽度  x y 为横纵坐标位置 -->
          <text x="0" y="180" textLength="700px">learning</text>
          <text x="200" y="300" textLength="250px">vue</text>
        </clipPath>
      </defs>
    </svg>
  </div>
</template>

<script>
import { TweenLite } from "gsap";
export default {
  mounted() {
    this.move();
  },
  methods: {
    move() {
      let box = document.querySelector(".text-box");
      let dt = document.querySelectorAll(".dot");
      window.addEventListener("mousemove", function(e) {
        for (let i = 0; i < dt.length; i++) {
          //圆灯相对于 容器的坐标位置
          let x = e.pageX - box.offsetLeft - dt[i].offsetWidth / 2;
          let y = e.pageY - box.offsetTop - dt[i].offsetHeight / 2;
          TweenLite.to(dt[i], i + 0.2, {
            x: x,
            y: y,
            ease: Back.easeOut.config(1.7)
          });
        }
      });
    }
  }
};
</script>

<style lang="scss" scoped>
.text-box {
  width: 700px;
  height: 400px;
  font-size: 4rem;
  font-weight: bold;
  text-transform: uppercase;
  position: relative;
  overflow: hidden;
  //引入剪切路径
  clip-path: url(#svgTextPath);
  color: white;
  background: #2fddc6;
  //移动圆灯的样式
  .dot {
    display: inline-block;
    border-radius: 50%;
    position: absolute;
    left: 0;
    top: 0;
    opacity: 0.9;
  }
  .dot:nth-child(1) {
    width: 350px;
    height: 350px;
    background: rgb(30, 207, 148);
    z-index: 8;
    transform: translateX(-175px) translateY(-175px);
  }
  .dot:nth-child(2) {
    width: 500px;
    height: 500px;
    background: rgb(28, 204, 195);
    z-index: 7;
    transform: translateX(-250px) translateY(-250px);
  }
  .dot:nth-child(3) {
    width: 700px;
    height: 700px;
    background: rgb(18, 155, 247);
    z-index: 6;
    transform: translateX(-350px) translateY(-350px);
  }
}
//剪切文字的文字样式 此处的文字颜色取背景色
text {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
    Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  font-weight: bold;
  font-size: 8rem;
  text-transform: uppercase;
}
</style>

相关文章

  • Vue<文字探照灯效果>

    效果图: 若出现报错问题,请下载老版本的gsap 代码如下:

  • Vue<文字探照灯效果>

    效果图: 代码如下:

  • canvas探照灯效果

    canvas中的clip()方法用于从原始画布中剪切任意形状和尺寸。一旦剪切了某个区域,则所有之后的绘图都会被限制...

  • VUE之文字跑马灯效果

    VUE之文字跑马灯效果 1.效果演示 2.相关代码

  • Vue<文字光影效果>

    效果图: ?首先说明,以下参考地址和我的代码没有任何关系,不要问我为什么,因为大牛写的代码我看不懂,涉及到了3D效...

  • 用PPT制作探照灯效果

    先来看看效果 这个效果由三部分组成,分别是:黑色背景,白色圆,和黑色字体。 为了便于看清,我把白色圆形的边框设置成...

  • vue 文字的空格效果

     一个汉字的间距  半个文字的间距  四分之一个汉字的间距 效果截图

  • vue 段落中个别文字设置特殊颜色

    如何在vue中来设置一段文字中其中某个文字的颜色了?看图 这样就实现效果啦~

  • 探照灯?

    今天周六,正常来说,当然是要睡到自然醒了,然而,在没有闹钟的情况下,我还是被吵醒了——邻居在屋里唱歌。 虽说他唱的...

  • vue-html vue-text vue-once v

    1.vue-html 效果图示: 2.vue-text 效果图示: 3.vue-once vue-once只绑定一...

网友评论

      本文标题:Vue<文字探照灯效果>

      本文链接:https://www.haomeiwen.com/subject/ogbxoctx.html