如何每隔一段时间移动CSS滑块?

时间:2018-01-29 20:40:35

标签: html css

我有以下代码,我目前正在努力:



<!DOCTYPE html>
<html >

<head>

 
		<style type="text/css">
@import url(https://fonts.googleapis.com/css?family=Varela+Round);

.slides {
  top: 0
  px;
    width: 100%;
    height: 840px;
    display: block;
    margin: 0 auto;
    position: relative;
}

.slides * {
    user-select: none;
    -ms-user-select: none;
    -moz-user-select: none;
    -khtml-user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
}

.slides input { display: none; }

.slide-container { display: block; }

.slide {
    top: 0;
    opacity: 0;
    width: 100%;
    min-height: 100%;
    display: block;
    position: absolute;

    transform: scale(1);

    transition: all .7s ease-in-out;
}

.slide img {
    width: 100%;
    height: 100%;
}


.nav label {
    width: 200px;
    height: 100%;
    display: none;
    position: absolute;

	  opacity: 0;
    z-index: 9;
    cursor: pointer;

    transition: opacity .2s;

    color: rgb(255,133,102);
    font-size: 156pt;
    text-align: center;
    line-height: 380%;
    font-family: "Varela Round", sans-serif;
    background-color: rgba(255, 255, 255, .3);
    text-shadow: 0px 0px 15px rgb(119, 119, 119);
}

.slide:hover + .nav label { opacity: 0.5; }

.nav label:hover { opacity: 1; }

.nav .next { right: 0; }

input:checked + .slide-container  .slide {
    opacity: 1;

    transform: scale(1);

    transition: opacity 1s ease-in-out;
    
}

input:checked + .slide-container .nav label { display: block; }

.nav-dots {
	width: 100%;
	bottom: 9px;
	height: 11px;
	left:90px;
	display: block;
	position: absolute;
	text-align: center;
}

.nav-dots .nav-dot {
	top: -5px;
	width: 11px;
	height: 11px;
	margin: 0 4px;
	position: relative;
	border-radius: 100%;
	display: inline-block;
	background-color: rgba(255, 0, 0, 0.6);
}

.nav-dots .nav-dot:hover {
	cursor: pointer;
	background-color: rgba(255, 0, 0, 0.8);
}

input#img-1:checked ~ .nav-dots label#img-dot-1,
input#img-2:checked ~ .nav-dots label#img-dot-2,
input#img-3:checked ~ .nav-dots label#img-dot-3,
input#img-4:checked ~ .nav-dots label#img-dot-4,
input#img-5:checked ~ .nav-dots label#img-dot-5,
input#img-6:checked ~ .nav-dots label#img-dot-6 {
	background: rgba(255, 0, 0, 1);
}
}

</style>
</head>
<body>
<ul class="slides">
    <input type="radio" name="radio-btn" id="img-1" checked />
    <li class="slide-container" >
		<div class="slide">
			<img src="https://cdn.shopify.com/s/files/1/9999/9999/files/Pulpbar_presentation_slide_01.jpg" />
        </div>
		<div class="nav">
			<label for="img-6" class="prev">&#x2039;</label>
			<label for="img-2" class="next">&#x203a;</label>
		</div>
    </li>

    <input type="radio" name="radio-btn" id="img-2" />
    <li class="slide-container">
        <div class="slide">
          <img src="https://cdn.shopify.com/s/files/1/9999/9999/files/ice2.jpg" />
        </div>
		<div class="nav">
			<label for="img-1" class="prev">&#x2039;</label>
			<label for="img-3" class="next">&#x203a;</label>
		</div>
    </li>

    <input type="radio" name="radio-btn" id="img-3" />
    <li class="slide-container">
        <div class="slide">
          <img src="" />
        </div>
		<div class="nav">
			<label for="img-2" class="prev">&#x2039;</label>
			<label for="img-4" class="next">&#x203a;</label>
		</div>
    </li>

    <input type="radio" name="radio-btn" id="img-4" />
    <li class="slide-container">
        <div class="slide">
          <img src="" />
        </div>
		<div class="nav">
			<label for="img-3" class="prev">&#x2039;</label>
			<label for="img-5" class="next">&#x203a;</label>
		</div>
    </li>

    <input type="radio" name="radio-btn" id="img-5" />
    <li class="slide-container">
        <div class="slide">
          <img src="" />
        </div>
		<div class="nav">
			<label for="img-4" class="prev">&#x2039;</label>
			<label for="img-6" class="next">&#x203a;</label>
		</div>
    </li>

    <input type="radio" name="radio-btn" id="img-6" />
    <li class="slide-container">
        <div class="slide">
          <img src="" />
        </div>
		<div class="nav">
			<label for="img-5" class="prev">&#x2039;</label>
			<label for="img-1" class="next">&#x203a;</label>
		</div>
    </li>

    <li class="nav-dots">
      <label for="img-1" class="nav-dot" id="img-dot-1"></label>
      <label for="img-2" class="nav-dot" id="img-dot-2"></label>
      <label for="img-3" class="nav-dot" id="img-dot-3"></label>
      <label for="img-4" class="nav-dot" id="img-dot-4"></label>
      <label for="img-5" class="nav-dot" id="img-dot-5"></label>
      <label for="img-6" class="nav-dot" id="img-dot-6"></label>
    </li>
</ul>

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

我想在一定时间内移动到下一个滑块。 .nav标签似乎是感兴趣的领域,但遗憾的是我无法触发它。任何想法如何工作或任何有关阅读内容的建议?

1 个答案:

答案 0 :(得分:1)

由于该问题的讨论有些广泛,以下是您的选择的摘要。

VOCABULARY / USE CASE

这是我经常与自己斗争的事情 - &gt;用正确的术语命名技术细节。在你的情况下,你询问了带事件的滑块,它通常是一个输入元素,类似<input type="range">,但实际上你的意思是幻灯片&#39;。这让一些用户感到困惑,他们离开了这个帖子。但无论如何,在发布问题之前,总是先尝试研究您的用例,如果您在其下面获得与语言相关的评论,请相应地进行更新。很公平,我们现在都知道这个问题是关于css幻灯片放映,或者其他人会称之为“旋转木马”。此外,您可以固定一些图像以建议您的代码所需的结果,以避免无聊的解释。

PURE CSS

您已要求进行纯CSS幻灯片演示。这可以做到并且经常进行。 In this blog post您可以看到一些您可以轻松学习甚至直接进入代码的臭名昭着的例子。既然你的问题和评论表明你不是真正的高级程序员,我会建议你先研究一般的css,然后再研究幻灯片的例子。

考虑现成的元素

我不确定JS在你身边的问题是什么,但听起来你并不是故意避免使用JS。如果你从编码开始,你只想带一些页面。您可以更轻松地使用某种预先设置的预编码组件库,这些组件只是在页面中实现的。这些现成的组件有很多,通常称为“材料”,例如Angular Material。可能最受欢迎的是Bootstrap - &gt; here is Bootstrap's carousel example