亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jQuery實現的分子運動小球碰撞效果

2019-11-20 10:40:25
字體:
來源:轉載
供稿:網友

本文實例講述了jQuery實現的分子運動小球碰撞效果。分享給大家供大家參考,具體如下:

先看效果圖吧,因為小球是運動狀態的,不好截圖,這里就先大體畫了一下路線,表示大體意思吧,如果想看真實的效果,自己粘貼下去運行:

小球有點小喲,嘿嘿,沒有對細節進行詳細的處理,如果像讓它完美一點,自己處理下吧!這里是模擬的理想狀態下的,沒有摩擦力與組里的分子碰撞運動,高科技喲~~~~~~mu~a
代碼也沒有整理,如果有心的話,把它整理成面向對象形式的吧!

代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>  <title></title>  <script src="jquery-1.7.1.min.js" type="text/javascript"></script>  <script type="text/javascript" >    var dim_half_past_PI = dimAngle(Math.PI / 2); // Math.PI/2的約數    var lastAngle = dimAngle(Math.PI/8); // 發射角度(0-dimAngle(Math.PI))    var v = 120; //飛行速度【>0】    var lastPosition = {}; // 最后一次碰撞坐標    var lastTime = ""; // 最后一次碰撞時間    var lastDirection = "top"; // 開始發射方向(top,bottom,left,right)    var horizen = 1; // 水品方向的積數    var vertical = 1; // 豎直方向的積數    var box = {};    function dimAngle(angle) {      var tempAngle = angle + "";      return parseFloat(tempAngle.substring(0, 6));    }    function getWillDirection(position, box) {      var direction = lastDirection;      if (position.x < box.left) {        direction = "right";      }      if (position.x > box.right) {         direction = "left"      }      if (position.y < box.top) {        direction = "bottom";      }      if (position.y > box.bottom) {        direction = "top";      }      return direction;    }    function getScale(direction, angle) {       switch(direction){        case "top":          vertical = -1;          if (angle < dim_half_past_PI) {            horizen = 1;          }          if (angle > dim_half_past_PI) {            horizen = -1;          }          if (angle == dim_half_past_PI) {            horizen = 0;          }          break;        case "left":          horizen = -1;          if (angle > dim_half_past_PI) {            vertical = 1;          }          if (angle < dim_half_past_PI) {            vertical = -1;          }          if (angle == dim_half_past_PI) {            vertical = 0;          }          break;        case "bottom":          vertical = 1;          if(angle > dim_half_past_PI) {            horizen = 1;          }          if(angle < dim_half_past_PI) {            horizen = -1;          }          if(angle == dim_half_past_PI) {            horizen = 0;          }          break;        case "right":          horizen = 1;          if (angle > dim_half_past_PI) {            vertical = -1;          }          if (angle < dim_half_past_PI) {            vertical = 1;          }          if (angle == dim_half_past_PI) {            vertical = 0;          }          break;      }    }    function getOutAngle(inAngle) {      if (inAngle == dim_half_past_PI || inAngle == 0) {        return inAngle;      } else {        return dim_half_past_PI - inAngle;      }    }    function setPosition(obj, position) {      obj.css({ "left": position.x +"px", "top": position.y +"px"});    }    function run(obj) {      var vx = Math.cos(lastAngle) * v;      var vy = Math.sin(lastAngle) * v;      var runTime = (new Date().getTime() - lastTime) / 1000;      getScale(lastDirection, lastAngle);      var sx = vx * runTime * horizen;      var sy = vy * runTime * vertical;      var position = {        x: lastPosition.x + sx,        y: lastPosition.y + sy      };      setPosition(obj, position);      var currentDirection = getWillDirection(position, box);      console.log(currentDirection +":"+lastDirection+":"+vertical+":"+horizen+":"+lastAngle+":"+dim_half_past_PI);      // 如果沒有發生碰撞      if (currentDirection != lastDirection) {        // 如果發生了碰撞        lastDirection = currentDirection;        lastPosition = position;        lastTime = new Date().getTime();        lastAngle = getOutAngle(lastAngle);      }      setTimeout(function () {        run(obj);      }, 30);    }    $(document).ready(function () {      var boxer = $("#box");      var x = parseInt(boxer.offset().left);      var y = parseInt(boxer.offset().top);      box = {        left: x,        top: y,        right: x + boxer.width(),        bottom: y + boxer.height()      };      var runner = $("#runner");      lastTime = new Date().getTime();      lastPosition = {        x: x,        y: y + boxer.height()      };      run(runner);    });  </script>  <style type="text/css" >  body { margin:0; padding:0; }  #box { margin:0 auto; width:500px; height:500px; border:3px solid #DDDDDD; border-radius:4px; -wekit-border-radius:4px; -moz-border-radius:4px;}  #runner { width:10px; height:10px; font-size:10px; color:black; padding:0; position:absolute; left:100px; top:480px;}  </style></head><body><div id="box"><div id="runner">●</div></div></body></html>

更多關于jQuery特效相關內容感興趣的讀者可查看本站專題:《jQuery常見經典特效匯總》及《jQuery動畫與特效用法總結

