نمایش نتایج 1 تا 6 از 6

نام تاپیک: scrollTop

  1. #1
    کاربر دائمی
    تاریخ عضویت
    دی 1386
    محل زندگی
    shahrekord
    پست
    279

    scrollTop

    سلام دوستان. خسته نباشید.
    یه سوال دارم:
    من برای تشخیص رسیدن به انتهای صفحه از جاوااسکریپت استفاده کردم ولی در فایرفوکس تابع scrollTop کار نمیکنه.
    یعنی document.body.scrollTop که باید مقدار اسکرول شده را برگردونه فقط صفر برمیگردونه!!! ولی در کروم درست کار میکنه
    چیکار کنم؟




    باتشکر

  2. #2

    نقل قول: scrollTop

    بهترین کار استفاده از jQuery هست. ()scrollTop

    اما با javascript:

    window.onscroll = function() {
    if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {
    alert('this is the end.');
    }
    };

  3. #3
    کاربر دائمی
    تاریخ عضویت
    دی 1386
    محل زندگی
    shahrekord
    پست
    279

    نقل قول: scrollTop

    ممنون دوست عزیز
    البته خودم مشکل یه جوری حلش کرده بودم ولی بازم بسیار ممنون از جوابتون.
    حالا یه سوال دیگه

    من یه کدی شبیه به همین کدی که شما نوشتید نوشتم، بعد توی کروم و فایرفکس درست کار میکنه ولی توی اینترنت اکسپلورر این alert که نوشته شده وقتی که به انتهای صفحه میرسه چندین بار اجرا میشه، چرا؟؟ چیکارش کنم که درست بشه؟

    با تشکر

  4. #4

    نقل قول: scrollTop

    کد قبلی رو از یه سایت دیگه کپی کردم (یادم رفت منبع رو هم بنویسم)
    برای من توی فایرفاکس اون حالتی که گفتید پیش میاد و توی ie 10 درست اجرا شد!


    //تعریف متغیر جدید برای کنترل تعداد دفعات اجرای کد
    var scrollRunOnce = true;
    window.onscroll = function(e) {
    //برای اینکه توی همه مرورگرها مقدار اسکرول رو درست بدست بیاره
    var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;

    if ( (window.innerHeight + scrollTop) >= document.body.offsetHeight ) {
    //چک کردن برای اینکه مطمئن شیم کد فقط یکبار اجرا میشه
    if( scrollRunOnce ) {
    scrollRunOnce = false;
    alert('this is the end.');

    //برای دفعات بعد که اسکرول به انتهای صحفه میرسه
    setTimeout(function(){scrollRunOnce=true;},500);
    }
    }
    };

  5. #5
    کاربر دائمی
    تاریخ عضویت
    دی 1386
    محل زندگی
    shahrekord
    پست
    279

    نقل قول: scrollTop

    اون مشکلی که توی فایرفاکس باش مواجه میشین دلیلش چیز دیگس. به خاطر مقادیریه که برمیگردونه یعنی این شرطی که گذاشتین تو دفعات زیادی درست در میاد (یعنی مقدار scrolltop+innerheight به ازای خیلی از مقادیر scrolltop بیشتر از مقدار ofssetheight میشه).
    ولی من توی انترنت اکسپلورر 11 مشکل دارم اونم مثل اینه که چندبار Onscroll تریگر میشه. استفاده از فلگ که نوشتید راه خوبیه و بلد بودم ولی گفتم شاید راه دیگه ای داشته باشه که اصلا به کل این تابع الکی چندبار فراخونی نشه.
    بازم ممنون از وقتی که میگذارید.
    البته من هنوز به اونچیزی که میخوام نرسیدم (در صورتی که نخوام از فلگ استفاده کنم).

    با تشکر

  6. #6

    نقل قول: scrollTop

    پس بهتره از jquery استفاده کنید:


    $(window).scroll(function() {
    if( $(window).scrollTop() + $(window).height() >= $(document).height() ) {
    alert("بهترین روش...");
    }
    });

تاپیک های مشابه

  1. یه سوال در مورد position و scrollTop
    نوشته شده توسط olampiad در بخش jQuery
    پاسخ: 0
    آخرین پست: چهارشنبه 17 مهر 1392, 13:30 عصر
  2. scrollTop
    نوشته شده توسط olampiad در بخش jQuery
    پاسخ: 1
    آخرین پست: یک شنبه 14 مهر 1392, 06:36 صبح
  3. scrollTop and scrollLeft
    نوشته شده توسط jamejam123 در بخش jQuery
    پاسخ: 2
    آخرین پست: جمعه 08 شهریور 1392, 16:34 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •