JavaScript隨機漂浮碰壁效果
本章節分享一段程式碼例項,實現了元素隨機漂浮,在邊緣會有觸碰效果。
程式碼比較常見於漂浮廣告,當然這種廣告是不推薦使用的,讓人感覺厭煩。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> *{ margin: 0; padding: 0; border: 0; } #main{ position: absolute; top: 0; left: 0; cursor: pointer; } #img{ width: 100px; height: 120px; background: #faa; } </style> <script type="text/javascript"> window.onload = function() { var main = document.getElementById("main"); sy = 0; speedy = 2; sx = 0; speedx = 2; imgh = 120; imgw = 100; winh = document.documentElement.clientHeight; winw = document.documentElement.clientWidth; function start() { sobj = setInterval(function() { sy += speedy; sx += speedx; //y軸運動 if (sy <= 0) { speedy = -speedy; } if (sy >= winh - imgh) { speedy = -speedy; sy = winh - imgh; } //x軸運動 if (sx <= 0) { speedx = -speedx; } if (sx >= winw - imgw) { speedx = -speedx; sx = winw - imgw; } main.style.top = sy + 'px'; main.style.left = sx + 'px'; }, 10) } start(); main.onmouseover= function() { clearInterval(sobj); } main.onmouseout= function() { start(); } } </script> </head> <body> <div id="main"> <div id="img"></div> </div> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).window.onload = function() {},當文件內容完全載入完畢再去執行函式中的程式碼。
(2).var main = document.getElementById("main"),獲取元素物件;本程式碼用div替代圖片,main元素就作為這個圖片的父元素。
(3).sy = 0,宣告一個變數並賦值為0,用來存main元素的縱向座標值。
(4).speedy = 2,宣告一個變數並賦值為2,用來規定縱向運動速度。
(5).sx = 0,宣告一個變數並賦值為0,用來存main元素的橫向座標值。
(6).speedx = 2,宣告一個變數並賦值為2,用來規定橫向運動速度。
(7).imgh = 120,圖片的高度。
(8).imgw = 100,圖片的寬度。
(9).winh = document.documentElement.clientHeight,獲取可視區域的高度。
(10).winw = document.documentElement.clientWidth,獲取可視區域的寬度。
(11).function start() {},此函式是功能實現的核心。
(12).sobj = setInterval(function() {},10),每隔10毫秒執行一次回撥函式。
(13).sy += speedy,設定橫向座標值。
(14).sx += speedx,設定縱向座標值。
(15).if (sy <= 0) {
speedy = -speedy;
},如果sy小於等於0,當開始速度是正數,這時候肯定是向下運動,必定會向下運動,當快衝出最低端的時候,速度也會取反,變為負數,這樣元素就向上運動,當要衝出可是去頂端,那麼就將運動速度取反,變為正數,也就會向下運動了。
(16).if (sy >= winh - imgh) {
speedy = -speedy;
sy = winh - imgh;
},上面其實已經介紹了,這裡不再重複。
(17).main.onmouseenter = function() {
clearInterval(sobj);
},當受不了懸浮,會停止運動。
(18).main.onmouseleave = function() {
start();
},滑鼠離開,開始運動。
二.相關閱讀:
(1).獲取瀏覽器客戶區尺寸參閱javascript獲取瀏覽器視口尺寸程式碼例項一章節。
(2).onmouseover事件參閱javascript mouseover事件一章節。
(3).clearInterval()參閱clearInterval()一章節。
(4).onmouseout事件參閱javascript mouseout事件一章節。
(5).document.getElementById()參閱document.getElementById()一章節。
相關文章
- canvas小球碰壁隨機運動Canvas隨機
- JavaScript實現隨機抽獎效果JavaScript隨機
- canvas小球碰壁效果Canvas
- JavaScript小球碰壁詳解JavaScript
- Flutter動畫實現粒子漂浮效果Flutter動畫
- JavaScript、CSS實現滑鼠跟隨繁花效果JavaScriptCSS
- JavaScript 生成隨機數JavaScript隨機
- JavaScript跟隨滑鼠移動的圖片效果JavaScript
- JavaScript 打字機效果詳解JavaScript
- JavaScript隨機數的應用JavaScript隨機
- javaScript隨機排序演算法JavaScript隨機排序演算法
- JavaScript生成隨機顏色值JavaScript隨機
- JavaScript 陣列隨機不重複元素JavaScript陣列隨機
- 跟隨滑鼠移動可關閉的漂浮圖片廣告
- 實現一個炫酷的隨機標籤排列效果(顏色隨機,大小隨機,成菱形排列的列表)隨機
- JavaScript隨機五位數驗證碼JavaScript隨機
- JavaScript隨機數實現防止快取JavaScript隨機快取
- JavaScript拖拽效果JavaScript
- JavaScript li元素的順序隨機打亂JavaScript隨機
- JavaScript 陣列中元素隨機打亂排序JavaScript陣列隨機排序
- JavaScript陣列中隨機取出不重複項JavaScript陣列隨機
- JavaScript隨機輸出大小寫字母程式碼JavaScript隨機
- javascript實現隨機小方塊小案例(原型)JavaScript隨機原型
- 漂浮廣告是什麼?漂浮廣告如何設定
- 河道漂浮物監測識別攝像機
- JavaScript 秒錶效果JavaScript
- 【Javascript + Vue】實現隨機生成迷宮圖片JavaScriptVue隨機
- JavaScript 獲取0-1之間的隨機數JavaScript隨機
- 前端學習程式碼例項-JavaScript 生成隨機數前端JavaScript隨機
- JavaScript元素抖動效果JavaScript
- JavaScript 省市級聯效果JavaScript
- jquery實現的讓圖片在網頁的可視區域裡四處漂浮的效果jQuery網頁
- python生成隨機數、隨機字串Python隨機字串
- JavaScript 圖片放大鏡效果JavaScript
- JavaScript 秒錶效果詳解JavaScript
- JavaScript 表格隔行變色效果JavaScript
- JavaScript 視窗抖動效果JavaScript
- JavaScript tab選項卡效果JavaScript