CSS幻灯片。只有第二张幻灯片闪烁。仅限Chrome / Safari

时间:2015-01-17 15:10:29

标签: css css3 google-chrome webkit

出于某种原因,当我浏览幻灯片时,只有第二张幻灯片闪烁。当屏幕宽度很宽时,你可以真正注意到它。可能导致这种情况的原因是什么?

HTML

<article id=slider>

    <!-- Slider Setup -->

    <input checked type=radio name=slider id=slide1 />
    <input type=radio name=slider id=slide2 />
    <input type=radio name=slider id=slide3 />
    <input type=radio name=slider id=slide4 />


    <!-- The Slider -->

    <div id=slides>

        <div id=overflow>

            <div class=inner>

                <article>
                    <img src="http://csscience.com/responsiveslidercss3/MountainFortByBjzaba.png" />
                </article>

                <article>
                    <img src="http://csscience.com/responsiveslidercss3/MountainOutpostByBjzaba.png" />
                </article>

                <article>
                    <img src="http://csscience.com/responsiveslidercss3/CliffsByBjzaba.png" />
                </article>

                <article>
                    <img src="http://csscience.com/responsiveslidercss3/HillFortByBjzaba.png" />
                </article>

            </div> <!-- .inner -->

        </div> <!-- #overflow -->

    </div> <!-- #slides -->


    <!-- Controls and Active Slide Display -->

    <div id=controls>

        <label for=slide1></label>
        <label for=slide2></label>
        <label for=slide3></label>
        <label for=slide4></label>

    </div> <!-- #controls -->

    <div id=active>

        <label for=slide1></label>
        <label for=slide2></label>
        <label for=slide3></label>
        <label for=slide4></label>

    </div> <!-- #active -->

CSS

* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }

#slider {
    margin: 0 auto;
    text-align: center;
}

label {
    color: teal;
    cursor: pointer;
    text-decoration: none;
}

label:hover {
    color: #000 !important;
}

label, img { -moz-user-select:none;-webkit-user-select:none; }

/* Slider Setup */

input {
    display: none;
}

#slide1:checked ~ #slides .inner { margin-left:0; }
#slide2:checked ~ #slides .inner { margin-left:-100%; }
#slide3:checked ~ #slides .inner { margin-left:-200%; }
#slide4:checked ~ #slides .inner { margin-left:-300%; }
#slide5:checked ~ #slides .inner { margin-left:-400%; }

#overflow {
    width: 100%;
    overflow: hidden;
}

article img {
    width: 100%;
}

#slides .inner {
    width: 500%;
    line-height: 0;
}

#slides article {
    width: 20%;
    float: left;
}

/* Slider Styling */

/* Control Setup */

#controls {
    margin: -25% 0 0 0;
    width: 100%;
    height: 50px;
}

#controls label { 
    display: none;
    width: 50px;
    height: 50px;
    opacity: 0.3;
}

#active {
    margin: 23% 0 0;
    text-align: center;
}

#active label {
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    display: inline-block;
    width: 10px;
    height: 10px;
    background: #bbb;
}

#active label:hover {
    background: #ccc;
    border-color: #777 !important;
}

#controls label:hover {
    opacity: 0.8;
}

#slide1:checked ~ #controls label:nth-child(2), 
#slide2:checked ~ #controls label:nth-child(3), 
#slide3:checked ~ #controls label:nth-child(4), 
#slide4:checked ~ #controls label:nth-child(5), 
#slide5:checked ~ #controls label:nth-child(1) {
    background: url('http://csscience.com/responsiveslidercss3/next.png') no-repeat;
    float: right;
    margin: 0 -70px 0 0;
    display: block;
}


#slide1:checked ~ #controls label:nth-child(5),
#slide2:checked ~ #controls label:nth-child(1),
#slide3:checked ~ #controls label:nth-child(2),
#slide4:checked ~ #controls label:nth-child(3),
#slide5:checked ~ #controls label:nth-child(4) {
    background: url('http://csscience.com/responsiveslidercss3/prev.png') no-repeat;
    float: left;
    margin: 0 0 0 -70px;
    display: block;
}

#slide1:checked ~ #active label:nth-child(1),
#slide2:checked ~ #active label:nth-child(2),
#slide3:checked ~ #active label:nth-child(3),
#slide4:checked ~ #active label:nth-child(4),
#slide5:checked ~ #active label:nth-child(5) {
    background: #333;
    border-color: #333 !important;
}

/* Slider Styling */

#slides {
    margin: 45px 0 0;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    box-shadow: 1px 1px 4px #666;
    padding: 1%;
    background: #fff;
    background: rgb(252,255,244); /* Old browsers */
    background: -moz-linear-gradient(top,  rgba(252,255,244,1) 0%, rgba(219,218,201,1) 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(252,255,244,1)), color-stop(100%,rgba(219,218,201,1))); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top,  rgba(252,255,244,1) 0%,rgba(219,218,201,1) 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top,  rgba(252,255,244,1) 0%,rgba(219,218,201,1) 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top,  rgba(252,255,244,1) 0%,rgba(219,218,201,1) 100%); /* IE10+ */
    background: linear-gradient(top,  rgba(252,255,244,1) 0%,rgba(219,218,201,1) 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fcfff4', endColorstr='#dbdac9',GradientType=0 ); /* IE6-9 */
}


/* Animation */

