Kor
05-24-2004, 12:44 PM
I have wrote this for a friend in another forum, But I thought it might be useful, at least for start for similar apllication.
Tho code scrolles the page if mouse moves in the 1/3 zones (left, right, up, down) of the page (clientWidth/Height). It might be modify (a better ideea, since I don't like scrolled full pages - at least the X-scrolled) for scrollable frames, iframes or layers). I would be grateful if any comments will simplify he code or will help me to build a similar application based on simple position of the mouse (not only on mousemove)
<html>
<head>
<script>
function setUp() {
if( typeof( window.innerWidth ) == 'number' ) {
/* Non-IE */
winW = window.innerWidth;
winH = window.innerHeight;
} else if( document.documentElement &&
( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
/* IE 6+ in 'standards compliant mode' */
winW = document.documentElement.clientWidth;
winH = document.documentElement.clientHeight;
} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
/*IE 4 compatible*/
winW = document.body.clientWidth;
winH = document.body.clientHeight;
}
setL = winW/3;// zone left first 1/3 from client width
setR = winW*2/3;// zone right third 1/3 from client width
setU = winH/3;// zone up first 1/3 from client height
setD = winH*2/3;// zone down third 1/3 from client width
pix=4// scroll speed control pixels/mousemove
}
function checkS(e){
// capture the mouse position
var posx = 0;
var posy = 0;
if (!e) var e = window.event;
if (e.pageX || e.pageY)
{
posx = e.pageX;
posy = e.pageY;
}
else if (e.clientX || e.clientY)
{
posx = e.clientX;
posy = e.clientY;
}
// initialize the scrollBy parameters
x=0;
y=0;
// set the new scrollBy parameters
if(posx<setL){
x=-pix;
}
if(posx>setR){
x=pix;
}
if(posy<setU){
y=-pix;
}
if(posy>setD){
y=pix;
}
// scroll
window.scrollBy(x,y);
}
</script>
</head>
<body onload="setUp()" onmousemove="checkS(event)">
<table width="1200" height="900" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center" valign="middle" bgcolor="#CCCCCC">blabla</td>
</tr>
</table>
</body>
</html>
Tho code scrolles the page if mouse moves in the 1/3 zones (left, right, up, down) of the page (clientWidth/Height). It might be modify (a better ideea, since I don't like scrolled full pages - at least the X-scrolled) for scrollable frames, iframes or layers). I would be grateful if any comments will simplify he code or will help me to build a similar application based on simple position of the mouse (not only on mousemove)
<html>
<head>
<script>
function setUp() {
if( typeof( window.innerWidth ) == 'number' ) {
/* Non-IE */
winW = window.innerWidth;
winH = window.innerHeight;
} else if( document.documentElement &&
( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
/* IE 6+ in 'standards compliant mode' */
winW = document.documentElement.clientWidth;
winH = document.documentElement.clientHeight;
} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
/*IE 4 compatible*/
winW = document.body.clientWidth;
winH = document.body.clientHeight;
}
setL = winW/3;// zone left first 1/3 from client width
setR = winW*2/3;// zone right third 1/3 from client width
setU = winH/3;// zone up first 1/3 from client height
setD = winH*2/3;// zone down third 1/3 from client width
pix=4// scroll speed control pixels/mousemove
}
function checkS(e){
// capture the mouse position
var posx = 0;
var posy = 0;
if (!e) var e = window.event;
if (e.pageX || e.pageY)
{
posx = e.pageX;
posy = e.pageY;
}
else if (e.clientX || e.clientY)
{
posx = e.clientX;
posy = e.clientY;
}
// initialize the scrollBy parameters
x=0;
y=0;
// set the new scrollBy parameters
if(posx<setL){
x=-pix;
}
if(posx>setR){
x=pix;
}
if(posy<setU){
y=-pix;
}
if(posy>setD){
y=pix;
}
// scroll
window.scrollBy(x,y);
}
</script>
</head>
<body onload="setUp()" onmousemove="checkS(event)">
<table width="1200" height="900" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center" valign="middle" bgcolor="#CCCCCC">blabla</td>
</tr>
</table>
</body>
</html>