آخر الأخبار

استكشف في مدونة أوعي وشك عالم الابتكار

اكتشف الحلول المتطورة في تطبيقات الأجهزة المحمولة والتكنولوجيا والتعليم وموضوعات بلوجر. كن على اطلاع دائم بمقالات الخبراء والموارد الإبداعية والأدوات القوية لتعزيز مشاريعك الرقمية.

إنشاء شريط تمرير بطاقة متجاوب في HTML وCSS وJavaScript وSwiperJS

باتباع الخطوات الموضحة في هذه المقالة، يجب أن يكون لديك الآن شريحة بطاقات متجاوبة مخصصة كاملة. يمنحك البناء من الصفر فهمًا أفضل لكيفية عمل الشرائح....
Create-Responsive-Card-Slider-in-HTML-CSS-JavaScript-SwiperJS

إنشاء شريط تمرير بطاقة متجاوب في HTML وCSS وJavaScript وSwiperJS

Cards

الشرائح جزء أساسي في تصميم الويب الحديث. تُستخدم عادة لعرض محتوى مثل الشهادات أو المنتجات أو المعارض. لا تبدو رائعة فحسب، بل تعزز تجربة المستخدم من خلال جعل المواقع أكثر تفاعلاً وجاذبية بصرياً.

SwiperJS هي مكتبة شرائح قوية وقابلة للتخصيص تجعل من السهل إنشاء شرائح بطاقات سلسة ومتجاوبة. مع دعم إيماءات اللمس، وأزرار التنقل، ونقاط الترقيم، من السهل تنفيذها باستخدامHTML و CSS، و JavaScript فقط. سواء كنت تبني معرض أعمال شخصي أو موقعاً احترافياً، يمكن لشريحة SwiperJS إضافة لمسة ديناميكية لمشروعك.

لماذا تبني شريحة بطاقات كمبتدئ؟

إذا كنت تتعلم تطوير الواجهات الأمامية، فإن إنشاء شريحة بطاقات يعد مشروعاً عملياً مثالياً. إليك السبب:

  • ممارسة واقعية: تُستخدم الشرائح على نطاق واسع في الصفحات المقصودة، المعارض، والمتاجر الإلكترونية
  • تصميم متجاوب: أتقن فن إنشاء تخطيطات تتكيف بسلاسة مع أحجام الشاشات المختلفة
  • SwiperJS: اكتسب خبرة عملية مع واحدة من أشهر المكتبات وأكثرها قوة لبناء شرائح تفاعلية سلسة
  • تخطيطات CSS: حسن مهاراتك في Flexbox واستعلامات الوسائط وتخطيطات البطاقات
  • جاهز للملف الشخصي: شريحة تفاعلية مصممة جيداً ستكون إضافة رائعة لملفك الشخصي
خطوات إنشاء شريحة بطاقات متجاوبة باستخدام HTML وCSS وJavaScript

لبناء شريحة بطاقات متجاوبة باستخدام HTML وCSS وJavaScript (باستخدام SwiperJS)، اتبع هذه الخطوات السهلة:

  • أنشئ مجلد المشروع الخاص بك: ابدأ بإنشاء مجلد جديد لمشروعك. سمه شيئاً مثل card-slider.
  • قم بإعداد ملفاتك: داخل المجلد، أنشئ ثلاثة ملفات: index.html وstyle.css وscript.js.
  • أضف الصور: قم بتنزيل مجلد الصور وضعه في دليل مشروعك.
  • في ملف index.html الخاص بك، أضف بنية HTML الأساسية:

    
    <!DOCTYPE html>
    <!-- Coding By https://www.aweywashk.xyz/ -->
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Card Slider HTML & CSS | CodingNepal</title>
        <!-- Linking Swiper CSS -->
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css" />
        <link rel="stylesheet" href="style.css" />
      </head>
      <body>
        <div class="container swiper">
          <div class="wrapper">
            <div class="card-list swiper-wrapper">
              <!-- Single Card -->
              <div class="card swiper-slide">
                <div class="card-image">
                  <img src="images/design.jpg" alt="Design Trends" />
                  <div class="card-tag">Design</div>
                </div>
                <div class="card-content">
                  <h3 class="card-title">Modern UI Trends for 2025</h3>
                  <p class="card-text">Explore the latest user interface design trends that are shaping the digital landscape this year. From neumorphism to glassmorphism and beyond.</p>
                  <div class="card-footer">
                    <div class="card-profile">
                      <img src="images/user-1.jpg" alt="Alex Smith" />
                      <div class="card-profile-info">
                        <span class="card-profile-name">Alex Smith</span>
                        <span class="card-profile-role">UI Designer</span>
                      </div>
                    </div>
                    <a href="#" class="card-button">Read More</a>
                  </div>
                </div>
              </div>
              <!-- Single Card -->
              <div class="card swiper-slide">
                <div class="card-image">
                  <img src="images/development.jpg" alt="Development" />
                  <div class="card-tag">Development</div>
                </div>
                <div class="card-content">
                  <h3 class="card-title">Best Frontend Frameworks</h3>
                  <p class="card-text">A comprehensive comparison of the most popular frontend frameworks and libraries that developers are using to build modern web applications.</p>
                  <div class="card-footer">
                    <div class="card-profile">
                      <img src="images/user-2.jpg" alt="Jessica Chen" />
                      <div class="card-profile-info">
                        <span class="card-profile-name">Jessica Chen</span>
                        <span class="card-profile-role">Developer</span>
                      </div>
                    </div>
                    <a href="#" class="card-button">Read More</a>
                  </div>
                </div>
              </div>
              <!-- Single Card -->
              <div class="card swiper-slide">
                <div class="card-image">
                  <img src="images/ai.jpg" alt="AI" />
                  <div class="card-tag">AI</div>
                </div>
                <div class="card-content">
                  <h3 class="card-title">AI User Experience Design</h3>
                  <p class="card-text">How artificial intelligence is revolutionizing user experience design and enabling more personalized, intuitive interfaces for digital products.</p>
                  <div class="card-footer">
                    <div class="card-profile">
                      <img src="images/user-3.jpg" alt="Marcus Johnson" />
                      <div class="card-profile-info">
                        <span class="card-profile-name">Marcus Johnson</span>
                        <span class="card-profile-role">UX Researcher</span>
                      </div>
                    </div>
                    <a href="#" class="card-button">Read More</a>
                  </div>
                </div>
              </div>
              <!-- Single Card -->
              <div class="card swiper-slide">
                <div class="card-image">
                  <img src="images/productivity.jpg" alt="Productivity" />
                  <div class="card-tag">Productivity</div>
                </div>
                <div class="card-content">
                  <h3 class="card-title">Workspace Design for Focus</h3>
                  <p class="card-text">Designing workspaces that maximize productivity and minimize distractions for creative professionals in the hybrid work environment.</p>
                  <div class="card-footer">
                    <div class="card-profile">
                      <img src="images/user-4.jpg" alt="Sarah Miller" />
                      <div class="card-profile-info">
                        <span class="card-profile-name">Sarah Miller</span>
                        <span class="card-profile-role">Interior Designer</span>
                      </div>
                    </div>
                    <a href="#" class="card-button">Read More</a>
                  </div>
                </div>
              </div>
              <!-- Single Card -->
              <div class="card swiper-slide">
                <div class="card-image">
                  <img src="images/animation.jpg" alt="Animation" />
                  <div class="card-tag">Animation</div>
                </div>
                <div class="card-content">
                  <h3 class="card-title">Micro Animation Designs</h3>
                  <p class="card-text">The small animations and interactions that make a big difference in user experience and how to implement them effectively in your designs.</p>
                  <div class="card-footer">
                    <div class="card-profile">
                      <img src="images/user-5.jpg" alt="David Park" />
                      <div class="card-profile-info">
                        <span class="card-profile-name">David Park</span>
                        <span class="card-profile-role">Motion Designer</span>
                      </div>
                    </div>
                    <a href="#" class="card-button">Read More</a>
                  </div>
                </div>
              </div>
            </div>
            <!-- Pagination -->
            <div class="swiper-pagination"></div>
            <!-- Navigation Buttons -->
            <div class="swiper-slide-button swiper-button-prev"></div>
            <div class="swiper-slide-button swiper-button-next"></div>
          </div>
        </div>
        <!-- Linking Swiper script -->
        <script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
        <!-- Custom Script -->
        <script src="script.js"></script>
      </body>
    </html>
        
  • في ملف style.css الخاص بك، قم بتنسيق شريحة البطاقات:

    
    /* Importing Google fonts - Inter */
    @import url('https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,100..900&display=swap');
    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
      font-family: "Inter", sans-serif;
    }
    body {
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 100vh;
      background: linear-gradient(#EFEFFF, #CCCBFF);
    }
    .wrapper {
      max-width: 1100px;
      padding: 20px 10px;
      margin: 0 60px 35px;
      overflow: hidden;
    }
    .wrapper .card {
      background: #fff;
      display: flex;
      height: auto;
      flex-direction: column;
      border-radius: 20px;
      box-shadow: 0 10px 10px rgba(0, 0, 0, 0.05);
      transition: transform 0.3s ease;
    }
    .wrapper .card:hover {
      transform: translateY(-10px);
    }
    .card .card-image {
      position: relative;
    }
    .card .card-image img {
      width: 100%;
      padding: 10px;
      border-radius: 22px;
      object-fit: cover;
      aspect-ratio: 16 / 9;
    }
    .card .card-image .card-tag {
      position: absolute;
      top: 25px;
      left: 25px;
      font-size: 0.75rem;
      color: #6366f1;
      padding: 5px 15px;
      border-radius: 30px;
      font-weight: 600;
      letter-spacing: 0.5px;
      text-transform: uppercase;
      background: rgba(255, 255, 255, 0.9);
      box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    }
    .card .card-content {
      flex: 1;
      display: flex;
      flex-direction: column;
      padding: 10px 25px 25px;
    }
    .card .card-content .card-title {
      color: #111111;
      font-size: 1.25rem;
      font-weight: 700;
      line-height: 1.3;
      margin-bottom: 15px;
    }
    .card .card-content .card-text {
      color: #747474;
      font-size: 0.95rem;
      line-height: 1.6;
      margin-bottom: 20px;
    }
    .card .card-footer {
      display: flex;
      margin-top: auto;
      align-items: center;
      padding-top: 15px;
      justify-content: space-between;
      border-top: 1px solid rgba(0, 0, 0, 0.08);
    }
    .card .card-footer .card-profile {
      display: flex;
      align-items: center;
    }
    .card .card-profile .card-profile-info {
      display: flex;
      flex-direction: column;
    }
    .card .card-profile .card-profile-name {
      font-size: 0.875rem;
      font-weight: 600;
      color: #202020;
    }
    .card .card-profile .card-profile-role {
      font-size: 0.8rem;
      color: #7A7A7A;
    }
    .card .card-profile img {
      width: 35px;
      height: 35px;
      margin-right: 10px;
      object-fit: cover;
      border-radius: 50%;
      border: 2px solid #fff;
      box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    }
    .card .card-button {
      color: #fff;
      padding: 10px 20px;
      border-radius: 30px;
      font-size: 0.81rem;
      font-weight: 600;
      text-decoration: none;
      background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
      box-shadow: 0 4px 10px rgba(99, 102, 241, 0.2);
      transition: all 0.3s ease;
    }
    .card .card-button:hover {
      transform: translateY(-3px);
      box-shadow: 0 8px 15px rgba(99, 102, 241, 0.3);
    }
    .wrapper .swiper-pagination-bullet {
      height: 15px;
      width: 15px;
      opacity: 1;
      overflow: hidden;
      position: relative;
      background: #B1B3F8;
    }
    .wrapper .swiper-pagination-bullet-active {
      background: #a4a7fd;
    }
    /* Auto-play loading indicator */
    .wrapper .swiper-pagination-bullet-active::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      height: 100%;
      width: 100%;
      background: #6366f1;
      transform-origin: left center;
      transform: scaleX(0);
      animation: autoplay-loading 5s linear forwards;
    }
    .container:hover .wrapper .swiper-pagination-bullet-active::before {
      animation-play-state: paused;
    }
    @keyframes autoplay-loading {
      0% {
        transform: scaleX(0);
      }
      100% {
        transform: scaleX(1);
      }
    }
    .wrapper :where(.swiper-button-prev, .swiper-button-next) {
      color: #6366f1;
      margin-top: -35px;
      transition: all 0.3s ease;
    }
    .wrapper :where(.swiper-button-prev, .swiper-button-next):hover {
      color: #8b5cf6;
    }
    /* Responsive media query code for small screens */
    @media (max-width: 768px) {
      .wrapper {
        margin: 0 10px 25px;
      }
      .wrapper :where(.swiper-button-prev, .swiper-button-next) {
        display: none;
      }
    }
        
  • في ملف script.js الخاص بك، قم بتهيئة SwiperJS:

    
    new Swiper(".wrapper", {
      loop: true,
      spaceBetween: 30,
      // Autoplay
      autoplay: {
        delay: 5000,
        disableOnInteraction: false,
        pauseOnMouseEnter: true,
      },
      // Pagination bullets
      pagination: {
        el: ".swiper-pagination",
        clickable: true,
        dynamicBullets: true,
      },
      // Navigation arrows
      navigation: {
        nextEl: ".swiper-button-next",
        prevEl: ".swiper-button-prev",
      },
      // Responsive breakpoints
      breakpoints: {
        0: {
          slidesPerView: 1,
        },
        768: {
          slidesPerView: 2,
        },
        1024: {
          slidesPerView: 3,
        },
      },
    });
        
الخلاصـــــة

باتباع الخطوات الموضحة في هذه المقالة، يجب أن يكون لديك الآن شريحة بطاقات متجاوبة مخصصة كاملة. يمنحك البناء من الصفر فهمًا أفضل لكيفية عمل الشرائح، كما يسمح لك بتخصيصها بسهولة لمشاريعك الخاصة.

إذا واجهت أي مشكلات أثناء بناء شريحتك أو إذا كان الكود الخاص بك لا يعمل كما هو متوقع، فلا تقلق! يمكنك تنزيل كود المصدر لشريحة البطاقات هذه مجانًا بالنقر فوق زر التنزيل أدناه. بدلاً من ذلك، يمكنك الاطلاع على عرض حي لشريحة البطاقات بالنقر فوق الزر "عرض حي".

create-card.zip 567KB
كيف كان المقال؟

لحظة من فضلك

نحن نتصفح الكثير من المواقع ونجلب لك المقالات التي تبحث عنها ونختصرها لك وهذه المقالات عند كتابتها ونشرها تاخذ مننا وقت وجهد وسهر كبير ونحن لا نطلب الكثير

لذلك نطلب منك تعليقا للمحتوي وطريقة نشره هل تعجبك ام لا نطلب منك الدعم ودعمك هو تعليقك لكي نستمر لذلك حبا وليس امر من فضلك اكتب تعليق

