Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[JavaScript] Frame-scrollscript

None
1 antwoord
  • Hoi iedereen,

    Michiel en ik zijn bezig met het maken van een scrollscript in een frame dat een ander frame aan kan spreken, zie onderstaande code:


    //pagina waar de scroll in plaatst moet vinden

    [code:1:3404a5f8f6]
    <html>

    <head>
    <title>Horizontal Scroll</title>



    <SCRIPT LANGUAGE="JavaScript">

    self.focus();


    //
    // ====== Function: scroll scrolls window or frame to the top or lest
    // Parm: p_start x/y coordinate of start position
    // p_stop x/y coordinate of stop position
    // p_pixel define pixels for a scroll
    // p_interval define interval for a scroll
    // p_dest destination (top/left)
    // Return value: none
    //

    var gl_scroller_timer_id;
    var gl_scroller_start;
    var gl_scroller_stop;
    var gl_scroller_pixel;
    var gl_scroller_interval;
    var gl_scroller_dest;
    var gl_scroller_current_pos;

    function scroller(p_start, p_stop, p_pixel, p_interval, p_dest){
    gl_scroller_stop = p_stop;
    gl_scroller_pixel = p_pixel;
    gl_scroller_interval = p_interval;
    gl_scroller_dest = p_dest;
    if (gl_scroller_current_pos == p_start){
    gl_scroller_start = p_start;
    } else {
    gl_scroller_start = gl_scroller_current_pos; // if reached to the stop position, stop scrolling
    }
    scroll_exe();
    }

    // ====== Function: scroll_exe execute scrolling, called from scroller

    function scroll_exe(){
    gl_scroller_start = gl_scroller_start + gl_scroller_pixel; // determine new start position
    if (gl_scroller_dest == "right"){
    self.scroll(0, gl_scroller_start);

    gl_scroller_current_pos = document.body.offsetWidth;

    } else if(gl_scroller_dest == "left"){
    self.scroll(gl_scroller_start, 0); // scrolling window or frame to the left

    gl_scroller_current_pos = document.body.offsetWidth;

    }
    if (gl_scroller_start < gl_scroller_stop){
    gl_scroller_timer_id = setTimeout("scroll_exe()", gl_scroller_interval);
    } else {
    clearTimeout(gl_scroller_timer_id); // if reached to the stop position, stop scrolling
    }
    }

    function stop() {
    clearTimeout(gl_scroller_timer_id);
    }

    </SCRIPT>

    </head>

    <body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

    <table WIDTH="100" border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td>
    <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
    codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
    WIDTH="1973" HEIGHT="434" id="PP_final_links" ALIGN="">
    <PARAM NAME=movie VALUE="PP_final_links.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#000000> <EMBED src="PP_final_links.swf" quality=high bgcolor=#000000 WIDTH="2137" HEIGHT="470" NAME="PP_final_links" ALIGN=""
    TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>
    </OBJECT>

    </td>
    <td>
    <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
    codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
    WIDTH="2378" HEIGHT="434" id="PP_final_rechts" ALIGN="">
    <PARAM NAME=movie VALUE="PP_final_rechts.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#000000> <EMBED src="PP_final_rechts.swf" quality=high bgcolor=#000000 WIDTH="2576" HEIGHT="470" NAME="PP_final_rechts" ALIGN=""
    TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>
    </OBJECT>

    </td>

    </tr>
    </table>

    </body>

    </html>
    [/code:1:3404a5f8f6]

    //Het navigatieframe, met knoppen voor links en rechts

    [code:1:3404a5f8f6]
    <html>

    <head>
    <title>top/bottom</title>
    </head>

    <body bgcolor="#000000" leftmargin="0" topmargin="2" marginwidth="0" marginheight="2">

    <!–<INPUT TYPE="button" NAME="i_x" VALUE="Horizontal" onClick="top.frame_x.scroller(0,2000,15,100,'left');">–>
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td valign="top">
    <INPUT TYPE="button" NAME="i_x" VALUE="Naar rechts" onmouseOver="top.frame_x.scroller(0,4351,5,1,'left');" onmouseOut="top.frame_x.stop();"></td>
    <td valign="top" align="right">
    <INPUT TYPE="button" NAME="i_-x" VALUE="Naar links" onmouseOver="top.frame_x.scroller(4351,0,5,1,'right');" onmouseOut="top.frame_x.stop();">
    </td>
    </tr>
    </table>



    <!–<br>
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td bgcolor="#ffffff">
    &nbsp;
    </td>
    </tr>
    </table>–>


    </body>

    </html>
    [/code:1:3404a5f8f6]

    De bedoeling is dat de positie van de scrollpagina 'bewaard' blijft om zo, bij de volgende onMouseOver op de knop, door te kunnen scrollen vanaf deze positie.
    Ik dacht dit te kunnen bereiken met het bovenstaande if-statement en met het [i:3404a5f8f6]self.pageXOffset[/i:3404a5f8f6], maar dat werkt maar half en daarbij alleen in Nutscape. Ook het [i:3404a5f8f6]document.body.OffsetWidth[/i:3404a5f8f6]-attribuut voor IE werkt niet goed.

    Heeft iemand een idee?

    Alvast bedankt voor de hulp,

    :wink:

    Michiel en Djurre

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.