如何使用图像阻止交叉渐变背景中的文本/表单?

时间:2018-03-28 15:02:00

标签: html css html5 forms css3

在这个认证页面中,我想要在3秒内完成5张图像的背景,它可以工作,但我的身份验证表单出现在每个图像之间,并在其他图像出现时消失。

here the Fiddle with my html and css只是为了更好地向您展示代码,它不会在那里工作,因为我的本地路径中有图像。

HTML:

<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1"/>
</head>
<body>

<div class="center">
    <h1>Benvenuto!</h1>
    <h3>Accedi con le tue credenziali</h3>
</div>

<form style="background-color: white">
    <div class="group">
        <input [(ngModel)]="user.email" name="email" type="email"><span class="highlight"></span><span
            class="bar"></span>
        <label>Email</label>
    </div>
    <div class="group">
        <input [(ngModel)]="user.password" name="password" type="password"><span
            class="highlight"></span><span
            class="bar"></span>
        <label>Password</label>
    </div>
    <button (click)="signin()" type="button" class="button buttonBlue">Accedi
        <div class="ripples buttonRipples"><span class="ripplesCircle"></span>
        </div>
    </button>
</form>
<div class="crossfade">
    <figure></figure>
    <figure></figure>
    <figure></figure>
    <figure></figure>
    <figure></figure>
</div>




</body>
</html>

CSS:

.crossfade > figure {
    animation: imageAnimation 15s linear infinite 0s;
    backface-visibility: hidden;
    background-size: cover;
    background-position: center center;
    color: transparent;
    height: 100%;
    left: 0px;
    opacity: 0;
    position: fixed;
    top: 0px;
    width: 100%;
    z-index: 0;
}

.crossfade > figure:nth-child(1) { background-image: url('../../../img/login/bath-bathroom-candlelight-3188.jpg'); }

.crossfade > figure:nth-child(2) {
    animation-delay: 3s;
    background-image: url('../../../img/login/bath-blur-brush-275765.jpg');
}

.crossfade > figure:nth-child(3) {
    animation-delay: 6s;
    background-image: url('../../../img/login/beauty-face-massage-56884.jpg');
}

.crossfade > figure:nth-child(4) {
    animation-delay: 9s;
    background-image: url('../../../img/login/bed-bedroom-blanket-275845.jpg');
}

.crossfade > figure:nth-child(5) {
    animation-delay: 12s;
    background-image: url('../../../img/login/body-massage-relax-7700.jpg');
}

@keyframes
imageAnimation {  0% {
    animation-timing-function: ease-in;
    opacity: 0;
}
    8% {
        animation-timing-function: ease-out;
        opacity: 1;
    }
    17% {
        opacity: 1
    }
    25% {
        opacity: 0
    }
    100% {
        opacity: 0
    }
}



* { box-sizing:border-box; }

body {
    font-family: Helvetica;
    background: #eee;
    -webkit-font-smoothing: antialiased;
}

hgroup {
    text-align:center;
    margin-top: 4em;
}

h1, h3 { font-weight: 300; }

