السلام عليكم

الكود التالي سيقوم بتغيير لون الكتابة الموسومة بوسم الفقرات p بدءًا من اللون الرمادي وصولًا إلى الأبيض، ثم ترجع للون الأسود نزولًا.

1-نجلب الفقرات الموسومة بـp

var p=document.querySelectorAll("p")

2-سيكون المتغير i هو اللون الذي يتم تغييره ونبدأ بالرمادي 128

var i=128

3-سيحدد المتغير up هل نصعد أم نزل في اللون مع الزمن وسيبدأ بالصعود

var up=true

4-تابع تغيير اللون يعمل كما يلي: نزيد اللون من 128 إلى 255 ثم ننقصه من 255 إلى 128

function step()
{
if(up){
    if(i<255)
        i++
    else
        up=false
}else{
    if(i>128)
        i--
    else
        up=true
}
}

5-ننشئ التابع x ونكتب بداخله var b=Math.floor(i) var c=Math.floor(i-128) المتغير b السابق سيحدد لون الخلفية والمتغير c لون النص (لاحظ وجود فرق 128 درجة لنتمكن من رؤية النص) 6-نقوم بتغيير لون الفقرة والنص لكل الفقرات

for(var j=0;j<p.length;j++)
{
    p[j].style["background-color"]="rgb("+b+","+b+","+b+")"
    p[j].style["color"]="rgb("+c+","+c+","+c+")"
}

7-بعد كل عملية تغيير نستدعي التابع step ليقوم بزيادة اللون

8- أخيرًا نستدعي التابع setInterval ليقوم باستدعاء x كل 30 ميللي ثانية

interval=setInterval(x,30);

إذا أردت إيقاف الألوان عن التغيّر يمكنك كتابة السطر التالي متى أردت:

clearInterval(interval)

ولكن حاول تنفيذ السطر السابق عندما يكون لون الخلفية أبيضًا.

والله وليّ التوفيق