icewing

简单纯css三色流动波纹效果
这个特效主要用于显示短文字,如展牌、文字公告、或者其他提示之类的。将原本平淡的文字放入动态的特效,可以给网站增添不...
扫描右侧二维码阅读全文
14
2018/09

简单纯css三色流动波纹效果

这个特效主要用于显示短文字,如展牌、文字公告、或者其他提示之类的。将原本平淡的文字放入动态的特效,可以给网站增添不少美感。

  • 此特效是很早之前在codepen中找到的,改造后在ZYFX中使用了一段时间,效果还是不错的。改造后如下图。
原版改造后
改造前改造后
  • 下面将记录一下我是如何更改的。第一次食用直接复制下方body代码、css代码的原版代码即可。

顶部标题文字

先从简单的说起,顶部标题文字添加一个p标签,然后左对齐即可。

<p style="font-size: 20px;text-align:left;padding: 5px 10px;" class="text"> ZYFX</p>

分割线

分割线的css代码如下。从中间向两边逐渐淡化,有一个过度不至于显得太过突兀,也能起到分割的作用。

//html代码
<hr class="style14">

//css代码
hr.style14 {
    border: 0;
    height: 1px;
    background-image: -webkit-linear-gradient(left, #ffffff00, rgba(255, 255, 255, 0.5), #ffffff00);
    background-image: -moz-linear-gradient(left, #ffffff00, rgba(255, 255, 255, 0.5), #ffffff00);
    background-image: -ms-linear-gradient(left, #ffffff00, rgba(255, 255, 255, 0.5), #ffffff00);
    background-image: -o-linear-gradient(left, #ffffff00, rgba(255, 255, 255, 0.5), #ffffff00);
}

一言

调用一言的接口后还需要调整整个容器的大小,不然文字会超出显示。

 <p id="hitokoto" style="font-size: 16px;padding: 5px 5px;">:D 获取中...</p>
<script>
  var xhr = new XMLHttpRequest();
  xhr.open('get', 'https://v1.hitokoto.cn');
  xhr.onreadystatechange = function () {
    if (xhr.readyState === 4) {
      var data = JSON.parse(xhr.responseText);
      var hitokoto = document.getElementById('hitokoto');
      hitokoto.innerText = data.hitokoto;
    }
  }
  xhr.send();
</script>
  • 控制容器大小的css代码在.box ,这里我只调整了高度height ,更改后还需要调整.wavemargin-top

body代码

下面是原版代码和改造后的代码,为避免重复最好将css中的 box wave -one wave -two wave -three title 重新命名。

//原版html代码
    <div class='box'>
        <div class='wave -one'></div>
        <div class='wave -two'></div>
        <div class='wave -three'></div>
        <div class='title'>Capacities</div>
    </div>

//改造后
    <div class="wavebox">
        <div class="wave -one"></div>
        <div class="wave -two"></div>
        <div class="wave -three"></div>
        <div class="wavetitle">
            <p style="font-size: 20px;text-align:left;padding: 5px 10px;" class="text"> ZYFX</p>
            <hr class="style14">
            <p id="hitokoto" style="font-size: 16px;padding: 5px 5px;">:D 获取中...</p>
        </div>
    </div>

css代码

因为每个网站引用的css都不一样,很有可能会出现样式错乱,需要根据自己的网站css代码进行相应的调整了。这里是原版的css代码和改造后的。如果你也使用的是原版hybbs模板,那么直接复制改造后的代码即可食用。

//原版css代码
html, body {
  height: 100%;
}

html {
  background: #eee;
}

body {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}

.box {
  width: 300px;
  height: 300px;
  border-radius: 5px;
  box-shadow: 0 2px 30px rgba(0, 0, 0, 0.2);
  background: #fbfcee;
  position: relative;
  overflow: hidden;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
}

.wave {
  opacity: .4;
  position: absolute;
  top: 3%;
  left: 50%;
  background: #0af;
  width: 500px;
  height: 500px;
  margin-left: -250px;
  margin-top: -250px;
  -webkit-transform-origin: 50% 48%;
          transform-origin: 50% 48%;
  border-radius: 43%;
  -webkit-animation: drift 3000ms infinite linear;
          animation: drift 3000ms infinite linear;
}

.wave.-three {
  -webkit-animation: drift 2500ms infinite linear;
          animation: drift 2500ms infinite linear;
}

.wave.-two {
  -webkit-animation: drift 5000ms infinite linear;
          animation: drift 5000ms infinite linear;
  opacity: .1;
  background: yellow;
}

.box:after {
  content: '';
  display: block;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: -webkit-linear-gradient(top, #ee88aa, rgba(221, 238, 255, 0) 80%, rgba(255, 255, 255, 0.5));
  background: linear-gradient(to bottom, #ee88aa, rgba(221, 238, 255, 0) 80%, rgba(255, 255, 255, 0.5));
  z-index: 11;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
}

.title {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  z-index: 1;
  line-height: 300px;
  text-align: center;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
  color: white;
  text-transform: uppercase;
  font-family: 'Playfair Display', serif;
  letter-spacing: .4em;
  font-size: 24px;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
  text-indent: .3em;
}

@-webkit-keyframes drift {
  from {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  from {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

@keyframes drift {
  from {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  from {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

//----------------------分割线-------------------------
//改造后的css代码
.wavebox {
    width: 300px;
    height: 340px;
    border-radius: 5px;
    background: #ffffff;
    position: relative;
    overflow: hidden;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}

.wave {
    opacity: .4;
    position: absolute;
    top: 3%;
    left: 50%;
    background: #0af;
    width: 500px;
    height: 500px;
    margin-left: -250px;
    margin-top: -200px;
    -webkit-transform-origin: 50% 48%;
    transform-origin: 50% 48%;
    border-radius: 43%;
    -webkit-animation: drift 3000ms infinite linear;
    animation: drift 3000ms infinite linear;
}

.wave.-three {
    -webkit-animation: drift 2500ms infinite linear;
    animation: drift 2500ms infinite linear;
}

.wave.-two {
    -webkit-animation: drift 5000ms infinite linear;
    animation: drift 5000ms infinite linear;
    opacity: .1;
    background: yellow;
}

.wavebox:after {
    content: '';
    display: block;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: -webkit-linear-gradient(top, #ee88aa, rgba(221, 238, 255, 0) 80%, rgba(255, 255, 255, 0.5));
    background: linear-gradient(to bottom, #ee88aa, rgba(221, 238, 255, 0) 80%, rgba(255, 255, 255, 0.5));
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
}

.wavetitle {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    z-index: 1;
    line-height: 40px;
    text-align: center;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    color: white;
    text-transform: uppercase;
    font-family: 'Playfair Display', serif;
    letter-spacing: .3em;
    font-size: 15px;
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
    text-indent: .3em;
}

hr.style14 {
    border: 0;
    height: 1px;
    background-image: -webkit-linear-gradient(left, #ffffff00, rgba(255, 255, 255, 0.5), #ffffff00);
    background-image: -moz-linear-gradient(left, #ffffff00, rgba(255, 255, 255, 0.5), #ffffff00);
    background-image: -ms-linear-gradient(left, #ffffff00, rgba(255, 255, 255, 0.5), #ffffff00);
    background-image: -o-linear-gradient(left, #ffffff00, rgba(255, 255, 255, 0.5), #ffffff00);
}

@-webkit-keyframes drift {
    from {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    from {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

@keyframes drift {
    from {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    from {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

更改大致如下:

  1. 去除一些不必要的css代码
  2. 调整wavebox的height
  3. 调整wave的margin-top
  4. 调整title的font-size
最后修改:2018 年 09 月 14 日 08 : 28 AM
生活需要一些仪式感,比如手冲一杯咖啡:)

4 条评论

  1. 查海生

    能不能放到别的网站去呢

    1. icewing
      @查海生

      为什么你的评论不会显示呢?OωO

    2. icewing
      @查海生

      可以啊,调整一下css代码就行了。

  2. gay

    不错

发表评论