希望本文所述對大家jQuery程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩在线免费视频| 久久久免费电影| 91老司机精品视频| 久久免费福利视频| 国产精品高清在线观看| 亚洲字幕在线观看| 午夜精品久久久久久99热| 日韩av黄色在线观看| 欧美日韩综合视频| 岛国av一区二区在线在线观看| 一区二区三区四区视频| 久久国产精品网站| 亚洲一区二区久久久久久| 国产91精品视频在线观看| 一区二区亚洲欧洲国产日韩| 成人福利在线视频| 亚洲精品美女网站| 日韩精品久久久久久福利| 国产精品国产福利国产秒拍| 日韩资源在线观看| 欧美色道久久88综合亚洲精品| 成人自拍性视频| 97久久精品国产| 欧美一级bbbbb性bbbb喷潮片| 久久亚洲精品小早川怜子66| 久久久国产影院| 一区二区亚洲精品国产| 狠狠爱在线视频一区| 色综合亚洲精品激情狠狠| 亚洲无亚洲人成网站77777| 欧美国产激情18| 欧美成人网在线| 欧美大片免费观看在线观看网站推荐| 亚洲图片欧洲图片av| 久久夜色精品国产欧美乱| 国产成人涩涩涩视频在线观看| 日韩欧美高清在线视频| 欧美理论电影在线观看| 亚洲网在线观看| 亚洲黄色www| 国产999精品久久久| 欧美日本在线视频中文字字幕| 国产一区二区三区高清在线观看| 国产一区二区三区毛片| 国产欧美日韩中文字幕| 日韩中文字幕在线| 欧美日本高清一区| 精品国产乱码久久久久久婷婷| 国产一区二区日韩精品欧美精品| 最近2019年中文视频免费在线观看| 亚洲国产三级网| 中文字幕精品影院| 欧美国产日韩在线| 性欧美xxxx视频在线观看| 国产日韩精品在线播放| 日韩欧美精品在线观看| 日韩av中文在线| 久久国产精品亚洲| 亚洲黄色www| 国产精品极品尤物在线观看| 色偷偷av一区二区三区| 日韩美女在线观看一区| 亚洲www视频| 91久久在线视频| 亚洲日本中文字幕免费在线不卡| 欧美日韩xxxxx| 久久精品电影一区二区| 91视频国产一区| 亚洲第一视频网| 91精品视频网站| 久久中文精品视频| 亚洲美女免费精品视频在线观看| 九九久久综合网站| 国产成人一区二区三区小说| 欧美电影免费观看大全| 日韩在线观看成人| 欧美成人午夜激情视频| 最近中文字幕2019免费| 欧美日韩国产在线播放| 一区二区三区回区在观看免费视频| 欧美电影在线观看网站| 精品中文字幕久久久久久| 国产日韩欧美电影在线观看| 一区二区在线视频播放| 亚洲精品国产精品国自产在线| 中文字幕亚洲图片| 77777少妇光屁股久久一区| 欧美日韩一区二区免费在线观看| 色在人av网站天堂精品| 92看片淫黄大片看国产片| 亚洲午夜av电影| 欧美精品999| 57pao国产成人免费| 福利一区视频在线观看| 69久久夜色精品国产69| 欧美日韩免费区域视频在线观看| 国产精品亚洲欧美导航| 国产精品免费看久久久香蕉| 国产精品入口尤物| 亚洲自拍偷拍视频| 黑人精品xxx一区| 中文字幕日韩视频| 亚洲视频综合网| 91精品国产91久久久久久不卡| 91wwwcom在线观看| 福利视频第一区| 国产视频精品xxxx| 国产偷亚洲偷欧美偷精品| 国产一区二区久久精品| 91九色视频导航| 亚洲美女又黄又爽在线观看| 成人欧美一区二区三区在线湿哒哒| 欧美日韩在线看| 国产中文字幕91| 欧美成年人视频| 国产精品久久久久久久久久尿| 色先锋久久影院av| 激情亚洲一区二区三区四区| 色偷偷综合社区| 亚洲成人av在线| 久久精品国产精品| 日韩在线激情视频| 国产精品香蕉国产| 91精品国产成人www| 欧美孕妇与黑人孕交| 国产成人aa精品一区在线播放| 国产精品99久久久久久久久久久久| 欧美老肥婆性猛交视频| 久久久国产精品亚洲一区| 久久视频在线直播| 亚洲欧美制服综合另类| 日韩在线精品视频| 亚洲第一网中文字幕| 国产乱人伦真实精品视频| 国产精品海角社区在线观看| 亚洲91精品在线观看| 日韩中文字幕免费看| 欧美一级电影久久| 国产精品白嫩美女在线观看| 亚洲嫩模很污视频| 国产精品视频精品视频| 日韩在线中文字| 日韩在线一区二区三区免费视频| 久久999免费视频| 国模叶桐国产精品一区| 色综合久久88色综合天天看泰| 51精品国产黑色丝袜高跟鞋| 欧美性猛交xxxx乱大交| 欧美亚洲国产成人精品| 国产亚洲欧美日韩精品| 欧美日韩国产第一页| 国产精品大陆在线观看| 色偷偷91综合久久噜噜| 伊人男人综合视频网| 国产欧美一区二区三区在线| 欧美一级成年大片在线观看| 在线精品国产欧美| 亚洲激情小视频| 欧美激情va永久在线播放| 欧美高清激情视频| 国产精品高潮视频| 中文国产亚洲喷潮| 狠狠爱在线视频一区| 日韩av片电影专区|