钟表

作者: wppeng | 来源:发表于2021-09-01 16:36 被阅读0次
钟表

1. 组件实现

<!-- 组件模板 -->
<template>
  <div class="clock">
    <div
      class="item"
      v-for="item in 12"
      :style="'transform: rotate(' + 30 * item + 'deg)'"
      :key="item"
      :class="item % 3 == 0 ? 'clock-item' : ''"
    >
      {{ item }}
    </div>
    <div class="hour pointer" :style="'transform:rotate(' + circleHour + 'deg)'"></div>
    <div class="minute pointer" :style="'transform:rotate(' + minute * 6 + 'deg)'"></div>
    <div class="seconds pointer" :style="'transform:rotate(' + second * 6 + 'deg)'"></div>
    <div class="point"></div>
  </div>
</template>

<script>
import {} from "vant";
export default {
  components: {},
  props: {},
  data() {
    return {
      minute: "",
      circleHour: "",
      second: "",
      clock: null,
    };
  },
  setup() {
    return {};
  },
  mounted() {
    let that = this;
    this.clock = setInterval(function () {
      var nowDate = new Date(); //每次读取当前时间
      var hour = nowDate.getHours();
      var minute = nowDate.getMinutes();
      var second = nowDate.getSeconds();
      var circleHour = (hour % 12) * 30;
      that.minute = minute;
      that.second = second;
      that.circleHour = circleHour;
    }, 1000);
  },
  unmounted() {
    clearInterval(this.clock);
  },
  methods: {},
};
</script>

<style lang="scss" scoped>
.point {
  position: absolute;
  left: calc(50% - 4px);
  top: calc(50% - 4px);
  width: 8px;
  height: 8px;
  z-index: 999;
  border-radius: 50%;
  background: #fff;
}
.pointer {
  position: absolute;
  left: 50%;
  height: 160px;
  width: 10px;
  margin-left: -5px;
}
.hour::after {
  content: "";
  height: 40px;
  width: 6px;
  position: absolute;
  top: 50px;
  left: 2px;
  background-image: linear-gradient(#fa7299, #fedb44);
  border-radius: 8px 8px 8px 8px;
  z-index: 1;
}
.minute::after {
  content: "";
  height: 50px;
  width: 4px;
  position: absolute;
  top: 40px;
  left: 3px;
  background-image: linear-gradient(#fa7299, #fedb44);
  border-radius: 8px 8px 8px 8px;
  z-index: 2;
}
.seconds::after {
  content: "";
  height: 60px;
  width: 1px;
  position: absolute;
  top: 30px;
  left: 4.5px;
  background-image: linear-gradient(#fa7299, #fedb44);
  z-index: 3;
}
.clock {
  position: relative;
  width: 160px;
  height: 160px;
  background-image: linear-gradient(#4fa3fb, #c962fa);
  border-radius: 50%;
  overflow: hidden;
  padding: 10px;
  color: #fff;
  box-shadow: 0px 15px 24px -5px #7a8fae;
}
.item {
  position: absolute;
  width: 160px;
  height: 160px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  overflow: hidden;

  font-size: 12px;
}
.clock-item {
  font-size: 18px;
  font-weight: bold;
}

</style>

  1. 组件使用
<template>
  <van-nav-bar title="测试页面" fixed placeholder safe-area-inset-top></van-nav-bar>
  <div class="test">
    <my-clock />
  </div>
</template>

<script>
import { NavBar } from "vant";
import MyClock from '../../components/example/MyClock.vue';


export default {
  components: {
    MyClock,
    
    [NavBar.name]: NavBar,
  },
  setup() {
    return {};
  },
  data() {
    return {};
  },

  methods: {},
};
</script>

<style lang="scss" scoped>
.test{
  display: flex;
  justify-content: center;
  padding: 20px;
}
</style>

相关文章

  • 钟表

    你不紧不慢 不慌不忙 中规中矩的往前走 走啊,走啊 没有尽头 这多像一个人的头脑 在白天,没有休息的时候

  • 钟表

    日子走了 已有快有三个年头 钟表 却蜷缩在暗角 静止了 指针所指的方向 是清晨 也是傍晚 醒来 或是将要睡去 ...

  • 钟表

    一块钟表 秒针是你 时针是我 秒针不停转 时针怎么追

  • 钟表

    锈迹斑驳的栏门里 掩了芳华的怀表 拉着地球自转 追赶太阳的脚步 灼热逼退的方向 弯月削了尖牙 白墙上的大摆钟 左右...

  • 钟表

    卧室的墙上有一个钟表,这个钟表有着不锈钢的金属外圈,透明的玻璃盖子,黑色的刻度和黑色的指针,分针和时针不停的互相追...

  • 钟表

    我看到东墙上 那秒针震动却停滞的样子 就像年迈的老人 再迈不动一步 当我们度过这样那样的一生 我们该如何度过这最后...

  • 钟表

    我欲把钟表扛回家它却掉在了路上悲叹着这一滩液体感觉自己仿佛身在过去

  • 钟表

    看古老钟表略过的痕迹, 在一念之间忽而离去, 但愿此情有所延续, 却不知, 人生似戏, 终有结局。

  • 钟表

    钟表,你可不可以不转? 你转走了我的童年, 转得让爸爸妈妈对我更加严厉, 让我的童年只剩下回忆。...

  • 钟表

    没有虫鸣的夜里摩天轮开始缓缓转动 雨中她得到了解脱不再哭泣 她望着渐渐扭曲褪色的公园浅浅笑着 把钟表摔碎在倒流的时间里

网友评论

    本文标题:钟表

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