如何让我的CSS幻灯片自动播放?

时间:2015-03-05 18:25:22

标签: css slideshow autoplay

我正在尝试制作在页面打开时自动播放的幻灯片以及导航工具。到目前为止,我有导航子弹,但无法获得适合自动播放的代码。关于我如何做到这一点有什么建议吗?

* { margin: 0; padding: 0; }

body {background-color:#666;}
h1 {color:#333; text-shadow:1px 1px #999; font-size:40px; font-family:Archivo Narrow; margin:40px; text-align:center;}
.slider {
    display: block;
    height: 320px;
    min-width: 260px;
    max-width: 640px;
    margin: auto;
    margin-top: 20px;
    position: relative;
}

.sliderinner {
    width: 100%;
    height: 100%;
    overflow: hidden;
    position: relative;
}

.sliderinner>ul {
    list-style: none;
    height: 100%;
    width: 500%;
    overflow: hidden;
    position: relative;
    left: 0px;
    -webkit-transition: left .8s cubic-bezier(0.77, 0, 0.175, 1);
    -moz-transition: left .8s cubic-bezier(0.77, 0, 0.175, 1);
    -o-transition: left .8s cubic-bezier(0.77, 0, 0.175, 1);
    transition: left .8s cubic-bezier(0.77, 0, 0.175, 1);
}

.sliderinner>ul>li {
    width: 20%;
    height: 320px;
    float: left;
    position: relative;
}

.sliderinner>ul>li>img {
    margin: auto;
    height: 100%;
}

.slider input[type=radio] {
    position: absolute;
    left: 50%;
    bottom: 15px;
    z-index: 100;
    visibility: hidden;
}

.slider label {
    position: absolute;
    left: 50%;
    bottom: -45px;
    z-index: 100;
    width: 12px;
    height: 12px;
    background-color:#ccc;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    border-radius: 50%;
    cursor: pointer;
    -webkit-box-shadow: 0px 0px 3px rgba(0,0,0,.8);
    -moz-box-shadow: 0px 0px 3px rgba(0,0,0,.8);
    box-shadow: 0px 0px 3px rgba(0,0,0,.8);
    -webkit-transition: background-color .2s;
    -moz-transition: background-color .2s;
    -o-transition: background-color .2s;
    transition: background-color .2s;
}

.slider input[type=radio]#control1:checked~label[for=control1] { background-color: #333; }
.slider input[type=radio]#control2:checked~label[for=control2] { background-color: #333; }
.slider input[type=radio]#control3:checked~label[for=control3] { background-color: #333; }
.slider input[type=radio]#control4:checked~label[for=control4] { background-color: #333; }
.slider input[type=radio]#control5:checked~label[for=control5] { background-color: #333; }
.slider label[for=control1] { margin-left: -36px }
.slider label[for=control2] { margin-left: -18px }
.slider label[for=control4] { margin-left: 18px }
.slider label[for=control5] { margin-left: 36px }
.slider input[type=radio]#control1:checked~.sliderinner>ul { left: 0 }
.slider input[type=radio]#control2:checked~.sliderinner>ul { left: -100% }
.slider input[type=radio]#control3:checked~.sliderinner>ul { left: -200% }
.slider input[type=radio]#control4:checked~.sliderinner>ul { left: -300% }
.slider input[type=radio]#control5:checked~.sliderinner>ul { left: -400% }

.description {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    font-family:Archivo Narrow;
    z-index: 1000;
}
.description-text {
    background-color: rgba(0,0,0,.8);
    padding:10px;
    top: 0;
    z-index: 4;
    -webkit-transition: opacity .2s;
    -moz-transition: opacity .2s;
    -o-transition: opacity .2s;
    transition: opacity .2s;
    color: #fff;
}
<body>

   <div class="slider"> 
        <input type="radio" id="control1" name="controls" checked="checked"/>
        <label for="control1"></label>
        <input type="radio" id="control2" name="controls"/>
        <label for="control2"></label>
        <input type="radio" id="control3" name="controls"/>
        <label for="control3"></label>
        <input type="radio" id="control4" name="controls"/>
        <label for="control4"></label>
        <input type="radio" id="control5" name="controls"/>
        <label for="control5"></label> 
        <div class="sliderinner">
            <ul>
                <li id="slide-one">
                    <img src="images/1.jpg" />
                    <div class="description">
 
                        <div class="slide-desc">
              	<h2>Title of Slide 1</h2>
		<p>Caption/Description</p>

                        </div>
                    </div>
                </li>
                <li id="slide-2">
                    <img src="images/2.jpg" />
                    <div class="description">

                        <div class="slide-desc">
               <h2>Title of Slide 2</h2>
		<p>Caption/Description</p>>
                        </div>
                    </div>
                </li>
                <li id="slide-3">
                    <img src="images/3.jpg" />
                    <div class="description">
  
                        <div class="slide-desc">
              <h2>Title of Slide 3</h2>
		<p>Caption/Description</p>
                        </div>
                    </div>
                </li>
                <li id="slide-4">
                    <img src="images/4.jpg" />
                    <div class="description">
     
                        <div class="slide-desc">
                <h2>Title of Slide 4</h2>
		<p>Caption/Description</p>
                        </div>
                    </div>
                </li>
                <li id="slide-5">
                    <img src="images/5.jpg" />
                    <div class="description">

                        <div class="slide-desc">
                  <h2>Title of Slide 5</h2>
		<p>Caption/Description</p>
                        </div>
                    </div>
                </li>
            </ul>
        </div>
    </div>

    
</body>

1 个答案:

答案 0 :(得分:0)

你的css中有转换,但除非你使用jQuery或其他一些javascript来改变元素的类,否则你永远不会让动画工作。

我建议使用Keyframes进行动画制作。

http://www.w3schools.com/cssref/css3_pr_animation-keyframes.asp