📄 vkboards.js
字号:
{
this.Cntr = ct;
this.Caps = this.Shift = this.AltGr = false;
this.DeadAction = []; this.DeadAction[0] = this.DeadAction[1] = null;
this.keys = [], this.mod = [], this.pad = [];
VKeyboard.kbArray[container_id] = this;
}
var kb = exists ? ct.childNodes[0] : document.createElement("DIV");
if(!exists)
{
ct.appendChild(kb);
ct.style.display = "block";
ct.style.zIndex = 999;
if(do_embed)
ct.style.position = "relative";
else
{
ct.style.position = "absolute";
// Many thanks to Peter-Paul Koch (www.quirksmode.org) for the find-pos-X/find-pos-Y code.
var initX = 0, ct_ = ct;
if(ct_.offsetParent)
{
while(ct_.offsetParent)
{
initX += ct_.offsetLeft;
ct_ = ct_.offsetParent;
}
}
else if(ct_.x)
initX += ct_.x;
var initY = 0; ct_ = ct;
if(ct_.offsetParent)
{
while(ct_.offsetParent)
{
initY += ct_.offsetTop;
ct_ = ct_.offsetParent;
}
}
else if(ct_.y)
initY += ct_.y;
ct.style.top = initY + "px", ct.style.left = initX +"px";
}
kb.style.position = "relative";
kb.style.top = "0px", kb.style.left = "0px";
}
kb.style.border = "1px solid " + bc;
var kb_main = exists ? kb.childNodes[0] : document.createElement("DIV"), ks = kb_main.style;
if(!exists)
{
kb.appendChild(kb_main);
ks.position = "relative";
ks.width = "1px";
ks.cursor = "default";
}
// Disable content selection:
this._setup_event(kb_main, "selectstart", function(event) { return false; });
this._setup_event(kb_main, "mousedown", function(event) { if(event.preventDefault) event.preventDefault(); return false; });
ks.fontFamily = ff, ks.backgroundColor = bg;
if(!exists || changed)
{
var mag = parseFloat(fs) / 14.0, cell = Math.floor(25.0 * mag), dcell = 2 * cell, gap = this.gap;
var cp = String(cell) + "px", cx = String(cell - (do_gap ? 0 : 2.0)) + "px", lh = String(cell - 2.0) + "px";
var prevX = 0, prevY = gap, prevW = 0, prevH = 0;
// Convenience strings:
var c = "center", n = "normal", r = "right", l = "left", e = " ", pad = String(4 * mag) + "px";
// Number row:
var key;
for(var i = 0; i < 13; i++)
{
this.keys[i] = key = this._setup_key(kb_main, "___key" + String(i), prevY + "px", (prevX + prevW + gap) + "px", cp, cp, c, lh, fs);
prevX = this._findX(key), prevW = this._findW(key);
}
prevY = this._findY(key);
prevH = this._findH(key); // universal key height
var kb_kbp = this._setup_key(kb_main, "___kbp", prevY + "px", (prevX + prevW + gap) + "px", (2.96 * cell) + "px", cp, r, lh, fs, n, "", pad);
kb_kbp.innerHTML = "BackSpace";
this.mod[0] = kb_kbp;
// Top row:
var kb_tab = this._setup_key(kb_main, "___tab", (prevY + prevH + gap) + "px", gap + "px", (1.48 * cell + gap) + "px", cp, l, lh, fs, n, pad);
kb_tab.innerHTML = "Tab";
this.mod[1] = kb_tab;
prevX = this._findX(kb_tab), prevW = this._findW(kb_tab), prevY = this._findY(kb_tab);
for(; i < 26; i++)
{
this.keys[i] = key = this._setup_key(kb_main, "___key" + String(i), prevY + "px", (prevX + prevW + gap) + "px", cp, cp, c, lh, fs);
prevX = this._findX(key), prevW = this._findW(key);
}
this.kbpH = this._findX(kb_kbp) + this._findW(kb_kbp);
// Home row:
var kb_caps = this._setup_key(kb_main, "___caps", (prevY + prevH + gap) + "px", gap + "px", dcell + "px", cp, l, lh, fs, n, pad);
kb_caps.innerHTML = "Caps";
this.mod[2] = kb_caps;
prevX = this._findX(kb_caps), prevW = this._findW(kb_caps), prevY = this._findY(kb_caps);
for(; i < 38; i++)
{
this.keys[i] = key = this._setup_key(kb_main, "___key" + String(i), prevY + "px", (prevX + prevW + gap) + "px", cp, cp, c, lh, fs);
prevX = this._findX(key), prevW = this._findW(key);
}
prevY = this._findY(key);
var s = prevX + prevW + gap;
var kb_enter = this._setup_key(kb_main, "___enter_l", prevY + "px", s + "px", (this.kbpH - s) + "px", cp, r, lh, fs, n, "", pad);
kb_enter.innerHTML = "Enter";
this.mod[3] = kb_enter;
s = this._findX(this.keys[25]) + this._findW(this.keys[25]) + gap;
var kb_enter_top = this._setup_key(kb_main, "___enter_top", this._findY(kb_tab) + "px", s + "px", (this.kbpH - s) + "px", cx, c, cx);
kb_enter_top.innerHTML = e;
kb_enter_top.subst = "Enter";
this.mod[4] = kb_enter_top;
kb_enter_top.company = kb_enter;
kb_enter.company = kb_enter_top;
// Bottom row:
var kb_shift = this._setup_key(kb_main, "___shift", (prevY + prevH + gap) + "px", gap + "px", (2.52 * cell) + "px", cp, l, lh, fs, n, pad);
kb_shift.innerHTML = "Shift";
this.mod[5] = kb_shift;
prevX = this._findX(kb_shift), prevW = this._findW(kb_shift), prevY = this._findY(kb_shift);
for(; i < 48; i++)
{
this.keys[i] = key = this._setup_key(kb_main, "___key" + String(i), prevY + "px", (prevX + prevW + gap) + "px", cp, cp, c, lh, fs);
prevX = this._findX(key), prevW = this._findW(key);
}
prevY = this._findY(key);
var kb_shift_r = this._setup_key(kb_main, "___shift_r", prevY + "px", (prevX + prevW + gap) + "px", (this._findX(kb_kbp) + this._findW(kb_kbp) - prevX - prevW - gap) + "px", cp, r, lh, fs, n, "", pad);
kb_shift_r.innerHTML = "Shift";
this.mod[6] = kb_shift_r;
// Language selector:
var vcell = String(1.32 * cell) + "px";
var kb_lang = this._setup_key(kb_main, "___lang", (prevY + prevH + gap) + "px", gap + "px", vcell, cp, l, lh, fs, n, pad);
this.mod[7] = kb_lang;
prevY = this._findY(kb_lang);
ks.height = (prevY + prevH + gap) + "px";
prevY += "px";
var kb_res_1 = this._setup_key(kb_main, "___res_1", prevY, (this._findX(kb_lang) + this._findW(kb_lang) + gap) + "px", vcell, cp, c, lh, fs);
kb_res_1.innerHTML = e;
this.mod[8] = kb_res_1;
var kb_res_2 = this._setup_key(kb_main, "___res_2", prevY, (this._findX(kb_res_1) + this._findW(kb_res_1) + gap) + "px", vcell, cp, c, lh, fs);
kb_res_2.innerHTML = e;
this.mod[9] = kb_res_2;
var kb_space = this._setup_key(kb_main, "___space", prevY, (this._findX(kb_res_2) + this._findW(kb_res_2) + gap) + "px", (6.28 * cell) + "px", cp, c, lh, fs);
this.mod[10] = kb_space;
var kb_alt_gr = this._setup_key(kb_main, "___alt_gr", prevY, (this._findX(kb_space) + this._findW(kb_space) + gap) + "px", vcell, cp, c, lh, parseFloat(fs) * 0.786, n);
kb_alt_gr.innerHTML = "AltGr";
this.mod[11] = kb_alt_gr;
var kb_res_3 = this._setup_key(kb_main, "___res_3", prevY, (this._findX(kb_alt_gr) + this._findW(kb_alt_gr) + gap) + "px", vcell, cp, c, lh, fs);
kb_res_3.innerHTML = e;
this.mod[12] = kb_res_3;
var kb_res_4 = this._setup_key(kb_main, "___res_4", prevY, (this._findX(kb_res_3) + this._findW(kb_res_3) + gap) + "px", vcell, cp, c, lh, fs);
kb_res_4.innerHTML = e;
this.mod[13] = kb_res_4;
var w = this.kbpH + gap;
// Numpad:
if((create_numpad == undefined) ? true : create_numpad)
{
var w2 = this._create_numpad(container_id, kb_main);
if(w2 > w) w = w2;
}
kb.style.width = ks.width = w + "px";
}
this._refresh_layout(this.avail_langs[start_layout_index || 0][0]);
return this;
},
_create_numpad: function(container_id, parent)
{
var c = "center", n = "normal", l = "left";
var fs = this.fontsize, bc = this.bordercolor, gap = this.gap;
var mag = parseFloat(fs) / 14.0, cell = Math.floor(25.0 * mag);
var dcell = 2 * cell, dp = (dcell + 1) + "px", dp2 = (dcell - 1 - ((gap < 0) ? 2 : 0)) + "px";
var cp = String(cell) + "px", lh = String(Math.floor(cell - 2.0)) + "px";
var edge = (this.kbpH + cell + gap) + "px";
var kb_pad_eur = this._setup_key(parent, "___pad_eur", gap + "px", edge, cp, cp, c, lh, fs);
kb_pad_eur.innerHTML = "€";
this.pad[0] = kb_pad_eur;
var edge_1 = (this._findX(kb_pad_eur) + this._findW(kb_pad_eur) + gap) + "px";
var kb_pad_slash = this._setup_key(parent, "___pad_slash", gap + "px", edge_1, cp, cp, c, lh, fs);
kb_pad_slash.innerHTML = "/";
this.pad[1] = kb_pad_slash;
var edge_2 = (this._findX(kb_pad_slash) + this._findW(kb_pad_slash) + gap) + "px";
var kb_pad_star = this._setup_key(parent, "___pad_star", gap + "px", edge_2, cp, cp, c, lh, fs);
kb_pad_star.innerHTML = "*";
this.pad[2] = kb_pad_star;
var edge_3 = (this._findX(kb_pad_star) + this._findW(kb_pad_star) + gap) + "px";
var kb_pad_minus = this._setup_key(parent, "___pad_minus", gap + "px", edge_3, cp, cp, c, lh, fs);
kb_pad_minus.innerHTML = "-";
this.pad[3] = kb_pad_minus;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -