JavaScript視窗功能指南之操縱視窗 (轉)

worldblog發表於2007-12-04
JavaScript視窗功能指南之操縱視窗 (轉)[@more@]script視窗功能指南之操縱視窗
(作者:聽風編譯 2001年01月19日 11:35)

  一旦你得到了表示視窗的變數,你就能透過各種方法來操縱它。在前面的介紹中,我們討論過close()方法:

  win = window.open("", "js");

  win.close();

  提供了許多方法與屬性,我們可以使用它們來控制視窗。

  移動、滾動、改變大小

  下面的方法(N4+,IE4+)負責個定視窗的移動、滾動以及大小改變操作:

  // 移動視窗的螢幕位置到指定的偏移x 、y(絕對移動)

  window.moveTo(iX, iY)

  // 移動視窗的螢幕位置到指定的偏移x 、y(相對移動)

  window.moveBy(iX, iY)

  // 滾動視窗的螢幕位置到指定的偏移x 、y(絕對滾動)

  window.scrollTo(iX, iY)

  // 滾動視窗的螢幕位置到指定的偏移x 、y(相對滾動)

  window.scrollBy(iX, iY)

  // 改變視窗大小到指定的高度與寬度(絕對改變大小)

  window.resizeTo(iWidth, iHeight)

  // 改變視窗大小到指定的高度與寬度(相對改變大小)

  window.resizeBy(iX, iY)

  注意,這些方法都屬於window,所以它們智慧在當前視窗或者其他可以引用的視窗被。如果你想動態設定視窗的位置和尺寸,就可以在視窗建立後使用move和resize方法。

  注意,控制一個包含其他頁面的視窗是不可能的。

最大化視窗
  我們現在來介紹如何製作一個點選後可最大化視窗的按鈕。

  下面看看有關這個按鈕的HTML和JavaScript程式碼:

  

  


  注意,resizeTo()方法引用整個視窗的尺寸。

一個懸浮的廣告
  在網站上,透過移動廣告視窗,能夠吸引瀏覽者的注意力。我們可以透過下面的來實現讓視窗左右移動的效果:

  function makeAd() {

   window.open("adpage.html", "ad", "width=468,innerWidth=468,height=80,innerHeight=80,left=0,top=0");

  }

  下面是頁面adpage.html的程式碼:

  

  當頁面adpage.html裝載後,函式startAD()被執行。如果的支援window.screen物件,視窗才能移動,因為我們需要使用window.screen來計算螢幕的寬度。視窗在螢幕的上邊界滑動,從左上角(pos=0)一直到右上角。

  透過內建的setInterval()函式,每隔50毫秒移動廣告視窗5個象素。如果點選了“stop”按鈕,就將執行下面的語句:

  clearInterval(timerID);

震動的視窗
  如你所見,move方法能幫助你吸引使用者的注意力。如果你想讓訪問者更加震撼,你也許想加入下面的效果:

  

  這段指令碼產生一系列的地震效果。當頁面被轉載時(window.onload),就開始產生效果。

  jump()方法返回一個隨機整數,範圍從-maxShift到maxShift。下面的程式碼段負責一個單一震動:

  for (var i = 0; i < (minJumps + (Math.random() * (maxJumps - minJumps))); i++) {

   dX = jump();

   dY = jump();

   window.moveBy(dX, dY);

   totalX -= dX;

   totalY -= dY;

  }

  由於我們沒有辦法得知視窗的初始位置,我們就必須跟蹤每一次位置調整後的尺寸。totalX和totalY變數中保持了視窗相對於初始位置的數值。當震動效果完畢後,視窗移動回到初始位置。

  window.moveBy(totalX, totalY);

  totalX = 0;

  totalY = 0;

  在一個任意位置暫停後,winShake()函式再次被呼叫:

  quakeID = setTimeout("winShake()", Math.ceil(Math.random() *

   (maxBetweenQuakes - minBetweenQuakes)) + minBetweenQuakes);



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988299/,如需轉載,請註明出處,否則將追究法律責任。

相關文章