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 id="First-Image">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>
JavaScript initializes the carousel, setting the interval and disabling pausing:
$('.carousel').carousel({ interval: 6000, pause: false });
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); });
And CSS:
.full-screen { background-size: cover; background-position: center; background-repeat: no-repeat; }
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'); } });
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!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











Have you ever needed a countdown timer on a project? For something like that, it might be natural to reach for a plugin, but it’s actually a lot more

Everything you ever wanted to know about data attributes in HTML, CSS, and JavaScript.

At the start of a new project, Sass compilation happens in the blink of an eye. This feels great, especially when it’s paired with Browsersync, which reloads

One thing that caught my eye on the list of features for Lea Verou's conic-gradient() polyfill was the last item:

Let’s attempt to coin a term here: "Static Form Provider." You bring your HTML

The inline-template directive allows us to build rich Vue components as a progressive enhancement over existing WordPress markup.

PHP templating often gets a bad rap for facilitating subpar code — but that doesn't have to be the case. Let’s look at how PHP projects can enforce a basic

Every time I start a new project, I organize the code I’m looking at into three types, or categories if you like. And I think these types can be applied to
