anime+svg实现一个可以调时间的时钟表效果代码

代码语言:html

所属分类:其他

代码描述:anime+svg实现一个可以调时间的时钟表效果代码圆套小圆旋转动画效果代码

代码标签: 可以 调时 间的 钟表 效果

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开


<!DOCTYPE html>
<html lang="en" >

<head>

  <meta charset="UTF-8">

  
  
  
  
<style>
@import url("https://fonts.googleapis.com/css?family=Barlow|Barlow+Condensed&display=swap");

* {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}
/* position the svg and div wrapping the controls one atop the other */
body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #262728;
  font-family: "Barlow", sans-serif;
}
/* have the clock describing the svg expand to cover a sizeable portion of the viewport */
svg {
  margin-top: 1rem;
  width: 60vmin;
  height: auto;
  filter: url(#shadow-large);
}
svg text {
  font-family: "Barlow Condensed", sans-serif;
}

/* display the controls side by side */
.controls {
  display: flex;
  flex-wrap: wrap;
  margin-top: 2rem;
}
/* display the button+span elements in columns */
.controls div {
  text-align: center;
  display: flex;
  flex-direction: column;
  margin: 1rem;
}
/* style the buttons with the same colors used for the clock */
.controls div button {
  border: none;
  border-radius: 50%;
  background: #ea3f3f;
  padding: 0.25rem;
  color: #fff;
  width: 48px;
  height: 48px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.5rem;
  filter: url(#shadow-large);
  margin: 0.5rem 0;
}
.controls div span {
  color: #fff;
}
</style>


</head>

<body >
  <!-- svg making up the clock -->
<svg viewBox="0 0 100 100" width="100" height="100">
    <defs>
        <!-- filters describing the shadows, applied on the larger and smaller shapes -->
        <filter id="shadow-large">
            <feDropShadow dx="0" dy="0" stdDeviation="4"/>
        </filter>
        <filter id="shadow-small">
                <feDropShadow dx="0" dy="0" stdDeviation="0.2"/>
        </filter>

        <!-- mask used to cut out a sliver of the overlaid circle -->
        <mask
            id="mask">
            <g transform="translate(50 50)">
                <!-- starting at -15, incrementing by 30 for each hour -->
                <g
                    class="hours" transform="rotate(-15)">
                    <circle
                        cx="0"
                        cy="0"
                        r="50"
                        fill="#fff">
                    </circle>
                    <path
                        d="M 0 -50 v 50 l 28.86 -50"
                        fill="#000">
                    </path>
                </g>
            </g>
        </mask>
    </defs>

    <!-- circle making up the bottom of the clock -->
    <circle
        cx="50"
        cy="50"
        r="46"
        fill="#303335">
    </circle>

    <!-- circle with the accent color, overlaid before the text elements -->
    <circle
        cx="50"
        cy="50"
        r="42"
        fill="#EA3F3F"
        filter="url(#shadow-large)">
    </circle>

    <!-- text elements, positioned from the center around the clock -->
    <g
        class="clock--face"
        font-size="8px"
        transform="translate(50 50)"
        text-anchor="middle"
        dominant-baseline="middle">
        <!-- the elements are included through the script, at intervals of 30 degrees -->
        <!--
        <text
            transform="rotate(-90) translate(35 0) rotate(90)" >
            12
        </text>

        <text
            t.........完整代码请登录后点击上方下载按钮下载查看

网友评论0