javascript - 使用纯 CSS 创建轮播

标签 javascript html css angularjs carousel

我正在尝试使用纯 CSS 创建一个旋转木马,它可以在当前 View 中容纳 5 个元素,并在点击 slider 时显示其余部分。

引用:Bootstrap carousel

这是我的水果 list plunker我用背景灰色创建的。我尝试将宽度设置为 50%,但无法隐藏在单击左/右箭头时不显示的元素。请帮忙..

  <div class="col-xs-12 col-sm-12  col-md-12 col-lg-12" style="
    padding-left: 0px;bottom: 10px">
         <span class="glyphicon">&#xe079;</span>
         <ul style="line-height:30px" id="nav" ng-repeat="item in fruitSlider">
            <li>
                <span class="fruit-name block" style="
                text-align: left;">{{item.view}}</span>
                <span class="mape-percent block">{{item.count}}%</span>
            </li>
        </ul>
        <span class="glyphicon">&#xe080;</span>
     </div>

最佳答案

所以这里是非常基本的简单示例,现在没有时间提供更高级的代码。 https://jsfiddle.net/maximelian/1f0dwbL9/26/

html:

<div class="leftbutton"><</div>
<div class="outer">
  <div class="div1 shown">Test</div>
  <div class="div2 right">test 2</div>
</div>
<div class="rightbutton">></div>

CSS:

.leftbutton {
  float:left;
}    
.rightbutton {
  float:left;
}    
.outer {
  float:left;
  position:relative;
  width:50px;
  height:50px;
  background-color: red;
  overflow:hidden;
}    
.shown {
  position:absolute;
  width:50px;
  left:0px;
  transition: left 1s;
  -webkit-transition: left 1s;
  -moz-transition: left 1s;
  -ms-transition: left 1s;
  background-color:green;
}    
.left {
  position:absolute;
  left:-50px;
  transition: left 1s;
  -moz-transition: left 1s;
  -ms-transition: left 1s;
  -o-transition: left 1s;
  overflow:hidden;
  background-color:grey;
}    
.right {
  position:absolute;
  left:50px;
  transition: left 1s;
  -moz-transition: left 1s;
  -ms-transition: left 1s;
  -o-transition: left 1s;
  overflow:hidden;
  background-color:grey;
}

JavaScript:

$(".leftbutton").on("click",function(){
  $(".shown").removeClass("shown").addClass("left");
  $(".right").removeClass("right").addClass("shown");
});    
$(".rightbutton").on("click",function(){
  $(".shown").removeClass("shown").addClass("right");
  $(".left").removeClass("left").addClass("shown");
});

基本上,您只需要 overflow hidden 和那些图像或任何具有绝对位置的 div 的 div 包装器。然后你可以用脚本触发左位置变化,并为动画添加一些 css 过渡。

关于javascript - 使用纯 CSS 创建轮播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52362161/

相关文章:

jquery - 用 jquery 显示 CSS 重叠 div

html - 使用 z-index 将一些对象放在后面,其他对象放在前面

javascript - 以 ECMAScript 5 及更高版本为目标时,八进制文字不可用

javascript - 如果 IE 标签未按预期工作

html - 使用 HTML5 播放 MKV 时没有声音

java - 以 HTML 显示小程序

javascript - 在浏览器中替换文件 blob?

javascript - 在处理潜在的未定义值时创建 SQL SELECT 查询的最佳实践

javascript - 将链接添加到粒子js中的点

html - Btn-group 不拉伸(stretch)表格的宽度