웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
브라우저를 동적으로 부드럽게 리사이즈 하는 소스
2005.03.06 01:30
----------------------------------------------------------------------------
미리보기 : http://www.blueb.co.kr/bbs.php?table=JS_11&query=view&uid=131
----------------------------------------------------------------------------
<html>
<head>
<title> http://www.blueb.co.kr </title>
<script>
function resizeWin(maxX,maxY,speed,delay,win){
this.obj = "resizeWin" + (resizeWin.count++);
eval(this.obj + "=this");
if (!win) this.win = self; else this.win = eval(win);
if (!maxX) this.maxX = 400; else this.maxX = maxX;
if (!maxY) this.maxY = 300; else this.maxY = maxY;
if (!speed) this.speed = 1/2; else this.speed = 1/speed;
if (!delay) this.delay = 0; else this.delay = delay;
this.doResize = (document.all || document.getElementById);
this.stayCentered = false;
this.initWin = function(){
if (this.doResize){
this.resizeMe();
}
else {
this.win.resizeTo(this.maxX + 10, this.maxY - 20);
}
}
this.resizeMe = function(){
this.win.focus();
this.updateMe();
}
this.resizeTo = function(x,y){
this.maxX = x;
this.maxY = y;
this.resizeMe();
}
this.stayCentered = function(){
this.stayCentered = true;
}
this.updateMe = function(){
this.resizing = true;
var x = Math.ceil((this.maxX - this.getX()) * this.speed);
var y = Math.ceil((this.maxY - this.getY()) * this.speed);
if (x == 0 && this.getX() != this.maxX) {
if (this.getX() > this.maxX) x = -1;
else x = 1;
}
if (y == 0 && this.getY() != this.maxY){
if (this.getY() > this.maxY) y = -1;
else y = 1;
}
if (x == 0 && y == 0) {
this.resizing = false;
}
else {
this.win.top.resizeBy(parseInt(x),parseInt(y));
if (this.stayCentered == true) this.win.moveTo((screen.width - this.getX()) / 2,(screen.height - this.getY()) / 2);
setTimeout(this.obj + '.updateMe()',this.delay)
}
}
this.write = function(text){
if (document.all && this.win.document.all["coords"]) this.win.document.all["coords"].innerHTML = text;
else if (document.getElementById && this.win.document.getElementById("coords")) this.win.document.getElementById("coords").innerHTML = text;
}
this.getX = function(){
if (document.all) return (this.win.top.document.body.clientWidth + 10)
else if (document.getElementById)
return this.win.top.outerWidth;
else return this.win.top.outerWidth - 12;
}
this.getY = function(){
if (document.all) return (this.win.top.document.body.clientHeight + 29)
else if (document.getElementById)
return this.win.top.outerHeight;
else return this.win.top.outerHeight - 31;
}
this.onResize = function(){
if (this.doResize){
if (!this.resizing) this.resizeMe();
}
}
return this;
}
resizeWin.count = 0;
</script>
</head>
<BODY>
<b>
<a href=# onclick="javascript:dolion = new resizeWin(700,500);dolion.stayCentered();dolion.initWin();dolion.onResize();">윈도우 리사이즈 (700 x 500)1</a><br>
<a href=# onclick="javascript:dolion = new resizeWin(800,300);dolion.stayCentered();dolion.initWin();dolion.onResize();">윈도우 리사이즈 (800 x 300)2</a><br>
<a href=# onclick="javascript:dolion = new resizeWin(400,500);dolion.stayCentered();dolion.initWin();dolion.onResize();">윈도우 리사이즈 (400 x 500)3</a><br>
<a href=# onclick="javascript:dolion = new resizeWin(350,350);dolion.stayCentered();dolion.initWin();dolion.onResize();">윈도우 리사이즈 (350 x 350)4</a><br>
</b>
미리보기 : http://www.blueb.co.kr/bbs.php?table=JS_11&query=view&uid=131
----------------------------------------------------------------------------
<html>
<head>
<title> http://www.blueb.co.kr </title>
<script>
function resizeWin(maxX,maxY,speed,delay,win){
this.obj = "resizeWin" + (resizeWin.count++);
eval(this.obj + "=this");
if (!win) this.win = self; else this.win = eval(win);
if (!maxX) this.maxX = 400; else this.maxX = maxX;
if (!maxY) this.maxY = 300; else this.maxY = maxY;
if (!speed) this.speed = 1/2; else this.speed = 1/speed;
if (!delay) this.delay = 0; else this.delay = delay;
this.doResize = (document.all || document.getElementById);
this.stayCentered = false;
this.initWin = function(){
if (this.doResize){
this.resizeMe();
}
else {
this.win.resizeTo(this.maxX + 10, this.maxY - 20);
}
}
this.resizeMe = function(){
this.win.focus();
this.updateMe();
}
this.resizeTo = function(x,y){
this.maxX = x;
this.maxY = y;
this.resizeMe();
}
this.stayCentered = function(){
this.stayCentered = true;
}
this.updateMe = function(){
this.resizing = true;
var x = Math.ceil((this.maxX - this.getX()) * this.speed);
var y = Math.ceil((this.maxY - this.getY()) * this.speed);
if (x == 0 && this.getX() != this.maxX) {
if (this.getX() > this.maxX) x = -1;
else x = 1;
}
if (y == 0 && this.getY() != this.maxY){
if (this.getY() > this.maxY) y = -1;
else y = 1;
}
if (x == 0 && y == 0) {
this.resizing = false;
}
else {
this.win.top.resizeBy(parseInt(x),parseInt(y));
if (this.stayCentered == true) this.win.moveTo((screen.width - this.getX()) / 2,(screen.height - this.getY()) / 2);
setTimeout(this.obj + '.updateMe()',this.delay)
}
}
this.write = function(text){
if (document.all && this.win.document.all["coords"]) this.win.document.all["coords"].innerHTML = text;
else if (document.getElementById && this.win.document.getElementById("coords")) this.win.document.getElementById("coords").innerHTML = text;
}
this.getX = function(){
if (document.all) return (this.win.top.document.body.clientWidth + 10)
else if (document.getElementById)
return this.win.top.outerWidth;
else return this.win.top.outerWidth - 12;
}
this.getY = function(){
if (document.all) return (this.win.top.document.body.clientHeight + 29)
else if (document.getElementById)
return this.win.top.outerHeight;
else return this.win.top.outerHeight - 31;
}
this.onResize = function(){
if (this.doResize){
if (!this.resizing) this.resizeMe();
}
}
return this;
}
resizeWin.count = 0;
</script>
</head>
<BODY>
<b>
<a href=# onclick="javascript:dolion = new resizeWin(700,500);dolion.stayCentered();dolion.initWin();dolion.onResize();">윈도우 리사이즈 (700 x 500)1</a><br>
<a href=# onclick="javascript:dolion = new resizeWin(800,300);dolion.stayCentered();dolion.initWin();dolion.onResize();">윈도우 리사이즈 (800 x 300)2</a><br>
<a href=# onclick="javascript:dolion = new resizeWin(400,500);dolion.stayCentered();dolion.initWin();dolion.onResize();">윈도우 리사이즈 (400 x 500)3</a><br>
<a href=# onclick="javascript:dolion = new resizeWin(350,350);dolion.stayCentered();dolion.initWin();dolion.onResize();">윈도우 리사이즈 (350 x 350)4</a><br>
</b>
댓글 4
-
프템장
2005.03.06 21:00
멋지네요. 네스에서도 작동해서 더욱환상이군요. -
현원
2005.03.07 17:52
강추입니다 ㅠ_ㅜb 이거라면 창크기에 대한 걱정을 떨칠 수 있겠군요. 예를 들면 작은 모양의 홈피에 라던지 -
뮤직엔진
2005.03.07 19:18
와우~ 강추 동의합니다. 좋네요 잘 쓰겠습니다. ^^ -
김주영
2005.03.10 09:56
듀얼 모니터 쓰는 사람은 죽음이네요. ㅜ.ㅜ 리사이징 하면 무조건 왼쪽모니터로 와버리니.. 흠....
듀얼 옵션을 바까야 하나? 흠... 어떤걸루 바꿔요 이런 일이 안일어나려나..