• 文字广告位
  • 文字广告位
  • 文字广告位
您现在的位置: 站长手册 >> 特效代码 >> 其他类 >> 正文
站内搜索
Google
[图文]网页多功能计算器
        ★★★   

网页多功能计算器

雅虎收藏夹 百度收藏 Google书签 Yahoo书签 新浪ViVi 搜狐网摘 365Key网摘 天极网摘 diglog 和讯网摘 POCO网摘 YouNote网摘 博拉网 天下图摘 Del.icio.us digg reddit spurl BlinkList blogmarks
人气: 来源:本站原创 作者:佚名 所属栏目:其他类 [切换到繁體中文]
介绍:真正多功能计算器,可以算log,cos,sin……

演示:

[Ctrl+A全选 提示:你可先修改部分代码,再按运行]

下面教你如何应用此特效: 
 --------------------------------------------------------------------------------------
  需要在<body 这里>加入的代码:
 --------------------------------------------------------------------------------------
以下代码加到<head>…</head>中
以下代码加到<body>…</body>中
<style>
<!--
.zzsc_top {  font-family: "Verdana"; font-size: 16px; font-weight: bold; color: #000000; text-decoration: none; background-color: #CCCCCC; height: 25px; width: 150px}
-->
</style>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center" align="top"><script>
var NDIGITS = 16;
var STACKSIZE = 12;
var value = 0; 
var memory = 
Gookie("CalcMemory");
if (!memory) memory = 0;
var level = 0; 
var Entered = true; 
var decimal = 0;
var fixed = 0; 
var exponent = false; 
var inverse = false; 
function stackItem(){
this.value = 0;
this.op = "";
}
function array(length){
this[0] = 0;
for (I = 0; I < length; I++) {
this[I] = 0;
this[I] = new stackItem();
}
this.length = length;
}
stack = new array(STACKSIZE);
function push(value, op, prec){
if (level == STACKSIZE)
return false;
stack[level].value = value;
stack[level].op = op;
stack[level].prec = prec;
level++;
return true;
}
function pop(){
if (level == 0)
return false;
level--;
return true;
}
function format(value){
var valStr = "" + value;
if (valStr.indexOf("N") >= 0 ||
(value == 2*value && value == 1+value))
return "错误";
var I = valStr.indexOf("e")
if (I >= 0) {
var expStr = valStr.substring(I+1, valStr.length);
if (I > 11) I = 11;
valStr = valStr.substring(0, I);
if (valStr.indexOf(".") < 0) valStr += ".";
valStr += " " + expStr;
}
else {
var valNeg = false;
if (value < 0) {
value = -value;
valNeg = true;
}
var valInt = Math.floor(value);
var valFrac = value - valInt;
var prec = NDIGITS - (""+valInt).length - 1;
if (! Entered && fixed>0)
prec = fixed;
var mult = " 1000000000000000000".substring(1, prec+2);
var frac = Math.floor(valFrac * mult + 0.5);
valInt = Math.floor(Math.floor(value * mult + .5) / mult);
if (valNeg)
valStr = "-" + valInt;
else
valStr = "" + valInt;
var fracStr = "00000000000000" + frac;
fracStr = fracStr.substring(fracStr.length-prec, fracStr.length);
I = fracStr.length - 1;
if (Entered || fixed==0) {
while (I >= 0 && fracStr.charAt(I) == "0")
--I;
fracStr = fracStr.substring(0, I+1);
}
if (I >= 0) valStr += "." + fracStr;
}
return valStr;
}
function refresh(){
var display = format(value);
if (exponent) {
if (expval < 0)
display += " " + expval;
else
display += " +" + expval;
}
if (display.indexOf(".") < 0 && display != "错误") {
if (Entered || decimal > 0)
display += '.';
else
display += ' ';
}
display = " " + display;
display = display.substring(display.length-NDIGITS-1, display.length);
document.result.result.value = display;
inverse = false;
}
function clearAll(){
level = 0;
clear();
}
function clear(){
exponent = false;
value = 0;
enter();
refresh();
}
function evalx(){
if (level==0)
return false;
op = stack[level-1].op;
sval = stack[level-1].value;
if (op == "+")
value = sval + value;
else if (op == '-')
value = sval - value;
else if (op == '*')
value = sval * value;
else if (op == '/')
value = sval / value;
else if (op == 'pow')
value = Math.pow(sval, value);
pop();
if (op == '(')
return false;
return true;
}
function openp(){
enter();
if (!push(0, '(', 0)) {
value = "NAN";
}
refresh();
}
function closep(){
enter();
while (evalx());
refresh();
}
function operator(op){
enter();
if (op == '+' || op == '-')
prec = 1;
else if (op == '*' || op == '/')
prec = 2;
else if (op == "pow")
prec = 3;
if (level > 0 && prec <= stack[level-1].prec)
evalx();
if (!push(value, op, prec))
value = "NAN";
refresh();
}
function enter(){
if (exponent)
value = value * Math.exp(expval * Math.LN10);
Entered = true;
exponent = false;
decimal = 0;
fixed = 0;
}
function equals(){
enter();
while (level > 0)
evalx();
refresh();
}
function digit(n){
if (Entered) {
value = 0;
digits = 0;
Entered = false;
}
if (n == 0 && digits == 0) {
refresh();
return;
}
if (exponent) {
if (expval < 0)
n = -n;
if (digits < 3) {
expval = expval * 10 + n;
++digits;
refresh();
}
return;
}
if (value < 0)
n = -n;
if (digits < NDIGITS-1) {
++digits;
if (decimal > 0) {
decimal = decimal * 10;
value = value + (n/decimal);
++fixed;
}
else
value = value * 10 + n;
}
refresh();
}
function sign(){
if (exponent)
expval = -expval;
else
value = -value;
refresh();
}
function period(){
if (Entered) {
value = 0;
digits = 1;
}
Entered = false;
if (decimal == 0) {
decimal = 1;
}
refresh();
}
function exp(){
if (Entered || exponent)
return;
exponent = true;
expval = 0;
digits = 0;
decimal = 0;
refresh();
}
function inv(){
inverse = !inverse;
}
function func(f){
enter();
if (f == "1/x")
value = 1/value;
else if (f == "swap") {
if (level == 0)
value = "NAN";
else {
var tmp = value;
value = stack[level-1].value;
stack[level-1].value = tmp;
}
}
else if (f == 'n!') {
if (value < 0 || value > 200 ||
value != Math.round(value))
value = "NAN";
else {
var n = 1;
var I;
for (I = 1; I <= value; I++)
n *= I;
value = n;
}
}
else if (f == "MR")
value = memory;
else if (f == "M+") {
memory += value;
Sookie("CalcMemory", memory);
}
else if (f == "Min") {
memory = value;
Sookie("CalcMemory", memory);
}
else if (inverse) {
if (f == "sin")
value = Math.asin(value)*180/Math.PI;
else if (f == "cos")
value = Math.acos(value)*180/Math.PI;
else if (f == "tan")
value = Math.atan(value)*180/Math.PI;
else if (f == "log")
value = Math.exp(value * Math.LN10);
else if (f == "log2")
value = Math.exp(value * Math.LN2);
else if (f == "ln")
value = Math.exp(value);
else if (f == "sqrt")
value = value*value;
else if (f == "pi")
value = Math.E;
}
else {
if (f == "sin")
value = Math.sin(value/180 * Math.PI);
else if (f == "cos")
value = Math.cos(value/180 * Math.PI);
else if (f == "tan")
value = Math.tan(value/180 * Math.PI);
else if (f == "log")
value = Math.log(value)/Math.LN10;
else if (f == "log2")
value = Math.log(value)/Math.LN2;
else if (f == "ln")
value = Math.log(value);
else if (f == "sqrt")
value = Math.sqrt(value);
else if (f == "pi")
value = Math.PI;
}
refresh();
}
function none(){
alert("你按错了,http://4www.df89.com!");
}
function GookieVal(offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(
document.cookie.substring(offset, endstr));
}
function Gookie(name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var I = 0;
while (I < clen) {
var j = I + alen;
if (document.cookie.substring(I, j) == arg)
return GookieVal (j);
I = document.cookie.indexOf(" ", I) + 1;
if (I == 0) break;
}
return null;
}
function Sookie(name, value) {
var argv = Sookie.arguments;
var argc = Sookie.arguments.length;
var expires = (argc > 2) ? Argv[2] : null;
var path = (argc > 3) ? Argv[3] : null;
var domain = (argc > 4) ? Argv[4] : null;
var secure = (argc > 5) ? Argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires="
+ expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
function Dookie(name) {
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = Gookie (name);
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
document.write('<FORM name="result">')
document.write('<INPUT size=20 name="result" onFocus="refresh(); this.blur();" class="zzsc_top">')
document.write('</FORM>')
refresh()</script>
<map name="FPMap0">
          <area href="javascript:digit(0)" shape="rect" coords="12, 191, 32, 209" onFocus="this.blur()">
          <area href="javascript:period()" shape="rect" coords="40, 191, 60, 209" onFocus="this.blur()">
          <area href="javascript:exp()" shape="rect" coords="68, 191, 88, 209" onFocus="this.blur()">
          <area href="javascript:sign()" shape="rect" coords="96, 191, 116, 209" onFocus="this.blur()">
          <area href="javascript:equals()" shape="rect" coords="124, 191, 144, 209" onFocus="this.blur()">
          <area href="javascript:digit(1)" shape="rect" coords="12, 166, 32, 184" onFocus="this.blur()">
          <area href="javascript:digit(2)" shape="rect" coords="40, 166, 60, 184" onFocus="this.blur()">
          <area href="javascript:digit(3)" shape="rect" coords="68, 166, 88, 184" onFocus="this.blur()">
          <area href="javascript:operator('+')" shape="rect" coords="96, 166, 116, 184" onFocus="this.blur()">
          <area href="javascript:operator('-')" shape="rect" coords="124, 166, 144, 184" onFocus="this.blur()">
          <area href="javascript:digit(4)" shape="rect" coords="12, 141, 32, 159" onFocus="this.blur()">
          <area href="javascript:digit(5)" shape="rect" coords="40, 141, 60, 159" onFocus="this.blur()">
          <area href="javascript:digit(6)" shape="rect" coords="68, 141, 88, 159" onFocus="this.blur()">
          <area href="javascript:operator('*')" shape="rect" coords="96, 141, 116, 159" onFocus="this.blur()">
          <area href="javascript:operator('/')" shape="rect" coords="124, 141, 144, 159" onFocus="this.blur()">
          <area href="javascript:digit(7)" shape="rect" coords="12, 116, 32, 134" onFocus="this.blur()">
          <area href="javascript:digit(8)" shape="rect" coords="40, 116, 60, 134" onFocus="this.blur()">
          <area href="javascript:digit(9)" shape="rect" coords="68, 116, 88, 134" onFocus="this.blur()">
          <area href="javascript:clear()" shape="rect" coords="96, 116, 116, 134" onFocus="this.blur()">
          <area href="javascript:clearAll()" shape="rect" coords="124, 116, 144, 134" onFocus="this.blur()">
          <area href="javascript:openp()" shape="rect" coords="12, 90, 32, 104" onFocus="this.blur()">
          <area href="javascript:closep()" shape="rect" coords="40, 90, 60, 104" onFocus="this.blur()">
          <area href="javascript:func('Min')" shape="rect" coords="68, 90, 88, 104" onFocus="this.blur()">
          <area href="javascript:func('MR')" shape="rect" coords="96, 90, 116, 104" onFocus="this.blur()">
          <area href="javascript:func('M+')" shape="rect" coords="124, 90, 144, 104" onFocus="this.blur()">
          <area href="javascript:operator('pow')" shape="rect" coords="12, 65, 32, 79" onFocus="this.blur()">
          <area href="javascript:func('n!')" shape="rect" coords="40, 65, 60, 79" onFocus="this.blur()">
          <area href="javascript:func('sqrt')" shape="rect" coords="68, 65, 88, 79" onFocus="this.blur()">
          <area href="javascript:func('1/x')" shape="rect" coords="96, 65, 116, 79" onFocus="this.blur()">
          <area href="javascript:func('swap')" shape="rect" coords="124, 65, 144, 79" onFocus="this.blur()">
          <area href="javascript:inv()" shape="rect" coords="12, 40, 32, 54" onFocus="this.blur()">
          <area href="javascript:func('sin')" shape="rect" coords="40, 40, 60, 54" onFocus="this.blur()">
          <area href="javascript:func('cos')" shape="rect" coords="68, 40, 88, 54" onFocus="this.blur()">
          <area href="javascript:func('tan')" shape="rect" coords="96, 40, 116, 54" onFocus="this.blur()">
          <area href="javascript:func('pi')" shape="rect" coords="124, 40, 144, 54" onFocus="this.blur()">
          <area href="javascript:func('log')" shape="rect" coords="12, 15, 32, 29" onFocus="this.blur()">
          <area href="javascript:func('ln')" shape="rect" coords="40, 15, 60, 29" onFocus="this.blur()">
          <area href="javascript:func('log2')" shape="rect" coords="68, 15, 88, 29" onFocus="this.blur()">
          <area href="javascript:none()" shape="rect" coords="96, 15, 116, 29" onFocus="this.blur()">
          <area href="javascript:none()" shape="rect" coords="124, 15, 144, 29" onFocus="this.blur()">
        </map>
<img rectangle=" (68,191) (88, 209) javascript:exp()" rectangle=" (96,191) (116, 209) javascript:sign()" rectangle=" (124,191) (144, 209) javascript:equals()" rectangle=" (12,166) (32, 184) javascript:digit(1)" rectangle=" (40,166) (60, 184) javascript:digit(2)" rectangle=" (68,166) (88, 184) javascript:digit(3)" rectangle=" (96,166) (116, 184) javascript:operator('+')" rectangle=" (124,166) (144, 184) javascript:operator('-')" rectangle=" (12,141) (32, 159) javascript:digit(4)" rectangle=" (40,141) (60, 159) javascript:digit(5)" rectangle=" (68,141) (88, 159) javascript:digit(6)" rectangle=" (96,141) (116, 159) javascript:operator('*')" rectangle=" (124,141) (144, 159) javascript:operator('/')" rectangle=" (12,116) (32, 134) javascript:digit(7)" rectangle=" (40,116) (60, 134) javascript:digit(8)" rectangle=" (68,116) (88, 134) javascript:digit(9)" rectangle=" (96,116) (116, 134) javascript:clear()" rectangle=" (124,116) (144, 134) javascript:clearAll()" rectangle=" (12,90) (32, 104) javascript:ope np()" rectangle=" (40,90) (60, 104) javascript:closep()" rectangle=" (68,90) (88, 104) javascript:func('Min')" rectangle=" (96,90) (116, 104) javascript:func('MR')" rectangle=" (124,90) (144, 104) javascript:func('M+')" rectangle=" (12,65) (32, 79) javascript:operator('pow')" rectangle=" (40,65) (60, 79) javascript:func('n!')" rectangle=" (68,65) (88, 79) javascript:func('sqrt')" rectangle=" (96,65) (116, 79) javascript:func('1/x')" rectangle=" (124,65) (144, 79) javascript:func('swap')" rectangle=" (12,40) (32, 54) javascript:inv()" rectangle=" (40,40) (60, 54) javascript:func('sin')" rectangle=" (68,40) (88, 54) javascript:func('cos')" rectangle=" (96,40) (116, 54) javascript:func('tan')" rectangle=" (124,40) (144, 54) javascript:func('pi')" rectangle=" (12,15) (32, 29) javascript:func('log')" rectangle=" (40,15) (60, 29) javascript:func('ln')" rectangle=" (68,15) (88, 29) javascript:func('log2')" rectangle=" (96,15) (116, 29) javascript:none()" rectangle=" (124,15) (144, 29) javascript:none()" src="/texiao/zzsc_demo/jisuanqi.gif" border="0" usemap="#FPMap0" width="159" height="224"><!---更改图片地址--></script></td>
</tr>
</table>
  </center>
</div>
  • 上一个特效:
  • 下一个特效:
  • 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    姓 名: *(必填项) ·注册用户·
    Email: QQ号:
    评 分: 1分 2分 3分 4分 5分
    • 您可以发表评论支持你喜欢的文章。
    • 请遵守《互联网电子公告服务管理规定》
    • 请遵守中华人民共和国各项有关法律法规。
    • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
    • 评论人需对自己在使用评论过程中的行为承担法律责任。
    • 本站管理员有权保留或删除评论内容。
    • 评论内容只代表个人观点,与本网站立场无关。
    站内特效搜索
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | | 京ICP备 05004866号 |
    版权所有 2007-2008 站长手册 WWW.ZZSC.ORG 业务联系 zzsc.org#gmail.com