h1 { color: #636363; }

h3 { color: #4a89dc; }
.center{

    width: 380px;
    margin: 4em auto;
    padding: 3em 2em 2em 2em;
}
form {
    width: 380px;
    margin: 4em auto;
    padding: 3em 2em 2em 2em;
    background: #fafafa;
    border: 1px solid #ebebeb;
    box-shadow: rgba(0,0,0,0.14902) 0px 1px 1px 0px,rgba(0,0,0,0.09804) 0px 1px 2px 0px;
}

.group {
    position: relative;
    margin-bottom: 45px;
}

input {
    font-size: 18px;
    padding: 10px 10px 10px 5px;
    -webkit-appearance: none;
    display: block;
    background: #fafafa;
    color: #636363;
    width: 100%;
    border: none;
    border-radius: 0;
    border-bottom: 1px solid #757575;
}

input:focus { outline: none; }


/*/* Label */

label {
    color: #999;
    font-size: 18px;
    font-weight: normal;
    position: absolute;
    pointer-events: none;
    left: 5px;
    top: 10px;
    transition: all 0.2s ease;
}


/*/* active */

input:focus ~ label, input.used ~ label {
    top: -20px;
    transform: scale(.75); left: -2px;
    /* font-size: 14px; */
    color: #4a89dc;
}


/*/* Underline */

.bar {
    position: relative;
    display: block;
    width: 100%;
}

.bar:before, .bar:after {
    content: '';
    height: 2px;
    width: 0;
    bottom: 1px;
    position: absolute;
    background: #4a89dc;
    transition: all 0.2s ease;
}

.bar:before { left: 50%; }

.bar:after { right: 50%; }


/* active */

input:focus ~ .bar:before, input:focus ~ .bar:after { width: 50%; }


/* Highlight */

.highlight {
    position: absolute;
    height: 60%;
    width: 100px;
    top: 25%;
    left: 0;
    pointer-events: none;
    opacity: 0.5;
}


/* active */

input:focus ~ .highlight {
    animation: inputHighlighter 0.3s ease;
}


/* Animations */

@keyframes inputHighlighter {
    from { background: #4a89dc; }
    to  { width: 0; background: transparent; }
}


/* Button */

.button {
    position: relative;
    display: inline-block;
    padding: 12px 24px;
    margin: .3em 0 1em 0;
    width: 100%;
    vertical-align: middle;
    color: #fff;
    font-size: 16px;
    line-height: 20px;
    -webkit-font-smoothing: antialiased;
    text-align: center;
    letter-spacing: 1px;
    background: transparent;
    border: 0;
    border-bottom: 2px solid #3160B6;
    cursor: pointer;
    transition: all 0.15s ease;
}
.button:focus { outline: 0; }


/* Button modifiers */

.buttonBlue {
    background: #4a89dc;
    text-shadow: 1px 1px 0 rgba(39, 110, 204, .5);
}

.buttonBlue:hover { background: #357bd8; }


/* Ripples container */

.ripples {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: transparent;
}


/* Ripples circle */

.ripplesCircle {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.25);
}

.ripples.is-active .ripplesCircle {
    animation: ripples .4s ease-in;
}


/* Ripples animation */

@keyframes ripples {
    0% { opacity: 0; }

    25% { opacity: 1; }

    100% {
        width: 200%;
        padding-bottom: 200%;
        opacity: 0;
    }
}

footer { text-align: center; }

footer p {
    color: #888;
    font-size: 13px;
    letter-spacing: .4px;
}

footer a {
    color: #4a89dc;
    text-decoration: none;
    transition: all .2s ease;
}

footer a:hover {
    color: #666;
    text-decoration: underline;
}

footer img {
    width: 80px;
    transition: all .2s ease;
}

footer img:hover { opacity: .83; }

footer img:focus , footer a:focus { outline: none; }


<!-- slideshow bckg -->
* {
    padding: 0;
    margin: 0
}

1 个答案:

答案 0 :(得分:2)

一个解决方案是在你的交叉渐变中添加一个div部分! 你只需要在你的CSS中添加div部分并给div一个显示和消失的机会

&#13;
&#13;
.crossfade > figure {
    animation: imageAnimation 18s linear infinite 0s;
    backface-visibility: hidden;
    background-size: cover;
    background-position: center center;
    color: transparent;
    height: 100%;
    left: 0px;
    opacity: 0;
    position: fixed;
    top: 0px;
    width: 100%;
    z-index: 0;
}
.crossfade > div {
    animation: imageAnimation 15s linear infinite 0s;
    backface-visibility: hidden;
    background-size: cover;
    background-position: center center;
    color: transparent;
    height: 100%;
    left: 0px;
    opacity: 0;
    position: fixed;
    top: 0px;
    width: 100%;
    z-index: 0;
}

.crossfade > figure:nth-child(1) { background-image: url('https://www.uncommongoods.com/images/items/26500/26530_1_1200px.jpg'); }

.crossfade > figure:nth-child(2) {
    animation-delay: 3s;
    background-image: url('https://img1.southernliving.timeinc.net/sites/default/files/styles/4_3_horizontal_-_1200x900/public/image/2018/01/main/duck.jpg?itok=CHWo5-3d&1515187196');
}

.crossfade > figure:nth-child(3) {
    animation-delay: 6s;
    background-image: url('https://images-eu.ssl-images-amazon.com/images/I/41sfz8dKX1L._SL500_AC_SS350_.jpg');
}

.crossfade > figure:nth-child(4) {
    animation-delay: 9s;
    background-image: url('https://deltawaterfowl.org/wp-content/uploads/2017/04/mallard-web.jpg');
}

.crossfade > figure:nth-child(5) {
    animation-delay: 12s;
    background-image: url('https://upload.wikimedia.org/wikipedia/commons/2/24/Male_mallard_duck_2.jpg');
}

.crossfade > div:nth-child(6) {
    animation-delay: 15s;
}

@keyframes
imageAnimation {  0% {
    animation-timing-function: ease-in;
    opacity: 0;
}
    8% {
        animation-timing-function: ease-out;
        opacity: 1;
    }
    17% {
        opacity: 1
    }
    25% {
        opacity: 0
    }
    100% {
        opacity: 0
    }
}



* { box-sizing:border-box; }

body {
    font-family: Helvetica;
    background: #eee;
    -webkit-font-smoothing: antialiased;
}

hgroup {
    text-align:center;
    margin-top: 4em;
}

h1, h3 { font-weight: 300; }

h1 { color: #636363; }

h3 { color: #4a89dc; }
.center{

    width: 380px;
    margin: 4em auto;
    padding: 3em 2em 2em 2em;
}
form {
    width: 380px;
    margin: 4em auto;
    padding: 3em 2em 2em 2em;
    background: #fafafa;
    border: 1px solid #ebebeb;
    box-shadow: rgba(0,0,0,0.14902) 0px 1px 1px 0px,rgba(0,0,0,0.09804) 0px 1px 2px 0px;
}

.group {
    position: relative;
    margin-bottom: 45px;
}

input {
    font-size: 18px;
    padding: 10px 10px 10px 5px;
    -webkit-appearance: none;
    display: block;
    background: #fafafa;
    color: #636363;
    width: 100%;
    border: none;
    border-radius: 0;
    border-bottom: 1px solid #757575;
}

input:focus { outline: none; }


/*/* Label */

label {
    color: #999;
    font-size: 18px;
    font-weight: normal;
    position: absolute;
    pointer-events: none;
    left: 5px;
    top: 10px;
    transition: all 0.2s ease;
}


/*/* active */

input:focus ~ label, input.used ~ label {
    top: -20px;
    transform: scale(.75); left: -2px;
    /* font-size: 14px; */
    color: #4a89dc;
}


/*/* Underline */

.bar {
    position: relative;
    display: block;
    width: 100%;
}

.bar:before, .bar:after {
    content: '';
    height: 2px;
    width: 0;
    bottom: 1px;
    position: absolute;
    background: #4a89dc;
    transition: all 0.2s ease;
}

.bar:before { left: 50%; }

.bar:after { right: 50%; }


/* active */

input:focus ~ .bar:before, input:focus ~ .bar:after { width: 50%; }


/* Highlight */

.highlight {
    position: absolute;
    height: 60%;
    width: 100px;
    top: 25%;
    left: 0;
    pointer-events: none;
    opacity: 0.5;
}


/* active */

input:focus ~ .highlight {
    animation: inputHighlighter 0.3s ease;
}


/* Animations */

@keyframes inputHighlighter {
    from { background: #4a89dc; }
    to 	{ width: 0; background: transparent; }
}


/* Button */

.button {
    position: relative;
    display: inline-block;
    padding: 12px 24px;
    margin: .3em 0 1em 0;
    width: 100%;
    vertical-align: middle;
    color: #fff;
    font-size: 16px;
    line-height: 20px;
    -webkit-font-smoothing: antialiased;
    text-align: center;
    letter-spacing: 1px;
    background: transparent;
    border: 0;
    border-bottom: 2px solid #3160B6;
    cursor: pointer;
    transition: all 0.15s ease;
}
.button:focus { outline: 0; }


/* Button modifiers */

.buttonBlue {
    background: #4a89dc;
    text-shadow: 1px 1px 0 rgba(39, 110, 204, .5);
}

.buttonBlue:hover { background: #357bd8; }


/* Ripples container */

.ripples {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: transparent;
}


/* Ripples circle */

.ripplesCircle {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.25);
}

.ripples.is-active .ripplesCircle {
    animation: ripples .4s ease-in;
}


/* Ripples animation */

@keyframes ripples {
    0% { opacity: 0; }

    25% { opacity: 1; }

    100% {
        width: 200%;
        padding-bottom: 200%;
        opacity: 0;
    }
}

footer { text-align: center; }

footer p {
    color: #888;
    font-size: 13px;
    letter-spacing: .4px;
}

footer a {
    color: #4a89dc;
    text-decoration: none;
    transition: all .2s ease;
}

footer a:hover {
    color: #666;
    text-decoration: underline;
}

footer img {
    width: 80px;
    transition: all .2s ease;
}

footer img:hover { opacity: .83; }

footer img:focus , footer a:focus { outline: none; }


<!-- slideshow bckg -->
* {
    padding: 0;
    margin: 0
}
&#13;
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1"/>
</head>
<body>




<div class="crossfade">

    <figure></figure>
    <figure></figure>
    <figure></figure>
    <figure></figure>
    <figure></figure>
    <div class="center">
    <h1>Benvenuto!</h1>
    <h3>Accedi con le tue credenziali</h3>
    </div>
</div>




</body>
</html>
&#13;
&#13;
&#13;

有它并且好运:)