发布时间: 阅读量

ghost——封面背景及字体特效

文字特效

  <div class="center-text glitch is-glitching Ubuntu-font" 
       data-text="{{@site.description}}">
                {{#unless @member}}
                {{#if @custom.email_signup_text}}
                {{@custom.email_signup_text}}
                {{else}}
                {{@site.description}}
                {{/if}}
                {{else}}
                {{@site.description}}
                {{/unless}}
            </div>

注意类名
css代码

 .glitch {
        position: relative;
        color: #fff;
        mix-blend-mode: lighten
    }

    .glitch:before,
    .glitch:after {
        content: attr(data-text);
        position: absolute;
        top: 0;
        width: 100%;
        background: rgba(0, 0, 0, 0);
        clip: rect(0, 0, 0, 0)
    }

    .glitch:before {
        left: -1px;
        text-shadow: 1px 0 #ff3f1a;
    }

    .glitch:after {
        left: 1px;
        text-shadow: -1px 0 #00a7e0
    }

    .glitch:hover:before {
        text-shadow: 4px 0 #ff3f1a;
        animation: glitch-loop-1 .8s infinite ease-in-out alternate-reverse
    }

    .glitch:hover:after {
        text-shadow: -5px 0 #00a7e0;
        animation: glitch-loop-2 .8s infinite ease-in-out alternate-reverse
    }

    @-webkit-keyframes glitch-loop-1 {
        0% {
            clip: rect(36px, 9999px, 9px, 0)
        }

        25% {
            clip: rect(25px, 9999px, 99px, 0)
        }

        50% {
            clip: rect(50px, 9999px, 102px, 0)
        }

        75% {
            clip: rect(30px, 9999px, 92px, 0)
        }

        100% {
            clip: rect(91px, 9999px, 98px, 0)
        }
    }

    @keyframes glitch-loop-1 {
        0% {
            clip: rect(36px, 9999px, 9px, 0)
        }

        25% {
            clip: rect(25px, 9999px, 99px, 0)
        }

        50% {
            clip: rect(50px, 9999px, 102px, 0)
        }

        75% {
            clip: rect(30px, 9999px, 92px, 0)
        }

        100% {
            clip: rect(91px, 9999px, 98px, 0)
        }
    }

    @-webkit-keyframes glitch-loop-2 {
        0% {
            top: -1px;
            left: 1px;
            clip: rect(65px, 9999px, 119px, 0)
        }

        25% {
            top: -6px;
            left: 4px;
            clip: rect(79px, 9999px, 19px, 0)
        }

        50% {
            top: -3px;
            left: 2px;
            clip: rect(68px, 9999px, 11px, 0)
        }

        75% {
            top: 0;
            left: -4px;
            clip: rect(95px, 9999px, 53px, 0)
        }

        100% {
            top: -1px;
            left: -1px;
            clip: rect(31px, 9999px, 149px, 0)
        }
    }

    @keyframes glitch-loop-2 {
        0% {
            top: -1px;
            left: 1px;
            clip: rect(65px, 9999px, 119px, 0)
        }

        25% {
            top: -6px;
            left: 4px;
            clip: rect(79px, 9999px, 19px, 0)
        }

        50% {
            top: -3px;
            left: 2px;
            clip: rect(68px, 9999px, 11px, 0)
        }

        75% {
            top: 0;
            left: -4px;
            clip: rect(95px, 9999px, 53px, 0)
        }

        100% {
            top: -1px;
            left: -1px;
            clip: rect(31px, 9999px, 149px, 0)
        }
    }

    *:before,
    *:after {
        box-sizing: inherit;
    }




    /* latin */
    @font-face {
        font-family: 'Ubuntu';
        font-style: normal;
        font-weight: 700;
        src: url(https://fonts.gstatic.com/s/ubuntu
        /v20/4iCv6KVjbNBYlgoCxCvjsGyNPYZvgw.woff2) format('woff2');
        unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, 
        U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, 
        U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF,
        U+FFFD;
    }

    .Ubuntu-font {
        font-family: 'Ubuntu';
    }

    h1 {
        display: block;
        font-size: 2em;
        margin-block-start: 0.67em;
        margin-block-end: 0.67em;
        margin-inline-start: 0px;
        margin-inline-end: 0px;
        font-weight: bold;
    }

    .center-text {
        margin: auto;
        font-family: 'Ubuntu';
        font-size: 80px;
        text-transform: uppercase;
        white-space: nowrap;
    }

封面蒙版效果

<div class="headertop filter-dot" style="height: auto;">
</div>

图片元素外层 包了一层div
css代码

.headertop:before {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 3;
        background-attachment: fixed;
    }


    .headertop.filter-undertint:before {
        background-color: rgba(255, 255, 255, .3)
    }

    .headertop.filter-dim:before {
        background-color: rgba(0, 0, 0, .3)
    }

    .headertop.filter-grid:before {
        background-image: url(https://jsdelivr.2heng.xin/gh/
        moezx/cdn@3.1.9/img/Sakura/images/grid.png)
    }

    .headertop.filter-dot:before {
        background-image: url(https://jsdelivr.2heng.xin/gh/moezx/
        cdn@3.1.9/img/Sakura/images/dot.gif);
    }

    @media (max-width: 860px) {
        .headertop.filter-dot:before {
            /* background-image:url(https://jsdelivr.2heng.xin/gh/
            moezx/cdn@3.1.9/img/Sakura/images/grid.png); */
        }
    }