在javascript中限制图像的位置到可视区域?

时间:2011-03-10 03:01:30

标签: javascript image

所以我有这个脚本来移动图像。但我想这样做,所以我不能将图像的底部移动到底部60像素上方。

function right(id) {
    document.getElementById(id).style.left.match(/^([0-9]+)/);
    var current = RegExp.$1; // get just the number and not the units
    document.getElementById(id).style.left = current - 5 + 'px'; // taking advantage of JavaScript's strange but sometimes useful type conversion. The subtraction converts it to an int and the addition converts it back to a string. 
    document.getElementById(id).src = 'guyr.png'
}

function left(id) {
    document.getElementById(id).style.left.match(/^([0-9]+)/);
    var current = RegExp.$1;
    document.getElementById(id).style.left = parseInt(current) + 5 + 'px'; // here we can't use that trick
}

function up(id) {
    document.getElementById(id).style.top.match(/^([0-9]+)/);
    var current = RegExp.$1;
    document.getElementById(id).style.top = current - 5 + 'px';
}

function down(id) {
    document.getElementById(id).style.top.match(/^([0-9]+)/);
    var current = RegExp.$1;
    document.getElementById(id).style.top = parseInt(current) + 5 + 'px';
}

1 个答案:

答案 0 :(得分:0)

首先,您必须检测浏览器的高度:

var myHeight;
if( typeof( window.innerHeight ) == 'number' ) { 
  //Non-IE    
  myHeight = window.innerHeight; 
} else if( document.documentElement && ( document.documentElement.clientHeight ) ) { 
  //IE 6+ in 'standards compliant mode' 
  myHeight = document.documentElement.clientHeight; 
} else if( document.body && ( document.body.clientHeight ) ) { 
  //IE 4 compatible 
  myHeight = document.body.clientHeight; 
} 

然后,您可以设置条件:

if(current > myHeight - 60) {
  // do your function
}