الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تكرار الى ما نهاية

بدأه devaborachid في 5 مايو 2011 · 6 رد · 613 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلام عليكم ورحمة الله

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

window.setTimeout("next()", 3000);

اريد كل 3 ثواني تشغل الدالة next() ديما بدون انقطاع لانه كل مرة تشتغل فيها هده الدالة تغير الصورة المعروضة الى صورة اخرى

بكل بساطة اريد عمل سلايد شوي انتهيت منه تفريبا باقي لي بس بدل ما احط لنك مثل <a href="#" onclick="next()"> لما تظغط تتغير الصورة

اريده تتغير لوحدها تلقائيا بعد 3 ثواني لما تخلص الصورة الاخيرة تبتدي من الاول ثاني عادي

في انتظار الخبراء

#2

استعمل window.setInterval بدل window.setTimeout

#3

شكرا لك اخي ممكن تشرح لي اكثر كيف استخدمها للتبديل بين 5 ايديات id

#4

تبديل ماذا؟

#5

كما شرحت اخي فوق مثال

<div id="test1" >test1</div>
<div id="test2" >test2</div>
<div id="test3" >test3</div>
<div id="test4" >test4</div>
<div id="test5" >test5</div>

اريد مرة يعرض test1 فقط بعد 5 ثواني يختفي يعرض test2 نفس العملية حتى يوصل ل test5 ويرجع ل test1

الفكرة بسيطة مثل السلايد شو وهدا الكود مرفق لتتضح لك الفكرة

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <title>Slideshow</title>
        <script language="JavaScript" type="text/javascript">
            first = 1;
            last = 5;
            current = 1;
            function nextPicture() {
                object = document.getElementById('slide' + current);
                object.style.display = 'none';
                if (current == last) { current = 1; }
                else { current++ }
                object = document.getElementById('slide' + current);
                object.style.display = 'block';
            }
            function previousPicture() {
                object = document.getElementById('slide' + current);
                object.style.display = 'none';
                if (current == first) { current = last; }
                else { current--; }
                object = document.getElementById('slide' + current);
                object.style.display = 'block';
            }
            ////////هنا عندي المشكل اريده يكرر العمليلة
            window.setTimeout("nextPicture()", 3000);
            ////////هنا عندي المشكل اريده يكرر العمليلة
        </script>
        <style type="text/css">
             .slides {
                position: relative;
                z-index: 1;
                display: none;
            }
            #slide1 {
                display: block;
            }
        </style>
    </head>
    <body>
        <div class="slideShow">
            <div id="slide1" class="slides">
test1
            </div>
            <div id="slide2" class="slides">
test2>
            </div>
            <div id="slide3" class="slides">
test3
            </div>
            <div id="slide4" class="slides">
test4
            </div>
            <div id="slide5" class="slides">
test5
            </div>
        </div>
    </body>
</html>
#6

شكرا لكم ارجو من المشرف اغلاق الموضوع وجدت الحل

#7

كما قلت لك، استعمل setInterval بدل setTimeout، فقط sleep.gif

غير

window.setTimeout("nextPicture()", 3000);

ب

window.setInterval(nextPicture, 5000);

غيرت 3000 ب 5000 لأنك قلت 5 ثواني

مواضيع مشابهة