初次体验用mootools开发插件

/*/调用方法:

Pop(this,{

pos:3,//上;右;下;左

tim:3000,

oft:{x:10,y:0},

htm:'这是需要显示的内容<br>HTML5入门之新标签的解析',//可以为fun

fun:function(i){}

});

Pop();

/*/

核心代码

var Pop=function(i,opt){

var $Pop,$Hand;

if(!i || !opt){Function.attempt(function(){$('_Pop').destroy();});return false;}

if(!opt.htm){return false;}

opt.pos=(opt.pos) || 1;

opt.fun=(opt.fun) || function(){};

opt.oft=(opt.oft) || {x:0,y:0};

if(!$('_Pop')){

$box1_css='display:inline-block;#display:inline;#zoom:1;position:relative;border-style:solid;border-color:#BBB;';

$box2_css='#left:-2px;border-width:0 1px;background-color:#FEFFE5;';

$Pop=new Element('div',{'id':'_Pop','style':'font-size:12px;position:absolute;'}).inject(document.body,'top');

$pop_box1=new Element('div').inject($Pop,'top');

$pop_box2=new Element('div').inject($pop_box1,'top');

$Mess=new Element('div',{'id':'mess'}).inject($pop_box2,'top');

$Hand=new Element('div',{'id':'_Pop_n'}).inject($Pop,'top');

$pop_box1.setProperty('style',$box1_css+'border-width:1px;');

$pop_box2.setProperty('style',$box1_css+$box2_css+'margin:0 -2px;');

$Mess.setProperty('style',$box1_css+$box2_css+'margin:1px -2px;padding:4px 8px;line-height:1.5;');

$box1_css=$box2_css=$pop_box1=$pop_box2=null;

}else{

$Pop=$('_Pop');

$Hand=$Pop.getElementById('_Pop_n');

$Mess=$Pop.getElementById('mess');

$Pop.setStyles({'left':$Ox+'px','top':$Oy+'px'});

}

if(typeOf(opt.htm)=='string'){

$Mess.set('html',opt.htm);

}else{

var htm='';

Function.attempt(function(){htm=opt.htm();});

$Mess.set('html',htm);

htm=null;

}

 

$fo=8;//修正值

$Ox=$(i).getPosition().x;//事件坐标

$Oy=$(i).getPosition().y;

$Ix=i.getSize().x;//Obj宽度

$Iy=i.getSize().y;

$Bx=$Pop.getSize().x;//Pop宽度

$By=$Pop.getSize().y;

$hcss='height:0;width:0;border-width:6px;position:absolute;';

 

switch(opt.pos){

case 1:

$Oy=$Oy+$Iy+$fo;$Ox=$Ox+$fo;

$hcss+='border-color:transparent transparent #BBB transparent;border-style:dashed dashed solid dashed;left:10px;top:-12px;';

break;

case 2:

$Ox=$Ox-$Bx-$fo;$Oy=$Oy-$fo;

$hcss+='border-color:transparent transparent transparent #BBB;border-style:dashed dashed dashed solid;right:-14px;top:10px;';

break;

case 3:

$Oy=$Oy-$By-$fo;$Ox=$Ox+$fo;

$hcss+='border-color:#BBB transparent transparent transparent;border-style:solid dashed dashed dashed;left:10px;bottom:-12px;';

break;

case 4:

$Ox=$Ox+$Ix+$fo;$Oy=$Oy-$fo;

$hcss+='border-color:transparent #BBB transparent transparent;border-style:dashed solid dashed dashed;left:-14px;top:10px;';

break;

}

$Ox=(opt.oft.x)?($Ox+(opt.oft.x)):$Ox;

$Oy=(opt.oft.y)?($Oy+(opt.oft.y)):$Oy;

$Pop.setStyles({'left':$Ox+'px','top':$Oy+'px'});

$Hand.setProperty('style',$hcss);

 

if(opt.tim){

var myFun=function(){$Pop.destroy()};myFun.delay(opt.tim,$Pop);

var timer=myFun.delay(opt.tim);clearTimeout(timer);

}

 

if(opt.fun){opt.fun($Pop);}

opt=$Ix=$Iy=$Bx=$By=$hcss=null;

};

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

www_7di_net

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值