您的位置:首页 > 其它

模仿动画的放大缩小容器

2008-05-13 00:00 519 查看
其次说说目的:
瞎玩,纯粹为了学习JS练习作。
呃,最后PS:偷偷借鉴了某人写的一个函数:返回最终样式函数。










放大缩小容器:仿动画 - www.jb51.net

*{margin:0;padding:0;}
body { padding:1em; }
h2 { font-size:2em; }
div { display:inline-block; width:10em; padding:.5em; margin-bottom:1em; overflow:hidden; background:#eee; text-align:center; font-size:1em; }
p#text { position:absolute; right:10px; top:10px; }






标题

测试鼠标滑动效果



标题

测试鼠标滑动效果



标题

测试鼠标滑动效果



标题

测试鼠标滑动效果




function getDefaultStyle(obj,attribute){ //返回最终样式函数,兼容IE和DOM,设置参数:元素对象、样式特性
return obj.currentStyle?obj.currentStyle[attribute]:document.defaultView.getComputedStyle(obj,false)[attribute];
}
function pr_box(id,e){
clearInterval(document.getElementById(id).maxmin);
var obj=document.getElementById(id);
var cfont=getDefaultStyle(obj,"fontSize");// 得到默认的大小:附单位
var cp=cfont.replace(/[0-9]|[\.]/g,"");// 得到默认的单位
var fsize=parseFloat(cfont);// 得到默认的大小数值
var s=10;// 运动速度
if(!obj.fsizeTmpe){// 存储默认大小数值
obj.fsizeTmpe=fsize;
}
if(!objfont){// 如果没有设置当前大小,则赋予其默认大小
obj.style.fontSize = cfont;
}
var e = obj.fsizeTmpe*e/100;// 需要改变到的大小数值
var objfont = parseFloat(obj.style.fontSize);// 得到当前的大小
if(e < obj.fsizeTmpe){obj.maxmin = setInterval(function(){pr_min(obj,e,cp)},s);}
if(e > obj.fsizeTmpe){obj.maxmin = setInterval(function(){pr_max(obj,e,cp)},s);}
if(e == obj.fsizeTmpe){
if(objfont < obj.fsizeTmpe){
obj.maxmin = setInterval(function(){pr_max(obj,obj.fsizeTmpe,cp)},s);
}
if(objfont > obj.fsizeTmpe){
obj.maxmin = setInterval(function(){pr_min(obj,obj.fsizeTmpe,cp)},s);
}
}
}
function pr_max(obj,e,cp){
if(!obj.fs){
obj.fs=obj.style.fontSize;
}
var objfont=parseFloat(obj.fs);
if(e > objfont){
//document.getElementById("text").innerHTML+="放大 - 原始值:"+objfont+" + 递增值:"+e/10+"[br /]";
obj.fs = objfont+e/10+cp;
obj.style.fontSize = obj.fs;
}
else if(e < objfont){
obj.fs = e+cp;
obj.style.fontSize = obj.fs;
}
else{clearInterval(obj.maxmin);}
}
function pr_min(obj,e,cp){
if(!obj.fs){
obj.fs=obj.style.fontSize;
}
var objfont=parseFloat(obj.fs);
if(e < objfont){
//document.getElementById("text").innerHTML+="缩小 - 原始值:"+objfont+" - 递减值:"+e/10+"[br /]";
obj.fs = objfont-e/10+cp;
obj.style.fontSize = obj.fs;
}
else if(e > objfont){
obj.fs = e+cp;
obj.style.fontSize = obj.fs;
}
else{clearInterval(obj.maxmin);}
}


[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: