【发布时间】:2017-02-23 09:56:51
【问题描述】:
目标是仅使用 CSS 创建一个滑块。 对于这次尝试,我尝试使用具有“3 个部分”(颜色编码)的 200 像素 x 1500 像素图像 绝对定位为 Left: 0,默认选中的单选按钮显示图像的前 500 像素(幻灯片 1),因为包装器是 200x500 像素,溢出隐藏。 通过标签检查'slide2'的单选按钮,通过将图像定位到左侧:-500px,可以得到下一个 500px 的图像(幻灯片 2)。 暂时可以正常工作。 我遇到的问题是让图像滑动 -1000 像素,从而显示图像的最终 500 像素(幻灯片 3)。似乎当我添加第三个无线电输入和标签时,滑块中断并且其他输入不做任何事情。事实上,第一个单选按钮 css 有时似乎毫无意义,因为在图像本身上设置过渡似乎是获得“幻灯片 1”单选按钮所需效果的必要条件。
HTML:
<html>
<head>
<link rel="stylesheet" type="text/css" href="default.css"/>
</head>
<body>
<div id="wrap">
<input type="radio" id="slide1" name="radio" checked>
<input type="radio" id="slide2" name="radio">
<!--<input type="radio" id="slide3" name="radio">-->
<img src="images/slides.jpg"/>
<label for="slide1">slide1</label>
<label for="slide2">slide2</label>
<!--<label for="slide3">slide3</label>-->
</div>
</body>
</html>
CSS:
html, body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
#wrap {
width: 500px;
height: 200px;
background: #000;
color: #fff;
position: relative;
/*overflow: hidden;*/
}
img {
position: absolute;
top: 20;
left: 0;
transition: .5s ease-out;
height: 200px;
width: 1500px;
}
input[type="radio"] {
display: none;
}
#slide1:checked + img {
left: 0;
transition: .5s ease-out;
}
#slide2:checked + img {
left: -500px;
transition: .5s ease-out;
}
/*#slide3:checked + img {
left: -1500px;
transition: .5s ease-out;
}*/
感谢您的帮助!如果有一种更简单/更简单的方法可以在 CSS 中使用控件来制作滑块,我很想知道。尝试了几个我在网上找到的示例,但没有一个看起来或动画完全符合我的要求。
【问题讨论】: