View Full Version : سوال: عقبتر بودن تعداد کاراکتر های دریافت شده از وارد شده
marasiali
سه شنبه 26 خرداد 1394, 20:17 عصر
من تو زبان جاوااسکریپت خیلی تازه کارم واسه تمرین سعی کردم یه صفحه کمکی برا کدنویسای css بسازم که سایه رو توش درست کنن و کدرو بگیرن که تو وقتشون صرفه جویی شه.اما دو تا مشکل هست که نمیدونم چرا پیش اومده و چجوری رفع میشه.
1- وقتی عددی در تکست باکس وارد میشه عینا تو ورودی رنج وارد میشه که تا اینجا مشکلی نیس ولی واسه درست شدن سایه و کد خروجی یه کاراکتر عقبتره یعنی مثلا وقتی 100 وارد میشه رنج هم 100 رو نشون میده ولی تو نتیجه سایه و کد سایه از 10 استفاده میشه حالا اگه هرکلیدی رو توش فشار بدیم حتی بک اسپیس تازه 100 شناسایی میشه یعنی همیشه یه دکمه کیبرد عقبترن سایه و کدش(هم از keypress استفاده کردم هم keydown و هم keyup تو هرسه این مشکل بوده)
2- وقتی ورودی رنج رو تغییر میدیم عدد تو تکست باکس باهاش جابه جا میشه که مشکلی نیس ولی وقتی موس از محدوده رنج خارج میشه چند پیکسل این اعداد تغییر میکنه که نمیدونم دلیلش چیه همیشه هم همینطوره.
این کد:
http://jsfiddle.net/e41gehtr/5/
و اینم نتیجه تمام صفحه اش:
https://jsfiddle.net/e41gehtr/5/embedded/result/
barnamenevis2016
سه شنبه 26 خرداد 1394, 20:47 عصر
سلام دوباره....خوب در مورد مشکل اولتون...شما در کداتون جا دادید:
Shadow(); input();
که باید جای دو تابع رو عوض کنید....یعنی به شکل زیر...که فکر متوجه چراییش بشید....
input();Shadow();
اول با input مقدار ها تعیین می شه و بعد Shadow اجرا بشه...مناسب کارتون...که شما باید.ترتیب نوشتن کدا رو درست کنید...
مشکل دومتون رو متوجه نشدم...من با اون رنج مشکلی پیدا نکردم....
marasiali
سه شنبه 26 خرداد 1394, 21:21 عصر
سلام دوباره....خوب در مورد مشکل اولتون...شما در کداتون جا دادید:
Shadow(); input();
که باید جای دو تابع رو عوض کنید....یعنی به شکل زیر...که فکر متوجه چراییش بشید....
input();Shadow();
اول با input مقدار ها تعیین می شه و بعد Shadow اجرا بشه...مناسب کارتون...که شما باید.ترتیب نوشتن کدا رو درست کنید...
مشکل دومتون رو متوجه نشدم...من با اون رنج مشکلی پیدا نکردم....
سلام
ممنون از کمکتون مشکل اولم حل شد.
مشکل دوم هم یه مثال میزنم متوجه شین.
من رنج Horizontal Length رو به صورت دستی(باموس و بدون استفاده از تکست باکس)میبرم رو -20 (مقدارش رو با توجه به مقدار درون تکست باکس در اون لحظه میگم)و کلیک موس رو رها میکنم.هنوز توی تکست باکس نوشته -20(توی کد هم همون -20 هست) حالا کافیه موس رو از ناحیه رنج بیرون ببرم تکست باکس سریعا میشه -23 توی کد هم همینطور.امیدوارم منظورمو فهمیده باشین.
barnamenevis2016
سه شنبه 26 خرداد 1394, 21:48 عصر
متوجه شدم...خوب شما توی تگ range رویداد onmousemove رو اعمال کردی که اگر موس روی range حرکت کرد مثلا تابع اجرا بشه....خوب به خاطر همین اگر دستی و بدون موس مقدار range رو تغییر بدید اون توابع دلخواهتون اجرا نخواهد شد و زمانی که موس روی اون بره اجرا خواهد شد.اون پرش هم واسه همینه....شما می تونی به جای استفاده از onmousemove از رویداد onChange استفاده کنی...که با تغییر مقدار range توابع اجرا بشن...حالا اگر دستی یعنی با کیبورد و بدون موس هم مقدار رو تغییر بدی...توابع اجرا می شن...ولی این روش یک محدودیتی داره اینه که اگر با موس رینج رو تغییر بدی تا موس رو رها نکردی تابع ها اجرا نخواهند شد....یعنی دیگه اون حالت ریال تایم و یا آنلاین رو نداره...که برای رفع این مشکل می تونی هم از onChange و هم onmousemove با هم در کنار هم استفاده کنی....البته شایدم یک رویدادی باشه که ریال تایم باشه و کار هردو رو باهم انجام بده که من در خاطرم نیست.
marasiali
سه شنبه 26 خرداد 1394, 22:02 عصر
ممنون
منظورم استفاده از کیبرد نبود همون چیزی که گفتم رو با موس مثال انجام دادنش رو زده بودم ولی بالاخره با استفاده همزمان از onmousemove و onChange حل شد.(جالبه که البته با اینکه این مشکلو حل کرد بازم موقع استفاده از کیبرد تغییر نمیکنه ولی مهم نیس اون برام)
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.