⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 card.js

📁 此为google map地图功能源码
💻 JS
字号:
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */var svgns   = "http://www.w3.org/2000/svg";var xlinkns = "http://www.w3.org/1999/xlink";var SUITE_DIAMOND = 1;var SUITE_CLUB    = 2;var SUITE_HEART   = 3;var SUITE_SPADE   = 4;var MOVING = new Array();function Card(doc, value, suite, deck, faceup) {  this.value = value;  this.suite = suite;  this.deck  = deck;    this.elem = doc.createElementNS(svgns, "g");  this.svg = doc.createElementNS(svgns, "svg");  this.svg.setAttribute("x", "0");  this.svg.setAttribute("y", "0");  this.svg.setAttribute("width", "100");  this.svg.setAttribute("height", "100");  this.elem.appendChild(this.svg);  var id;  switch(suite) {  case SUITE_DIAMOND: id = "d"; break;  case SUITE_CLUB:    id = "c"; break;  case SUITE_HEART: id = "h"; break;  case SUITE_SPADE: id = "s"; break;  }  id += value;  this.id = id;  this.card = doc.createElementNS(svgns, "use");  this.faceup = faceup;  if (this.faceup) {    this.card.setAttributeNS(xlinkns, "xlink:href",                             deck + "#" + id);  } else {    this.card.setAttributeNS(xlinkns, "xlink:href",                             deck + "#card-back");  }  this.card.setAttribute("x", "0");  this.card.setAttribute("y", "0");  this.card.setAttribute("width", "100%");  this.card.setAttribute("height", "100%");  this.svg.appendChild(this.card);  this.rect = doc.createElementNS(svgns, "rect");  this.rect.setAttribute("x", "0");  this.rect.setAttribute("y", "0");  this.rect.setAttribute("width", "100%");  this.rect.setAttribute("height", "100%");  this.rect.setAttribute("style", "visibility:hidden; pointer-events:fill");  this.svg.appendChild(this.rect);    return this;}Card.prototype.flipCard = function(faceup) {  if (this.faceup == faceup) return;  if (faceup) {    this.card.setAttributeNS(xlinkns, "xlink:href",                             this.deck + "#" + this.id);  } else {    this.card.setAttributeNS(xlinkns, "xlink:href",                             this.deck + "#card-back");  }  this.faceup = faceup;}Card.prototype.getValue = function() {  return this.value;}Card.prototype.getSuite = function() {  return this.suite;}Card.prototype.getElem = function() {  return this.elem;}Card.prototype.suiteMatch = function(c) {  return c.suite == this.suite;}Card.prototype.isRed = function() {  return ((this.suite == SUITE_HEART) || (this.suite == SUITE_DIAMOND));}Card.prototype.isBlack = function() {  return ((this.suite == SUITE_CLUB) || (this.suite == SUITE_SPADE));}Card.prototype.colorMatch = function(c) {  return c.isRed() == this.isRed();}Card.prototype.valueMatch = function(c) {  return c.value == this.value;}Card.prototype.valueOneHigher = function(c) {  return c.value-1 == this.value;}Card.prototype.valueOneLower = function(c) {  return c.value+1 == this.value;}Card.prototype.asString = function() {  return this.id;}Card.prototype.setPos = function(x, y) {  if ((this.x == x) && (this.y == y)) return;  this.x = x;  this.y = y;  this.elem.setAttribute("transform", "translate("+x+","+y+")");}Card.prototype.setSize = function(w, h) {  this.w = w;  this.h = h;  this.svg.setAttribute("width",  ""+w);  this.svg.setAttribute("height", ""+h);}Card.prototype.moveTo = function(x, y, step) {  this.destX = x;  this.destY = y;  this.dx = (x - this.x);  this.dy = (y - this.y);  var dist = Math.sqrt(this.dx*this.dx+this.dy*this.dy);  var steps = Math.floor(dist/step);  if (steps < 1) steps = 1;  this.dx /= steps;  this.dy /= steps;  if (this.moving)    return;  if (!this.updateDisplay())    return;  this.moving = true;  MOVING.push(this);  if (MOVING.length == 1) {    setTimeout("moveCards()", 50);  }}Card.prototype.updateDisplay = function() {  var deltaX = (this.destX-this.x);  var newX   = this.x + this.dx;  var register = false;  if (deltaX < 0) {    if (((deltaX*1.01) <= this.dx) &&        ((deltaX*0.99) >= this.dx)) {      newX = this.destX;    } else {      register = true;    }  } else {    if (((deltaX*1.01) >= this.dx) &&        ((deltaX*0.99) <= this.dx)) {      newX = this.destX;    } else {      register = true;    }  }  var deltaY = (this.destY-this.y);  var newY   = this.y + this.dy;  if (deltaY < 0) {    if (((deltaY*1.01) <= this.dy) &&        ((deltaY*0.99) >= this.dy)) {      newY = this.destY;    } else {      register = true;    }  } else {    if (((deltaY*1.01) >= this.dy) &&        ((deltaY*0.99) <= this.dy)) {      newY = this.destY;    } else {      register = true;    }  }  this.setPos(newX, newY);  if (!register) {    var nc = this.pile.nextCard(this);    while (nc) {      var ncelem = nc?nc.elem:null;      if (ncelem.parentNode == this.pile.g) {        this.pile.g.insertBefore(this.elem, ncelem);        break;      }      nc = this.pile.nextCard(nc);    }    if (!nc)       this.pile.g.appendChild(this.elem);  }  this.moving = register;  return register;}function moveCards() {  var register = false;  var num = MOVING.length;  for (var i=0; i<num; i++) {    var card = MOVING.shift();    if (card.updateDisplay()) {      MOVING.push(card);      register = true;    } else {    }  }  if (register) {    setTimeout("moveCards()", 50);  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -