ورود

View Full Version : مشکل با مرورگرها



olampiad
سه شنبه 10 شهریور 1394, 09:47 صبح
سلام و خسته نباشید به دوستان عزیز
به این کد من ی نگا بندازیدو
این کد من تو مرورگر کروم به راحتی کار میکنه ولی تو مرورگر فایر فاکس اجرا نمیشه.
مشکل از کجاست؟
آیا این کد دیگه منسوخ شده.
مرسی



setInterval(function(){


if(document.body.scrollTop>711){
document.getElementById('nav').style.display='bloc k';
}


if(document.body.scrollTop<710){
document.getElementById('nav').style.display='none ';
}


},10);

arenaw
سه شنبه 10 شهریور 1394, 14:06 عصر
بعید میدونم کد مشکل خاصی داشته باشه. به هر حال، بهتره که جای چک کردن مکان اسکرول بر اساس زمان (اینجا هر ۱۰ میلی‌ثانیه)، بر اساس ایونت اسکرول این کارها رو انجام بدین.

pbm_soy
سه شنبه 10 شهریور 1394, 14:39 عصر
این دستورات ، جزو دستورات مورد دار نیستند تازه کروم و فایرفاکس در رفتار با جاوا اسکریپت شبیه هم عمل میکنند
احتمالا مشکل شما فقط بخاطر شرطها است شرطها را حذف کنید و یا اینکه مقادیر داخل شرط را در شرایط مختلف در هر دو browser بررسی کنید

mhfarzin
جمعه 20 شهریور 1394, 18:09 عصر
مشکل از دستور document.body.scrollTop هست
به شکل زیر مشکلت حل میشه
در ضمن بهتره برای این کارا از event به جای تایمر استفاده کنی
http://www.w3schools.com/jsref/event_onscroll.asp



setInterval(function () {
var scrollTop = (document.documentElement.scrollTop || document.body.scrollTop);
if (scrollTop > 711) {
document.getElementById('nav').style.display = 'block';
}
if (scrollTop < 710) {
document.getElementById('nav').style.display = 'none';
}
}, 10);

kb0y667
چهارشنبه 25 شهریور 1394, 18:27 عصر
نیازی به تابع و 2 شرط و.... نبود
تایم 10 خیلی زیاده
حدود 100 مناسبه

اینم همون کد شماست بصورت بهینه شده :

setInterval("document.getElementById('nav').style.display=(docu ment.documentElement.scrollTop||document.body.scro llTop)<710?'none':'block';",99);

*** این سایت جهت حفظ امنیت بین حروف فاصله میذاره ، فاصله ها رو حذف کنید