javascript - 如何制作具有简单视差效果的 Bootstrap 轮播?

标签 javascript jquery html css twitter-bootstrap

我正在使用 Bootstrap 轮播。现在它运行良好(如 bootstrap 网站所示)

我想做的是使整个 slider (包括图像、按钮、标题..)位置:固定以在向下滚动时提供简单的视差效果。

这是 jsfiddle 中的示例

$(function () {
    $('#homeCarousel').carousel({
        interval:2000,
        pause: "false"
    });
    $('#playButton').click(function () {
        $('#homeCarousel').carousel('cycle');
    });
    $('#pauseButton').click(function () {
        $('#homeCarousel').carousel('pause');
    });
});
#carouselButtons {
    margin-left: 100px;
    position: absolute;
    bottom: 0px;
}
.next_section{
  width : 100%;
  height: 500px;
  position:relative;
  background-color: blue; 
  z-index:100;
}

p{color: #FFF;}

.item{
  position:fixed;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>


<!-- Carousel -->
<div id="homeCarousel" class="carousel slide">
  <!-- Menu -->
  <ol class="carousel-indicators">
    <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
    <li data-target="#myCarousel" data-slide-to="1"></li>
    <li data-target="#myCarousel" data-slide-to="2"></li>
  </ol>
    
  <!-- Items -->
  <div class="carousel-inner">
      
      <!-- Item 1 -->
    <div class="item active">
        <img src="http://lorempixel.com/1500/600/abstract/1"/>
      <div class="container">
        <div class="carousel-caption">
          <h1>Bootstrap 3 Carousel Layout</h1>
          <p>This is an example layout with carousel that uses the Bootstrap 3 styles.</p>
          <p><a class="btn btn-lg btn-primary" href="http://getbootstrap.com">Learn More</a>
        </p></div>
      </div>
    </div>
      
      <!-- Item 2 -->
    <div class="item">
        <img src="http://lorempixel.com/1500/600/abstract/2"/>
      <div class="container">
        <div class="carousel-caption">
          <h1>Changes to the Grid</h1>
          <p>Bootstrap 3 still features a 12-column grid, but many of the CSS class names have completely changed.</p>
          <p><a class="btn btn-large btn-primary" href="#">Learn more</a></p>
        </div>
      </div>
    </div>
      
      <!-- Item 3 -->
    <div class="item">
        <img src="http://lorempixel.com/1500/600/abstract/3" />
      <div class="container">
        <div class="carousel-caption">
          <h1>Percentage-based sizing</h1>
          <p>With "mobile-first" there is now only one percentage-based grid.</p>
          <p><a class="btn btn-large btn-primary" href="#">Browse gallery</a></p>
        </div>
      </div>
    </div>
  </div>
  <!-- Controls -->
  <a class="left carousel-control" href="#myCarousel" data-slide="prev">
    <span class="icon-prev"></span>
  </a>
  <a class="right carousel-control" href="#myCarousel" data-slide="next">
    <span class="icon-next"></span>
  </a>  
  <div id="carouselButtons">
      <button id="playButton" type="button" class="btn btn-default btn-xs">
          <span class="glyphicon glyphicon-play"></span>
       </button>
      <button id="pauseButton" type="button" class="btn btn-default btn-xs">
          <span class="glyphicon glyphicon-pause"></span>
      </button>
  </div>
</div>


<div class = "next_section">
<p>
i want the slider to go under this blue area when scroll down, the blue wrapper needs to cover the whole slider ! <br>
the carousel-caption needs to be centered on the slider too and don't "move" !
</p>
</div>

请帮忙?

最佳答案

我已经解决了使用 background-img 而不是 img 标签的问题,并且我已经应用了 backgroud-attachmet:fixed

<div class="carousel-inner" role="listbox">
          <div class="item  active slideimg1">
                <div class="carousel-caption">
                    <h1>Lorem ipsus</h1>
                    <p>Etiam tellus felis, fringilla vitae dictum id, dapibus id est.</p>
                </div>
          </div>
 </div>

CSS:

.slideimg1{background-image:......;}

.carousel-inner .item
{
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;

    -webkit-background-position: center;
    -moz-background-position: center;
    -o-background-position: center;
    background-position: center;

    -webkit-background-attachment: fixed;
    -moz-background-attachment: fixed;
    -o-background-attachment: fixed;
    background-attachment: fixed;
}

关于javascript - 如何制作具有简单视差效果的 Bootstrap 轮播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34850403/

相关文章:

javascript - 如何更改 cytoscape.js 中叠加层的形状和 z 索引?

jquery - Wordpress Ajax 重新加载更新的查询变量

html - 非程序员的网站更新工具

android - 使用 Simperium 从 Android 更新 HTML 列表

javascript删除对象数组的多个值

javascript - 将文本和表单放置在彼此平行的位置(并排)- HTML

javascript - 如何从嵌套 div 标签中抓取数据并从开发工具导出到 CSV

javascript - 如何将表单中的数据正确插入到表中

javascript - 如何通过javascript从字符串日期时间中获取分钟?

javascript - 将一个 div 置于另一个 div 中心的最佳方法是什么?