萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 網路安全 >  >> 網路應用技術 >> 應用程式教學

神奇JS代碼:讓網頁圖片在瀏覽器中「跳舞」的視覺特效

效果演示

隨便打開一個圖片較多的網站(如優化論壇 https://bbs.youhua.com),在地址欄輸入以下代碼並回車,觀看頁面所有圖片開始按正弦/餘弦軌跡「飛舞」:

javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i

代碼原理解析

  1. DI=document.images:獲取頁面所有 <img> 元素集合。
  2. DIL=DI.length:圖片總數。
  3. function A(){...}:定義動畫幀函數,遍歷所有圖片:
    • 將圖片定位改為 position: absolute 脫離文檔流。
    • 計算新位置:
      left = Math.sin(R*x1 + i*x2 + x3) * x4 + x5
      top = Math.cos(R*y1 + i*y2 + y3) * y4 + y5
      其中 R 為幀計數器遞增,i 為圖片索引,x1~y5 為控制頻率、相位、振幅、中心點的參數。正弦/餘弦函數產生平滑的橢圓/利薩如軌跡。
  4. setInterval('A()',5):每5毫秒(約200FPS)執行一次動畫函數,極高頻率更新位置。
  5. void(0):防止瀏覽器導航到返回值。

適用範圍與限制

  • 僅適用於 Internet Explorer (Trident內核),現代瀏覽器(Chrome/Edge/Firefox/Safari)地址欄默認禁用 javascript: 協議執行,需在開發者工具 Console 執行。
  • 現代網站圖片多為 position: static/relative、CSS Grid/Flex 布局、懶加載、動態渲染(React/Vue),強制 absolute 會破壞佈局,且 document.images 可能不包含動態加載圖片。
  • 高頻 DOM 操作(200FPS × 圖片數)極度消耗CPU/GPU,會導致頁面卡頓、風扇狂轉,純屬娛樂/教學演示,**切勿用於生產環境**。

現代瀏覽器中體驗方法

  1. 打開目標頁面,按 F12 開啟開發者工具。
  2. 切換至 Console(控制台) 分頁。
  3. 粘貼上述代碼(去掉 javascript: 前綴)並回車執行。
  4. 欣賞圖片飛舞,再次執行或刷新頁面恢復正常。

學習價值

展示了 DOM操作、CSSOM操作、定時器、三角函數動畫、閉包/作用域 等前端核心技術的極簡組合。可作為JavaScript動畫入門範例,進而學習 requestAnimationFrame、CSS Transform/Transition/Animation、Web Animations API、Canvas/WebGL 高性能動畫最佳實踐。

copyright © 萬盛學電腦網 all rights reserved