שלח תשובה

זירת השאלות

717
צפיות
8
תשובות

שאלה לגבי scroll ב-js

,‏ 21 באוקטובר, 2004

איך אני יכול לקבל את המיקום של הדף?
אני יודע ש- window.scrollBy(height,width) גולל את הדף למיקום הרצוי,
אבל איזה פונקציה מחזירה את המיקום הנוכחי של הדף?
תודה….

תגיות:

8 תשובות

  1. ניר טייב הגיב:


    יש שני אפשרויות שעליך לבחור את המתאימה ביותר:
    1. מה אורך הגלילה (כמה גללו מה-TOP של הסקרולר) שזה נעשה ע"פ התכונה scrollTop של אובייקט body של הדף:

    alert(document.body.scrollTop);

    התכונה מחזירה את מרחק הגלילה מה-TOP של הסקרולר

    2. אם מבוצע אירוע מסויים אז אפשר למצוא את המקום של האירוע ע"פ המאפיין pageY של אובייקט האירוע (event) או ע"י חיבור scrollTop עם clientY של אובייקט האירוע
    pageY/pageX – מחזיר את המרחק מה-TOP/LEFT של הדף שבו התבצע האירוע.
    clientX/clientY – מחזיר את המרחק מה-TOP/LEFT של חלון הדפדפן ולכן רק בשילוב מרחק הגלילה מגיעים למקום הנכון(בחלק של ה-Y).


    <head>
    <script type="text/javascript">
    function findCoords(e){
    var coordX = (!!e.pageX)?e.pageX:(e.clientX+(document.body.scrollLeft);
    var coordY = (!!e.pageY)?e.pageY:(e.clientY+document.body.scrollTop);
      alert("("+coordX+", "+coordY+")");
    }
    </script>
    </head>
    <body onmousedown="findCoords(event);">

    לפני קצת זמן (בערך שבוע נראה לי) היתה בעיה דומה לכך בפורום בוני אתרים בתפוז. אני אנסה לחפש אותו.

  2. בוב הגיב:

    איך אני שולט במסגרת?
    אני שולט בגולל דף כך:


    onclick="window.scrollTo(0,95);"

    איך אני שולט במסגרת שבתוך דף?
    כלומר כפתור בדף ראשי שגולל את הדף במסגרות שהוגדרה כך:


    <iframe src="page.html" width="90%" name="center_left" height="70" frameborder="1"></iframe>

    תודה!

  3. ניר טייב הגיב:

    נראה לי כך …

    document.getElementById("IFrame_Name").window.scrollTo(0,95);

  4. בוב הגיב:

    תודה, אבל זה לא עובד, גישה אחרת:
    איך אני יכול להגדיר למסגרת שהדף שהיא מציגה יופיע גלול לנקודה מסויימת?

    תודה!

  5. ניר טייב הגיב:


    יש דרך קצת עקומה לעשות את זה.
    בעמוד שב-IFRAME שים "עוגן" מסוים
    שאתה נותן את הכתובת ל-IFRAME אז קשר ישירות לעוגן.

    אני מקוה שזה יעבוד

  6. זהר פלד הגיב:

    window מיותר…
    כדי לגלול iFrame או frame :

    document.iFrameName.scrollTo(0,95);

    בשביל כפתורים שיעשו את זה, תסתכל כאן.
    סביר להניח שיש דרכים יותר יעילות לבצע את זה, אבל בתור דוגמא התחלתית זה יעזור.
    תרגיש חופשי להעתיק את הקוד, אחרי הכל אני כתבתי אותו

  7. בוב הגיב:

    אלוף אתה, תודה! עוד משהו…
    אני רוצה להציג להיכן נגלל הדף שבמסגרת, ניסיתי כך:

    alert(document.my_frame.scrollTop);

    כי כך זה עובד על הראשי:

    alert(document.body.scrollTop);

    ומשום מה זה מחזיר לי:  'undefined' ולא מספר…

    מישהו יודע מה אני אמור לעשות?
    תודה.

שלח תשובה