Home > Web Front-end > CSS Tutorial > A Full-screen Bootstrap Carousel with Random Initial Image

A Full-screen Bootstrap Carousel with Random Initial Image

尊渡假赌尊渡假赌尊渡假赌
Release: 2025-02-15 10:06:12
Original
1086 people have browsed it

A Full-screen Bootstrap Carousel with Random Initial Image

This article demonstrates building two simple Bootstrap carousel extensions: a full-screen slideshow and a carousel with a randomized initial slide. We'll start with a basic carousel and then enhance it.

Key Concepts:

  • Full-Screen Carousel: Achieved using custom jQuery to dynamically adjust carousel item heights to match the window height, and setting background images and colors. A "full-screen" CSS class handles background styling.
  • Randomized Initial Slide: Determines the total number of slides, generates a random number, and then applies the "active" class to the corresponding slide and indicator.

Building the Basic Carousel:

Bootstrap provides the core carousel structure. Each image includes a data-color attribute for fallback background color if image loading fails:

<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
  <ol class="carousel-indicators">
    <li data-target="https://www.php.cn/link/de1d5674932fce63c24dc80f6f1ffe9f" data-slide-to="0"></li>
    <li data-target="https://www.php.cn/link/de1d5674932fce63c24dc80f6f1ffe9f" data-slide-to="1"></li>
    <li data-target="https://www.php.cn/link/de1d5674932fce63c24dc80f6f1ffe9f" data-slide-to="2"></li>
  </ol>
  <div class="carousel-inner">
    <div class="carousel-item">
      <img src="/static/imghw/default1.png"  data-src="https://img.php.cn/upload/article/000/000/000/173958517524890.jpg"  class="lazy" alt="A Full-screen Bootstrap Carousel with Random Initial Image " />
      <div class="carousel-caption d-none d-md-block">
        <h5>First Image</h5>
      </div>
    </div>
    <div class="carousel-item">
      <!-- ... more slides ... -->
    </div>
    <div class="carousel-item">
      <!-- ... more slides ... -->
    </div>
  </div>
  <a class="carousel-control-prev" href="https://www.php.cn/link/de1d5674932fce63c24dc80f6f1ffe9f" role="button" data-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="carousel-control-next" href="https://www.php.cn/link/de1d5674932fce63c24dc80f6f1ffe9f" role="button" data-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>
Copy after login

JavaScript initializes the carousel, setting the interval and disabling pausing:

$('.carousel').carousel({
  interval: 6000,
  pause: false
});
Copy after login

Creating a Full-Screen Slideshow:

This enhancement uses custom jQuery:

let $item = $('.carousel-item');
let $wHeight = $(window).height();

$item.height($wHeight);
$item.addClass('full-screen');

$('.carousel img').each(function() {
  let $src = $(this).attr('src');
  let $color = $(this).attr('data-color');
  $(this).parent().css({
    'background-image': 'url(' + $src + ')',
    'background-color': $color
  });
  $(this).remove();
});

$(window).on('resize', function() {
  $wHeight = $(window).height();
  $item.height($wHeight);
});
Copy after login

And CSS:

.full-screen {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
Copy after login

This code iterates through images, sets background images and colors on their parent containers, removes the <img alt="A Full-screen Bootstrap Carousel with Random Initial Image" > elements (as backgrounds are now used), and adjusts heights on window resize. The initial slide's active class is added via jQuery for smoother transitions.

Randomizing the Initial Slide:

To display a random slide on load, remove the hardcoded active class from the HTML and add this jQuery:

let $numberOfSlides = $('.carousel-item').length;
let $currentSlide = Math.floor(Math.random() * $numberOfSlides);

$('.carousel-indicators li').each(function() {
  let $slideValue = $(this).attr('data-slide-to');
  if ($currentSlide == $slideValue) {
    $(this).addClass('active');
    $item.eq($slideValue).addClass('active');
  } else {
    $(this).removeClass('active');
    $item.eq($slideValue).removeClass('active');
  }
});
Copy after login

This code selects a random slide and applies the active class to both the corresponding slide and indicator.

Further Customization Ideas:

  • Add animation effects (fade, scale) using CSS transitions or JavaScript animation libraries.
  • Implement image overlays.
  • Randomize the next/previous slides using the slide.bs.carousel event.

This enhanced approach provides more dynamic and engaging carousels. Remember to include the necessary Bootstrap CSS and JavaScript files.

The above is the detailed content of A Full-screen Bootstrap Carousel with Random Initial Image. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template