PDA

View Full Version : تحلیل عملکرد کد



yasaman-m
یک شنبه 22 دی 1392, 14:39 عصر
کسی میدونه متغیر ny‌ چیکار میکنه و بر چه مبنایی زیاد میشه؟ ؤ اینکه چرا وقتی داره براش transform مینویسه rotate رو اونطوری تعریف کرده؟



var x,y,n=0,ny=0,rotINT,rotYINT
function rotateYDIV()
{
y=document.getElementById("cont-bx1")
clearInterval(rotYINT)
rotYINT=setInterval("startYRotate()",10)
}
function startYRotate()
{
ny=ny+1
y.style.transform="rotateY(" + ny + "deg)"
y.style.webkitTransform="rotateY(" + ny + "deg)"
y.style.OTransform="rotateY(" + ny + "deg)"
y.style.MozTransform="rotateY(" + ny + "deg)"
if (ny>=360)
{
y.style.backgroundColor="#fff";

clearInterval(rotYINT)
y.style.backgroundColor="#333";

if (ny>=360){ny=0
}
}
}

Javidhb
دوشنبه 23 دی 1392, 00:13 صبح
setInterval برای اجرای دستورات توی فواصل زمانی مشخص بکار میره..
(خط 6) با استفاده از همین این دستور تابع startYRotate رو هر 10 هزارم ثانیه یکبار اجرا میکنه. هر بار اجرای تابع هم باعث افزایش مقدار ny میشه.


روش تعریف rotate و هر استایل دیگه ای، مثل همون روشیه که توی css استفاده میشه.
توی css:


#cont-bx1{
transform = rotateY(90deg);
}


کد بالا هم:

y.style.transform="rotateY(" + ny + "deg)"; // => "rotateY(XXdeg)" # XX هر دفعه مقدارش افزایش پیدا میکنه

yasaman-m
دوشنبه 23 دی 1392, 10:49 صبح
خییییییلی ممنون که جواب دادین.هر دفعه که تابع اجرا میشه به مقدار ny یک واحد باید اضافه شه اما 360 درجه شکل من میچرخه.میدونین چرا؟

این " +ny+ " توی کتیشن تعریف شده و قبلو بعدسم پلاس داره.چطور زیاد میشه؟ ممنون میشم راهنماییم کنید.

Javidhb
دوشنبه 23 دی 1392, 14:44 عصر
1. نه همون 1 واحد اضافه میشه ... اما توی هر 10هزارم ثانیه این 1 واحد اضافه میشه و شکل رو اندازه یک درجه میچرخونه... اینکار اینقدر سریع اتفاق میافته که باعث میشه شکلتون خیلی نرم چرخش کنه.


2. اون + برای اعداد مثل جمع, عمل میکنه و برای رشته ها بعنوان چسب. یعنی رشته ها رو به هم میچسبونه.

//اعداد
var Sum = 1 + 2; // = 3 # حاصل جمع

//رشته
var str = '1' + '2'; // = '12' # اینجا یک و دو رشته محسوب میشن نه عدد


ny توی کوتیشن نیست... سمت چپ و راستش توی کوتیشن هستن که با +، مقدار متغیر ny بین شون اضافه میشه.

yasaman-m
چهارشنبه 25 دی 1392, 11:19 صبح
خیلییییییییییییی ممنونم خیلی کمکم کردین.موفق باشیییین :لبخندساده: