2016-04-29 108 views
0

也許這個問題是不是在這樣的「問題/解決」的版本會發生什麼,但我仍然好奇: 在JavaScript中,當我們讓假想事件在觸發事件

_addEvent(window,"resize", 
      function(){ 
       location.reload(); // needed to reload page when it is resized 
       //somefunctions 
      } 
     ); 

,並做一些風格配置與事件[在somefunctions部分],頁面大小調整時,新的[resized]頁面以某種方式繼承以前修改的JavaScript和CSS,然後再次調整大小後去事件?

只是在頁面調整大小時再次調整大小時,對DOM對象進入槽的階段感到好奇。

真實世界示例:調整計算機上的瀏覽器窗口大小以適合屏幕的一半,然後再將其調整到全屏。

回答

0

調整頁面大小時,頁面內容不會被瀏覽器更改。窗口大小發生了變化,瀏覽器將在現有內容上再次運行佈局,以決定應該在新大小的窗口中顯示內容,然後觸發resize事件。

如果resize處理程序對DOM進行了更改,那麼瀏覽器將再次確定是否需要重新創建新佈局,但這不會觸發其他調整大小事件。

如果你正在做的調整大小處理(這聽起來像的方式一可怕的想法)一location.reload(),那麼你就裝了一個全新的頁面和新加載的頁面只會加載到當前窗口的大小。除非用戶再次更改窗口大小,否則新加載的頁面將不會再有其他大小調整事件。

location.reload()不會從上一頁繼承cookie和localStorage之外的任何內容。內容從頭開始重新加載(其中一些可能來自緩存),瀏覽器從頭開始解析並重新開始新頁面。這就像在瀏覽器中按F5來重新加載頁面一樣。

+0

感謝您的領導! :D我剛剛從一些代碼複製,甚至沒有注意到: 但如果我有一些div,這是在左側的全屏視圖和右側的一半屏幕視圖和更小的尺寸,所有這是由js(不包括CSS)是否仍然是相同的過程? – Danilo

+0

@達尼洛 - 同樣的過程。無論你的JS在做什麼,「resize」事件都會發生。您可以使用JS在「resize」事件中定位或調整元素的大小。這並沒有改變任何關於resize事件。只有在調整包含窗口的大小時,纔會調整大小事件。它與被更改的內容無關。 – jfriend00

+0

感謝一堆:D很酷的知道。 – Danilo