Js很简单的小星星跟随鼠标特效代码_Js鼠标跟随效果

Js很简单的小星星跟随鼠标特效代码_Js鼠标跟随效果4317
Js很简单的小星星跟随鼠标特效代码_Js鼠标跟随效果4318
Js封装方法
var Follow = function () { var $ = function (i) {return document.getElementById(i)}, addEvent = function (o, e, f) {o.addEventListener ? o.addEventListener(e, f, false) : o.attachEvent('on'+e, function(){f.call(o)})}, OBJ = [], sp, rs, N = 0, m; var init = function (id, config) {  this.config = config || {};  this.obj = $(id);  sp = this.config.speed || 4;  rs = this.config.animR || 1;  m = {x: $(id).offsetWidth * .5, y: $(id).offsetHeight * .5};  this.setXY();  this.start(); } init.prototype = {  setXY : function () {   var _this = this;   addEvent(this.obj, 'mousemove', function (e) {    e = e || window.event;    m.x = e.clientX;    m.y = e.clientY;   })  },  start : function () {   var k = 180 / Math.PI, OO, o, _this = this, fn = this.config.fn;   OBJ[N++] = OO = new CObj(null, 0, 0);   for(var i=0;i<360;i+=20){    var O = OO;    for(var j=10; j<35; j+=1){     var x = fn(i, j).x,     y = fn(i, j).y;     OBJ[N++] = o = new CObj(O , x, y);     O = o;    }   }   setInterval(function() {    for (var i = 0; i < N; i++) OBJ[i].run();   }, 16);  } } var CObj = function (p, cx, cy) {  var obj = document.createElement("span");  this.css = obj.style;  this.css.position = "absolute";  this.css.left = "-1000px";  this.css.zIndex = 1000 - N;  document.getElementById("screen").appendChild(obj);  this.ddx = 0;  this.ddy = 0;  this.PX = 0;  this.PY = 0;  this.x = 0;  this.y = 0;  this.x0 = 0;  this.y0 = 0;  this.cx = cx;  this.cy = cy;  this.parent = p; } CObj.prototype.run = function () {  if (!this.parent) {   this.x0 = m.x;   this.y0 = m.y;  } else {   this.x0 = this.parent.x;   this.y0 = this.parent.y;  }  this.x = this.PX += (this.ddx += ((this.x0 - this.PX - this.ddx) + this.cx) / rs) / sp;  this.y = this.PY += (this.ddy += ((this.y0 - this.PY - this.ddy) + this.cy) / rs) / sp;  this.css.left = Math.round(this.x) + 'px';  this.css.top = Math.round(this.y) + 'px'; } return init;}();
调用很简单
new Follow('screen', { speed: 4, animR : 2, fn : function (i, j) {  return {   x : j/4*Math.cos(i),   y : j/4*Math.sin(i)  } }})

也许你还喜欢