عرض الشرائح Bootstrap 5 Carousel

-

بنتعرف في هذا الدرس شو يعني Carousel، وكيف بنعملها في Bootstrap. ويمكن تعريفها على انها عرض شرائح للمكونات الي ممكن تكون صور، نصوص، وغيرها. بشكل حركي.  

نطبق مثال بسيط حتى نفهم شو يعني Carousel

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Bootstrap Example</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body style="height:1500px">
    <div class="container-fluid ">
        <div class="container-fluid m-2" >
            <h3>Carousel sample</h3>
        </div>
        <div id="carouselExampleControls" class="carousel slide" data-bs-ride="carousel">
            <div class="carousel-inner">
                <div class="carousel-item active">
                    <img src="Programming.jpg" class="d-block w-100 border" style="height:50vh" alt="...">
                </div>
                <div class="carousel-item ">
                    <img src="DataBase.jpg" class="d-block w-100 border" style="height:50vh" alt="...">
                </div>
                <div class="carousel-item">
                    <img src="projectManagment.jpg" class="d-block w-100 border" style="height:50vh" alt="...">
                </div>
            </div>
            <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleControls" data-bs-slide="prev">
                <span class="carousel-control-prev-icon" aria-hidden="true"></span>
                <span class="visually-hidden">Previous</span>
            </button>
            <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleControls" data-bs-slide="next">
                <span class="carousel-control-next-icon" aria-hidden="true"></span>
                <span class="visually-hidden">Next</span>
            </button>
        </div>
    </div>
</body>
</html>

النتيجة: 

تمام نفهم شو عملنا. 

اضفنا <div> وطبقنا عليها class باسم carousel الي بيعمل على انشاء الشرائح وطبقنا كمان class باسم slide الي هو المسؤول عن التأثير والحركة. بعد هيك اضفنا الصور وكل صورة في <div> وطبقنا عليها class باسم carousel-item الي من خلالو بتم تحديد المحتوي المطلوب عرضه في الشريحه وهي هون الصورة.واول صورة طبقنا عليها class باسم active الى بيعني ان هي الصورة الي بتنعرض في البدايه.

واخر شي طبقنا button لعرض الازار للخلف والامام لتحريك الشرائح

الجدول التالي يوضح كل class وشو الاستخدام الخاص به:


اسم Classالوصف والوظيفة
.carousel
انشاء carousel
.carousel-indicators
يستخدم لإضافة مؤشرات carousel. وهي عبارة عن نقاط صغيرة في أسفل كل شريحة (والتي تشير إلى عدد الشرائح الموجودة في carousel والشريحة التي يشاهدها المستخدم حاليًا)
.carousel-inner
إضافة الشرائح الى carousel
.carousel-item
يحدد محتوى كل شريحه
.carousel-control-prev
يضيف زرًا في اليسار (previous) إلى carousel ، مما يسمح للمستخدم بالتنقل بين الشرائج للخلف
.carousel-control-next
يضيف زرًا في اليمين (next) إلى carousel ، مما يسمح للمستخدم بالتنقل بين الشرائج للأمام
.carousel-control-prev-icon
يستخدم مع. carousel-control-prev لإنشاء زر  "previous"
.carousel-control-next-icon
يُستخدم مع carousel-control-next. لإنشاء زر "next"
slide.
يضيف التأثير والانتقال في CSS transition and animation وتأثير الحركة عند الانتقال من عنصر إلى العنصر التالي. اذا كان المطلوب عدم اظهار الحركة فيجب إزالة هذا class

اضافة carousel-indicators

يستخدم لإضافة مؤشرات الى carousel. وهي عبارة عن نقاط صغيرة في أسفل كل شريحة (والتي تشير إلى عدد الشرائح الموجودة في carousel والشريحة التي يشاهدها المستخدم حاليًا). وحتي نطبق هذا الكلام بنستخدم class باسم carousel-indicators 

نطبق المثال التالي حتى نفهم الموضوع:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Bootstrap Example</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body style="height:1500px">
    <div class="container-fluid ">
        <div class="container-fluid m-2" >
            <h3>Carousel sample</h3>
        </div>
        <div id="carouselExampleControls" class="carousel slide" data-bs-ride="carousel">
            <div class="carousel-indicators">
                <button type="button" data-bs-target="#carouselExampleControls" data-bs-slide-to="0" class="active"></button>
                <button type="button" data-bs-target="#carouselExampleControls" data-bs-slide-to="1"></button>
                <button type="button" data-bs-target="#carouselExampleControls" data-bs-slide-to="2"></button>
            </div>
            <div class="carousel-inner">
                <div class="carousel-item active">
                    <img src="Programming.jpg" class="d-block w-100 border" style="height:50vh" alt="...">
                </div>
                <div class="carousel-item ">
                    <img src="DataBase.jpg" class="d-block w-100 border" style="height:50vh" alt="...">
                </div>
                <div class="carousel-item">
                    <img src="projectManagment.jpg" class="d-block w-100 border" style="height:50vh" alt="...">
                </div>
            </div>
            <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleControls" data-bs-slide="prev">
                <span class="carousel-control-prev-icon" aria-hidden="true"></span>
                <span class="visually-hidden">Previous</span>
            </button>
            <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleControls" data-bs-slide="next">
                <span class="carousel-control-next-icon" aria-hidden="true"></span>
                <span class="visually-hidden">Next</span>
            </button>
        </div>
    </div>
</body>
</html>

النتيجة: 

نفهم شو عملنا. 

اضفنا الكود التالي وطبقنا عليه class باسم  carousel-indicators : 

 <div class="carousel-indicators">
    <button type="button" data-bs-target="#carouselExampleControls" data-bs-slide-to="0" class="active"></button>
    <button type="button" data-bs-target="#carouselExampleControls" data-bs-slide-to="1"></button>
    <button type="button" data-bs-target="#carouselExampleControls" data-bs-slide-to="2"></button>
</div>

وربطنا data-bs-target مع id الخاص ب <div> الرئيسي. الي هو carouselExampleControls . وبعدها اضفنا الارقام للشرائح بالتسلسل باستخدام data-bs-slide-to واول شريحة طبقنا عليها class باسم active

اكيد اذا كان ما بدك تضيف الازار الخاصة ب indicators فا الحل هو حذف الكود الخاص بذلك..

اضافة التسميات Captions الى الشرائح

يستخدم class المسمى carousel-caption. لاضافة نصوص وتسميه للشريحه. ويمكن إخفاؤها بسهولة في viewports الأصغر، وبنعمل هذا الكلام باستخدام أدوات عرض اختيارية. بتم الاخفاء باسخدام class باسم d-none. ، وتم اظهاراها مرة أخرى باستخدام class باسم  d-md-block.

نطبق المثال التالي حتى نفهم الموضوع. 

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Bootstrap Example</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body style="height:1500px">
    <div class="container-fluid ">
        <div class="container-fluid m-2" >
            <h3>Carousel sample</h3>
        </div>
        <div id="carouselExampleControls" class="carousel slide" data-bs-ride="carousel">
            <div class="carousel-indicators">
                <button type="button" data-bs-target="#carouselExampleControls" data-bs-slide-to="0" class="active"></button>
                <button type="button" data-bs-target="#carouselExampleControls" data-bs-slide-to="1"></button>
                <button type="button" data-bs-target="#carouselExampleControls" data-bs-slide-to="2"></button>
            </div>
            <div class="carousel-inner">
                <div class="carousel-item active">
                    <img src="Programming.jpg" class="d-block w-100 border" style="height:50vh" alt="...">
                    <div class="carousel-caption d-none d-md-block text-dark">
                        <h5>First slide label</h5>
                        <p>Some representative placeholder content for the first slide.</p>
                    </div>
                </div>
                <div class="carousel-item ">
                    <img src="DataBase.jpg" class="d-block w-100 border" style="height:50vh" alt="...">
                    <div class="carousel-caption d-none d-md-block text-dark">
                        <h5>Second slide label</h5>
                        <p>Some representative placeholder content for the second slide.</p>
                    </div>
                </div>
                <div class="carousel-item">
                    <img src="projectManagment.jpg" class="d-block w-100 border" style="height:50vh" alt="...">
                    <div class="carousel-caption d-none d-md-block text-dark">
                        <h5>Third slide label</h5>
                        <p>Some representative placeholder content for the third slide.</p>
                    </div>
                </div>
            </div>
            <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleControls" data-bs-slide="prev">
                <span class="carousel-control-prev-icon" aria-hidden="true"></span>
                <span class="visually-hidden">Previous</span>
            </button>
            <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleControls" data-bs-slide="next">
                <span class="carousel-control-next-icon" aria-hidden="true"></span>
                <span class="visually-hidden">Next</span>
            </button>
        </div>
    </div>
</body>
</html>

النتيجة: 

جرب تصغر حجم الشاشة وشوف كيف النص بختفي.