|
一种不错代码应用实例,大家可以根据这个代码,拓宽出更好的代码
//interval变量 var inl = []; //原始透明度 var opa = 100; //判断浏览器 var ie = navigator.appName == "Microsoft Internet Explorer" ? "Microsoft Internet Explorer" : ""; //缩小和打开按纽 function gogo() { speed = 50; var mode; //利用方块的display来判定是否缩小或放大 if(!$('tmp').style.display) { mode = "-"; //display是正常的话设置interval缩小 inl['suotu'] = setInterval("suodi('-')", 10); }else { mode = "+"; //display是none的话先把display改回去正常,再设置interval放大 $('tmp').style.display = ""; inl['suotu'] = setInterval("suodi('+')", 10); } clearInterval(inl['dcdr']); inl['dcdr'] = setInterval("dcdr('" + mode + "')", 10); } //淡出淡入 function dcdr(op) { //获取透明度 opa = define(op, opa, 4, 0, 100); //更新透明度 ie ? $('tmp').style.filter = "alpha(opacity=" + opa + ")" : $('tmp').style.opacity = opa / 100; //如果透明度小于等于0或大于等于100 if(opa <= 0 || opa >= 100) { //停止interval clearInterval(inl['dcdr']); } } function define(id, a, b, a2, a3) { if(id == "-") { a -= b; if(a <= a2) { a = a2; } }else { a += b; if(a >= a3) { a = a3; } } return a; } //缩小或放大 function suodi(opt) { //速度大于1的话继续除以s,否则等于1 speed = speed > 1 ? speed * 0.862 : 1; //获取高度 var hw = define(opt, $('tmp').clientHeight, speed, speed, 300); //设定高度和宽度 $('tmp').style.height = hw + "px"; $('tmp').style.width = hw + "px"; //假如方块的高度小于速度 if($('tmp').clientHeight <= speed) { //隐藏方块 $('tmp').style.display = "none"; //按钮名字改为"打开" $('anniu').value = "打开"; //关闭interval clearInterval(inl['suotu']); }else if($('tmp').clientWidth >= 300) { //按钮名字改为"缩小" $('anniu').value = "缩小"; //关闭interval clearInterval(inl['suotu']); } } //简化getElementById为$ var $ = function($) { return document.getElementById($); } //interval变量 var inl = []; //原始透明度 var opa = 100; //判断浏览器 var ie = navigator.appName == "Microsoft Internet Explorer" ? "Microsoft Internet Explorer" : ""; //缩小和打开按纽 function gogo() { speed = 50;
var mode; //利用方块的display来判定是否缩小或放大 if(!$('tmp').style.display) { mode = "-"; //display是正常的话设置interval缩小 inl['suotu'] = setInterval("suodi('-')", 10); }else { mode = "+"; //display是none的话先把display改回去正常,再设置interval放大 $('tmp').style.display = ""; inl['suotu'] = setInterval("suodi('+')", 10); } clearInterval(inl['dcdr']); inl['dcdr'] = setInterval("dcdr('" + mode + "')", 10); } //淡出淡入 function dcdr(op) { //获取透明度 opa = define(op, opa, 4, 0, 100);
//更新透明度 ie ? $('tmp').style.filter = "alpha(opacity=" + opa + ")" : $('tmp').style.opacity = opa / 100;
//如果透明度小于等于0或大于等于100 if(opa <= 0 || opa >= 100) { //停止interval clearInterval(inl['dcdr']); } } function define(id, a, b, a2, a3) { if(id == "-") { a -= b; if(a <= a2) { a = a2; } }else { a += b; if(a >= a3) { a = a3; } } return a; } //缩小或放大 function suodi(opt) { //速度大于1的话继续除以s,否则等于1 speed = speed > 1 ? speed * 0.862 : 1;
//获取高度 var hw = define(opt, $('tmp').clientHeight, speed, speed, 300); //设定高度和宽度 $('tmp').style.height = hw + "px"; $('tmp').style.width = hw + "px"; //假如方块的高度小于速度 if($('tmp').clientHeight <= speed) { //隐藏方块 $('tmp').style.display = "none"; //按钮名字改为"打开" $('anniu').value = "打开"; //关闭interval clearInterval(inl['suotu']); }else if($('tmp').clientWidth >= 300) { //按钮名字改为"缩小" $('anniu').value = "缩小"; //关闭interval clearInterval(inl['suotu']); } } //简化getElementById为$ var $ = function($) { return document.getElementById($); }
<body style="margin:0; padding:100px 150px" style="margin:0; padding:100px 150px"> <table style="border:1px solid #ccc" style="border:1px solid #ccc"> <tr> <td><div style="position:absolute; font-family:'微软雅黑'; font-size:13px" style="position:absolute; font-family:'微软雅黑'; font-size:13px"> 演示</div><div id="tmp" style="height:300px; width:300px; background:black"></div></td> </tr> <tr> <td align="center" style="padding-top:20px" style="padding-top:20px"> <input id="anniu" type="button" value="缩小" style="font-family:'微软雅黑'; font-size:12px; font-weight:bold; border:1px solid #ccc" style="font-family:'微软雅黑'; font-size:12px; font-weight:bold; border:1px solid #ccc" onfocus="this.blur()" onclick="gogo()"/> </td> </tr> </table> </body>
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] |
|