🌟 انتبه عزيزي أعضاء المجتمع! 🌟
نحن متحمسون لمشاركتك في مناقشاتنا الديناميكية. لضمان بيئة محترمة وشاملة للجميع، نطلب تعاونكم مع الإرشادات التالية:
1. احترام الخصوصية: يرجى عدم مشاركة معلومات حساسة أو شخصية في تعليقاتك.
2. انشر الإيجابية: نحن نتمسك بسياسة عدم التسامح مطلقًا مع خطاب الكراهية أو اللغة المسيئة. دعونا نحافظ على محادثاتنا محترمة وودية.
3. اللغة المفضلة: لا تتردد في التعبير عن نفسك باللغة الإنجليزية أو العربية. ستساعدنا هاتان اللغتان في الحفاظ على مناقشة واضحة ومتماسكة.
4. احترام التنوع: لتعزيز جو شامل، نطلب منك بكل احترام تجنب مناقشة المسائل الدينية في تعليقاتك.
تذكر أن مساهماتك قيمة، ونحن نقدر التزامك بجعل مجتمعنا مكانًا ترحيبيًا للجميع. دعونا نواصل التعلم والنمو معًا من خلال المناقشات البناءة والاحترام المتبادل.
شكرًا لكونك جزءًا من مجتمعنا اوعي وشك! 🌟

Post a Comment