#slides .inner {
    -webkit-transform: translateZ(0);
    -webkit-transition: all 800ms cubic-bezier(0.770, 0.000, 0.175, 1.000); 
    -moz-transition: all 800ms cubic-bezier(0.770, 0.000, 0.175, 1.000); 
    -ms-transition: all 800ms cubic-bezier(0.770, 0.000, 0.175, 1.000); 
     -o-transition: all 800ms cubic-bezier(0.770, 0.000, 0.175, 1.000); 
        transition: all 800ms cubic-bezier(0.770, 0.000, 0.175, 1.000); /* easeInOutQuart */

    -webkit-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000); 
    -moz-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000); 
    -ms-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000); 
     -o-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000); 
        transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000); /* easeInOutQuart */
}

#slider {
    -webkit-transform: translateZ(0);
    -webkit-transition: all 0.5s ease-out;
    -moz-transition: all 0.5s ease-out;
    -o-transition: all 0.5s ease-out;
    transition: all 0.5s ease-out;
}

#controls label{
    -webkit-transform: translateZ(0);
    -webkit-transition: opacity 0.2s ease-out;
    -moz-transition: opacity 0.2s ease-out;
    -o-transition: opacity 0.2s ease-out;
    transition: opacity 0.2s ease-out;
}

#slide1:checked ~ #slides article:nth-child(1) .info,
#slide2:checked ~ #slides article:nth-child(2) .info,
#slide3:checked ~ #slides article:nth-child(3) .info,
#slide4:checked ~ #slides article:nth-child(4) .info,
#slide5:checked ~ #slides article:nth-child(5) .info {
    opacity: 1;
    -webkit-transition: all 1s ease-out 0.6s;
    -moz-transition: all 1s ease-out 0.6s;
    -o-transition: all 1s ease-out 0.6s;
    transition: all 1s ease-out 0.6s;
}

.info, #controls, #slides, #active, #active label, .info h3, .desktop, .tablet, .mobile {
    -webkit-transform: translateZ(0);
    -webkit-transition: all 0.5s ease-out;
    -moz-transition: all 0.5s ease-out;
    -o-transition: all 0.5s ease-out;
    transition: all 0.5s ease-out;
}

/* Respond Options */

#desktop:checked ~ #slider {
    max-width: 960px;
}

#tablet:checked ~ #slider {
    max-width: 850px;
}

#mobile:checked ~ #slider {
    max-width: 450px;
}

#desktop:checked ~ #slider .desktop,
#tablet:checked ~ #slider .tablet,
#mobile:checked ~ #slider .mobile {
    color: #777;
    opacity: 1;
}

.desktop, .tablet, .mobile {
    display: inline-block;
    width: 60px;
    height: 60px;
    padding-top: 50px;
    opacity: 0.35;
    font-size: 12px;
}

.desktop:hover, .tablet:hover, .mobile:hover {
    opacity: 0.2;
}

.desktop {
    background: url('desktop.png') no-repeat;
}

.tablet {
    background: url('tablet.png') no-repeat;
}

.mobile {
    background: url('mobile.png') no-repeat;
}

/* Responsive Styling */

/* Tablet */

#tablet:checked ~ #slider #controls {
    margin: -25% 0 0 12%;
    width: 76%;
    height: 50px;
}

#tablet:checked ~ #slider #controls label {
    -moz-transform: scale(0.8);
    -webkit-transform: scale(0.8);
    -o-transform: scale(0.8);
    -ms-transform: scale(0.8);
    transform: scale(0.8);
}

#tablet:checked  ~ #slider #slides, #mobile:checked  ~ #slider #slides {
    padding: 1% 0;
    -webkit-border-radius: 0px;
    -moz-border-radius: 0px;
    border-radius: 0px;
}

#tablet:checked ~ #slider #active {
    margin: 22% 0 0;
}

@media only screen and (max-width: 850px) and (min-width: 450px) {

    #slider #controls {
        margin: -25% 0 0 15%;
        width: 70%;
        height: 50px;
    }

    #slider #controls label {
        -moz-transform: scale(0.8);
        -webkit-transform: scale(0.8);
        -o-transform: scale(0.8);
        -ms-transform: scale(0.8);
        transform: scale(0.8);
    }

    #slider #slides {
        padding: 1% 0;
        -webkit-border-radius: 0px;
        -moz-border-radius: 0px;
        border-radius: 0px;
    }

    #slider #active {
        margin: 22% 0 0;
    }

}

/* Mobile */

#mobile:checked ~ #slider #controls {
    margin: -28% 0 0 24%;
    width: 50%;
    height: 50px;
}

#mobile:checked ~ #slider #active {
    margin: 23% 0 0;
}

#mobile:checked ~ #slider #slides .info {
    opacity: 0 !important;
}

#mobile:checked ~ #slider #controls label {
    -moz-transform: scale(0.6);
    -webkit-transform: scale(0.6);
    -o-transform: scale(0.6);
    -ms-transform: scale(0.6);
    transform: scale(0.6);
}


@media only screen and (max-width: 450px) {

    #slider #controls {
        margin: -28% 0 0 24%;
        width: 50%;
        height: 50px;
    }

    #slider #active {
        margin: 23% 0 0;
    }

    #slider #slides {
        padding: 1% 0;
        -webkit-border-radius: 0px;
        -moz-border-radius: 0px;
        border-radius: 0px;
    }

    #slider #slides .info {
        opacity: 0 !important;
    }

    #slider #controls label {
        -moz-transform: scale(0.6);
        -webkit-transform: scale(0.6);
        -o-transform: scale(0.6);
        -ms-transform: scale(0.6);
        transform: scale(0.6);
    }

}


@media only screen and (min-width: 850px) {

    body {
        padding: 0 80px;
    }
}

小提琴:http://jsfiddle.net/twu9p4m5/

1 个答案:

答案 0 :(得分:0)

想出来。我补充说:

-webkit-perspective: 1000;
-webkit-backface-visibility: hidden;

#slide article。工作就像一个魅力。

新小提琴:http://jsfiddle.net/vz72ux34/