【问题标题】:Arrows pure CSS image slider箭头纯 CSS 图像滑块
【发布时间】:2015-06-18 20:04:19
【问题描述】:

到目前为止,只有中间幻灯片的左侧有正确的箭头指向左侧,右侧的箭头指向右侧。但是当您在左侧或右侧时,我无法设法使箭头指向正确的方向。

谢谢!

http://codepen.io/anon/pen/WvZGdb

HTML

<div id="slides">
 <input type="radio" name="slider" id="slide1" class="set"/>
 <input checked type="radio" name="slider" id="slide2" class="set"/>
 <input type="radio" name="slider" id="slide3" class="set"/>

 <div class="mask">
  <div class="overflow">
   <div class="slide"><img src="../images/work.png"/></div>
   <div class="slide"><img src="../images/work.png"/></div>
   <div class="slide"><img src="../images/work.png"/></div>
  </div>
 </div>

<div id="controls" onclick="">
 <label for="slide1">1</label>
 <label for="slide2">2</label>
 <label for="slide3">3</label>
</div>
</div>
</div>

CSS

input.set { 
display:none; 
}

#slide1:checked ~ .mask .overflow { margin-left:0; }
#slide2:checked ~ .mask .overflow { margin-left:-640px; }
#slide3:checked ~ .mask .overflow { margin-left:-1280px; }

#slides { 
margin:auto; 
width:760px; 
position:relative;
background-color:#096;
}

#slides .mask { 
width:640px;
overflow:hidden;
margin:auto;
}

#slides .overflow { 
width:300%;
-webkit-transition: ease-out 0.5s; 
}

#slides .slide { 
width: 640px;
height:480px; 
float:left; 
background: silver;
}

#controls label { 
display:none; 
width:60px; 
height:60px; 
opacity:0.5; 
position:absolute; 
top:50%; 
margin-top:-30px; 
cursor:pointer; 
background:#0C0;
}

#controls label:hover { 
opacity:1; 
}

#slide1:checked ~ #controls label:nth-child(2), #slide2:checked ~ #controls label:nth-child(3), #slide3:checked ~ #controls label:nth-child(2) { right:0; display:block; }
#slide2:checked ~ #controls label:nth-child(1), #slide3:checked ~ #controls label:nth-child(2) { left:0; display:block; }

【问题讨论】:

  • 不清楚你在这里问什么。什么是“正确的导航箭头”?此外,您的 codepen 与损坏的图像非常混淆,因此它没有提供上下文。
  • 我用一些图像编辑了 codepen,使其更清晰。到目前为止,只有中间幻灯片的左侧有正确的箭头指向左侧,右侧的箭头指向右侧。但是,当您在左侧或右侧时,我无法设法使箭头指向正确的方向。
  • 您希望在最后一个 img 箭头上指向后退 ('

标签: html image css slider


【解决方案1】:

我不知道我是否正确,但我可以试试。根据我的阅读,您希望最后一张幻灯片上的箭头向后“移动”(“

这个解决方案的方法很少。

第一种方式

当它位于最后一个 div 时添加一个类,如果旋转 180 度,则只需旋转。

#slide3:checked ~ #controls label:nth-child(2) {
  transform: rotate(180deg);}

第二种方式

与第一种方式一样,您为最后一个场景添加一个类,然后用矩阵翻转它。

#slide3:checked ~ #controls label:nth-child(2) {
  transform: matrix(-1,0,0,1,0,0);}

第三条路

对我来说也许是最好的方法。您可以使用 :before 和 content:"" 将字母、图标或符号用于标签。所以标签是空的,你之前用“填充”它们。

浏览器支持

前两种方式你需要使用前缀。

  • IE > 9(IE 9 需要前缀)
  • Firefox > 3(FF
  • Chrome(Chrome
  • Safari(需要前缀)
  • Opera > 10(Opera

欲了解更多信息Can I use

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多