• 神奇的占卜(HTML版)


    神奇的占卜,大概是去年看到,觉得好玩,改写成HTML版的。

    发上来充实下自己的blog。

    神奇的占卜
     
    代码保存为html文件,在浏览器中直接运行即可。
    <style type="text/css">
      .table_back{320px;height:480px;border:0px}
      .floor{border:0px solid gray;font-size:12px;line-height:24px;}
    </style>
    
    <div id="NT">神奇的占卜<hr></div>
    
    <script type="text/javascript">
    /*
    标题:神奇的占卜
    设计:宁涛
    日期:2010年9月20日
    */
    
    function Prediction(options) {
      var self = this;
      for (var p in options) this[p] = options[p];
      this.parent = this.parent || document.body;
      this.rowCount = this.rowCount || 20;
      this.colCount = this.colCount || 5;
      this.picMax = this.picMax || 20;
    
      this.div_Intro = document.createElement("div");
      this.div_Intro.innerHTML = 
      "玩法:心中默想任意一个两位数,例如:23。 <br>"+
      "然后个数与十位相加:2+3=5。 <br>"+
      "用这个两位数23减相加的和5,得到23-5=18。 <br>"+
      "在页面中找到18对应的图标,记在心中。 <br>"+
      "然后点击占卜按钮,见证奇迹的时刻到了。 <br><hr>";
      this.parent.appendChild(this.div_Intro);
    
      this.table_back = document.createElement("table");
      this.table_back.className = "table_back";
      this.table_back.cellPadding = "0px";
      this.table_back.cellSpacing = "0px";
      this.floors = {};
      for (var i = 0; i  < this.rowCount; i++) {
        var tr = this.table_back.insertRow(-1);
        for (var j = 0; j  < this.colCount; j++) {
          var td = tr.insertCell(-1);
          td.className = "floor";
          this.floors[[i, j]] = {td: td};
          td.innerHTML = " ";
        }
      }
      this.parent.appendChild(this.table_back);
    
      this.button_Predict = document.createElement("input");
      this.button_Predict.type = "button";
      this.button_Predict.value = "占卜";
      this.button_Predict.onclick = function() {
        self.Predict();
      };
      this.parent.appendChild(this.button_Predict);
    
      this.font_Result = document.createElement("font");
      this.font_Result.face = "webdings";
      this.font_Result.size = "5px";
      this.font_Result.style.width = "50px";
      var TmpClr = Math.floor(0xFFFFFF / (this.picMax+1)).toString(16);
      this.font_Result.color = "000000".substr(TmpClr.length) + TmpClr;
      this.font_Result.innerHTML = " ";
      this.parent.appendChild(this.font_Result);
    
      this.button_Replay = document.createElement("input");
      this.button_Replay.type = "button";
      this.button_Replay.value = "刷新";
      this.button_Replay.onclick = function() {
        self.replay();
      };
      this.parent.appendChild(this.button_Replay);
    
      this.replay();
    }
    
    Prediction.prototype = {
      replay: function(){
        this.picOffSet = 40 + Math.floor( (120-this.picMax) * Math.random() );
        for(var i = 0; i  < this.rowCount; i++) {
          for(var j = 0; j  < this.colCount; j++) {
            this.floors[[i, j]].td.innerHTML = this.NewCell((this.rowCount-i-1)+(this.colCount-j-1)*this.rowCount);
          }
        }
        this.font_Result.innerHTML = " ";
      },
    
      NewCell: function(cell_index) {
        var RandNum = Math.floor(this.picMax * Math.random());
        if((0==(cell_index%9)) && (cell_index <90)) RandNum=0;
        var TmpClr = Math.floor(0xFFFFFF * (RandNum+1) / (this.picMax+1)).toString(16);
        TmpClr = "000000".substr(TmpClr.length) + TmpClr;
        var TmpStr = cell_index;
        TmpStr += " <font face=\"webdings\" size=\"5px\" color=\"#";
        TmpStr += TmpClr
        TmpStr += "\">";
        TmpStr += String.fromCharCode(this.picOffSet+RandNum);
        TmpStr += " <\/font>";
        return TmpStr;
      },
    
      Predict: function() {
        this.font_Result.innerHTML = String.fromCharCode(this.picOffSet);
      }
    }
    
    function $(id) { return document.getElementById(id); }
    
    new Prediction({parent: $("NT")});
    
    </script>
    占卜的原理其实很简单,这里就不揭底了。
  • 相关阅读:
    JavaScript、Jquery:获取各种屏幕的宽度和高度
    CSS:文字兩端加中線寫法
    CSS:公用
    JavaScript:基礎知識
    jQuery:播放/暂停 HTML5视频[轉]
    手機Web頁面信息
    jQuery:open和opener使用說明
    CSS:overflow使用說明
    jQuery:常用插件
    BootStrap:基礎知識
  • 原文地址:https://www.cnblogs.com/slowhand/p/2102640.html
Copyright © 2020-2023  润新知