اذهب إلى المحتوى
  • 0

انتقال بين الصور بشكل تلقائي

Noor Baroud

السؤال

السلام عليكم

انا الان اصمم واجهات مستخدم لموقع لكن عندي نقطة لم استطع عملها

وضعت صور داخل ملف الhtml  واريد ان اجعل هذه الصور تتحرك تلقائيا بعد مدة زمنية بحيث انه يكون مثل شريط من الصور كل ثانية تظهر صورة ماهو الكود المساعد في الجي كويري او الجاف سكريبت؟

 

لقطة الشاشة 2022-01-01 124410.png

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يمكنك الاستعانة بمكتبة slick، بعد إضافة JQuery بشكل صحيح إلى مشروعك نضيف الوسوم التالية ضمن وسم head:

<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css"/>
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick-theme.css"/>
<script type="text/javascript" src="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script>

بعدها نضيف الشيفرة التالية لجعل المكتبة تحول المحتوى إلى شرائح للعرض:

<script type="text/javascript">
  $(document).ready(function(){
    $('#wrapper').slick({
      slidesToShow: 1,
      slidesToScroll: 1,
      autoplay: true,
      autoplaySpeed: 2000,
    });
  });
</script>

قد تحتاج لتنسيق الصور بحسب حجمها لتناسب حجم الشرائح

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

في حال لا ترغب باستخدام مكاتب إضافية، يمكنك استخدام التابع setInterval في جافاسكريبت والذي يقوم بالتنقّل بين الشرائح أو الصور خلال فترات زمنية معيّنة بشكل تلقائي:

مثال بسيط بفرض لديك الشرائح التالية:

<div class="carousel">
  <div class="carousel-item">
    <div class="red"></div>
  </div>
  <div class="carousel-item">
    <div class="green"></div>
  </div>
  <div class="carousel-item">
    <div class="yellow"></div>
  </div>
  <div class="carousel-item">
    <div class="violet"></div>
  </div>
</div>

التنسيق المبدئي للشرائح (يمكنك تغييرها أو استبدالها بصور حسب المطلوب):

* {
  box-sizing: border-box;
}
.carousel {
  position: relative;
  width: 400px;
  height: 270px;
  overflow: hidden;
  background-color: #cdcdcd;
}
.carousel .carousel-item {
  position: absolute;
  width: 100%;
  height: 270px;
  border: 1px solid #2e2e2e;
  top: 0;
  left: 100%;
}
.carousel .carousel-item.active {
  left: 0;
  transition: all 0.3s ease-out;
}
.carousel .carousel-item div {
  height: 100%;
}
.carousel .carousel-item .red {
  background-color: red;
}
.carousel .carousel-item .green {
  background-color: green;
}
.carousel .carousel-item .yellow {
  background-color: yellow;
}
.carousel .carousel-item .violet {
  background-color: violet;
}

وبعد ذلك يتم استدعاء شيفرة جافاسكريبت التالية للتنقّل بين الشرائح:

window.onload = function(){
  var slides = document.getElementsByClassName('carousel-item'),
      addActive = function(slide) {slide.classList.add('active')},
      removeActive = function(slide) {slide.classList.remove('active')};
  addActive(slides[0]);
  
  setInterval(function (){
    for (var i = 0; i < slides.length; i++){
      if (i + 1 == slides.length) {
        addActive(slides[0]);
        slides[0].style.zIndex = 100;
        setTimeout(removeActive, 350, slides[i]);
                                      
      if (slides[i].classList.contains('active')) { 
        slides[i].removeAttribute('style');
        setTimeout(removeActive, 350, slides[i]);
        addActive(slides[i + 1]);
        break;
      }
    } 
  }, 4000);
}
  

يمكنك التحكّم بزمن تأخير الانتقال بين الشرائح بتعديل القيمة 4000 الموجودة في التابع setInterval.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكنك القيام بذلك باستخدام مكتبة بوتستراب فهي الطريقة الأسهل والأكثر أستقرار بالطريقة التالية :

<div class="carousel slide" data-bs-ride="carousel">//هنا نضع المحددات من مكتبة بوتستراب ك صفوف
  <div class="carousel-inner">
    <div class="carousel-item active" data-bs-interval="10000">
      <img src="..." class="d-block w-100" alt="...">//السللايد الأول
    </div>
    <div class="carousel-item" data-bs-interval="2000">
      <img src="..." class="d-block w-100" alt="...">//السلايد الثاني
    </div>
    <div class="carousel-item" data-bs-interval="2000">
      <img src="..." class="d-block w-100" alt="...">// السلايد الثالث
    </div>
  </div>
  //هنا نضع أزرار التالي والسابق للتنقل بين السلايدات
  <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleInterval" data-bs-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
  </button>
  <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleInterval" data-bs-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
  </button>
</div>

قمنا في الاعلى بتحديد المدة الزمنية بالميلي ثانية لكل سلايد عند الخاصية :

data-bs-interval="10000"

أي ان الصورة الأولى ستظهر لمدة عشر ثواني ثم ستنتقل للصورة الثانية التي سوف تظهر لمدة ثانيتين وهكذا…

 

لكن  يجب عليك تضمين مكتبة البوتستراب لكي يعمل عندك الكود السابق, يمكنك إتباع التالي :

أولاً : يجب عليك وضع هذا الكود داخل تاغ ال <head>

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">

ثانياً : ضع الكود التالي في نهاية تاغ ال <body>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>

 

تم التعديل في بواسطة Mohammad Al Eik
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...