PDA

View Full Version : سوال: مشکل در شیفت دادن عکس ها به سمت چپ یا راست



fahimeh1512
شنبه 07 بهمن 1396, 14:48 عصر
سلام دوستان خسته نباشید
من دارم یه تابع مینویسم که یه آرایه از عکس ها رو بگیره و اون ها رو با استفاده از دکمه چپ و راست و با استفاده از پوزیشن اون ها جابه جا کنه اما این دستور تو کد من کار نمیکنه اصلا نمیدونم چرا؟ میشه راهنماییم کنین؟

Kala[i].style.right = temp;

این هم کد کامل تابع

function Slide_Left()
{
var Kala = document.getElementsByClassName( "Pishnahad_Kala" );


var temp;


//if ( Kala[0].style.right != "0px" )
if ( Move_Left != 220 )
{
Move_Left++;
for ( var i = 0; i < Kala.length; i++ )
{
temp = '';
for ( var j = 0; j < Kala[i].style.right.length; j++ )
if ( Kala[i].style.right[j] == 'p' )
{
break;
}
else
{
temp += Kala[i].style.right[j];
}
Kala[i].style.right = temp;
window.alert(temp);
Kala[i].style.right = +Kala[i].style.right + Move_Left + 'px';


window.alert(Kala[i].style.right);
}




setTimeout( Slide_Left, 5 );
}
}

parvizwpf
شنبه 07 بهمن 1396, 15:18 عصر
شما باید کارتون رو دیباگ کنید که اولا kala[i]چی داخلش هست و همچنین مقدار temp چی هست

fahimeh1512
شنبه 07 بهمن 1396, 17:12 عصر
شما باید کارتون رو دیباگ کنید که اولا kala[i]چی داخلش هست و همچنین مقدار temp چی هست
چک کردم ظاهرا همه چی درسته kala[i] هربار به یکی از عکس ها اشاره میکنه temp هم بعد از اجرای اون حلقه درست میشه یعنی مثلا قبل از اجرای حلقه 20px بوده بعد از حلقه میشه 20. که بعدش با اون مقادیری که میخوام جمع میکنم و در انتها 'px' رو بهش اضافه میکنم.
با این دستور مقدار temp رو میبینم درسته window.alert(temp);
و با این دستور window.alert(Kala[i].style.right); مقدار پوزیشن رایت کالا رو میبینم که همون مقدار قبلیه. دقیقا بعد از این که temp رو توش میریزم هم مقدار پوزیشن رایت رو چاپ میکنم با همون مقدار اولیه ش برابره هیچ تغییری نمیکنه!

fahimeh1512
شنبه 07 بهمن 1396, 17:26 عصر
این شکلی نوشتم درست شد :لبخند:

temp = +temp + Move_Left;
Kala[i].style.right = temp + 'px';