js實現的加分後出現漸隱提示效果

admin發表於2017-04-01

現在很多網站一些功能都有這樣的效果,那就是會出現一個會漸隱的提示框效果。

比如本站每天登陸的時候會有一個積分增加的提示框效果,然後這個提示框出現後漸隱消失。

下面就通過程式碼例項介紹一下如何實現類似的功能。

程式碼如下:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<script>
var x=window.x||{};
x.creat=function(t,b,c,d){
  this.t=t;
  this.b=b;
  this.c=c;
  this.d=d;
  this.op=1;
  this.div=document.createElement("div");
  this.div.style.height="40px";
  this.div.style.width="100px";
  this.div.style.background="red";
  this.div.style.position="absolute";
  this.div.style.left="50%";
  this.div.style.marginLeft="-50px"
  this.div.style.marginTop="-20px"
  this.div.innerText="經驗值加一"
  this.div.style.fontSize="12"
  this.div.style.lineHeight=this.div.style.height
  this.div.style.textAlign="center";
  this.div.style.fontWeight="bold"; 
  this.div.style.color="#fff"
  this.div.style.top=(this.b+"%");
  document.body.appendChild(this.div);
  this.run();
}
x.creat.prototype={
  run:function(){
    var me=this;
    this.div.style.top=-this.c*(this.t/this.d)*(this.t/this.d)+this.b+"%";
    this.t++;
    this.q=setTimeout(function(){me.run()},25)
    if(this.t==this.d){
      clearTimeout(me.q);
      setTimeout(function(){me.alpha();},1000);
    }
  },
  alpha:function(){
    var me=this;
    if("\v"=="v"){
      this.div.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity="+this.op*100+")";
      this.div.style.filter="alpha(opacity="+this.op*100+")";
    }
    else{
      this.div.style.opacity=this.op
    }
    this.op-=0.02;
    this.w=setTimeout(function(){me.alpha()},25)
    if(this.op<=0){
      clearTimeout(this.w);
      document.body.removeChild(me.div);
    }
  }
}
window.onload=function(){
  new x.creat(1,50,25,30);
}
</script>
</head>
<body>
 
</body>
</html>

上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。

相關文章