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

📄 prototype.js

📁 WordPress是一个Blog程序,用它你可以架设完全属于你自己的Blog. 而WordPress现在的应用又不仅仅只是在Blog方面,因为其强大的扩展性,部分网站甚至已经开始使用WordPress
💻 JS
📖 第 1 页 / 共 5 页
字号:
  toggleClassName: function(element, className) {    if (!(element = $(element))) return;    return element[element.hasClassName(className) ?      'removeClassName' : 'addClassName'](className);  },  // removes whitespace-only text node children  cleanWhitespace: function(element) {    element = $(element);    var node = element.firstChild;    while (node) {      var nextNode = node.nextSibling;      if (node.nodeType == 3 && !/\S/.test(node.nodeValue))        element.removeChild(node);      node = nextNode;    }    return element;  },  empty: function(element) {    return $(element).innerHTML.blank();  },  descendantOf: function(element, ancestor) {    element = $(element), ancestor = $(ancestor);    if (element.compareDocumentPosition)      return (element.compareDocumentPosition(ancestor) & 8) === 8;    if (element.sourceIndex && !Prototype.Browser.Opera) {      var e = element.sourceIndex, a = ancestor.sourceIndex,       nextAncestor = ancestor.nextSibling;      if (!nextAncestor) {        do { ancestor = ancestor.parentNode; }        while (!(nextAncestor = ancestor.nextSibling) && ancestor.parentNode);      }      if (nextAncestor) return (e > a && e < nextAncestor.sourceIndex);    }    while (element = element.parentNode)      if (element == ancestor) return true;    return false;  },  scrollTo: function(element) {    element = $(element);    var pos = element.cumulativeOffset();    window.scrollTo(pos[0], pos[1]);    return element;  },  getStyle: function(element, style) {    element = $(element);    style = style == 'float' ? 'cssFloat' : style.camelize();    var value = element.style[style];    if (!value) {      var css = document.defaultView.getComputedStyle(element, null);      value = css ? css[style] : null;    }    if (style == 'opacity') return value ? parseFloat(value) : 1.0;    return value == 'auto' ? null : value;  },  getOpacity: function(element) {    return $(element).getStyle('opacity');  },  setStyle: function(element, styles) {    element = $(element);    var elementStyle = element.style, match;    if (Object.isString(styles)) {      element.style.cssText += ';' + styles;      return styles.include('opacity') ?        element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element;    }    for (var property in styles)      if (property == 'opacity') element.setOpacity(styles[property]);      else        elementStyle[(property == 'float' || property == 'cssFloat') ?          (elementStyle.styleFloat === undefined ? 'cssFloat' : 'styleFloat') :            property] = styles[property];    return element;  },  setOpacity: function(element, value) {    element = $(element);    element.style.opacity = (value == 1 || value === '') ? '' :      (value < 0.00001) ? 0 : value;    return element;  },  getDimensions: function(element) {    element = $(element);    var display = $(element).getStyle('display');    if (display != 'none' && display != null) // Safari bug      return {width: element.offsetWidth, height: element.offsetHeight};    // All *Width and *Height properties give 0 on elements with display none,    // so enable the element temporarily    var els = element.style;    var originalVisibility = els.visibility;    var originalPosition = els.position;    var originalDisplay = els.display;    els.visibility = 'hidden';    els.position = 'absolute';    els.display = 'block';    var originalWidth = element.clientWidth;    var originalHeight = element.clientHeight;    els.display = originalDisplay;    els.position = originalPosition;    els.visibility = originalVisibility;    return {width: originalWidth, height: originalHeight};  },  makePositioned: function(element) {    element = $(element);    var pos = Element.getStyle(element, 'position');    if (pos == 'static' || !pos) {      element._madePositioned = true;      element.style.position = 'relative';      // Opera returns the offset relative to the positioning context, when an      // element is position relative but top and left have not been defined      if (window.opera) {        element.style.top = 0;        element.style.left = 0;      }    }    return element;  },  undoPositioned: function(element) {    element = $(element);    if (element._madePositioned) {      element._madePositioned = undefined;      element.style.position =        element.style.top =        element.style.left =        element.style.bottom =        element.style.right = '';    }    return element;  },  makeClipping: function(element) {    element = $(element);    if (element._overflow) return element;    element._overflow = Element.getStyle(element, 'overflow') || 'auto';    if (element._overflow !== 'hidden')      element.style.overflow = 'hidden';    return element;  },  undoClipping: function(element) {    element = $(element);    if (!element._overflow) return element;    element.style.overflow = element._overflow == 'auto' ? '' : element._overflow;    element._overflow = null;    return element;  },  cumulativeOffset: function(element) {    var valueT = 0, valueL = 0;    do {      valueT += element.offsetTop  || 0;      valueL += element.offsetLeft || 0;      element = element.offsetParent;    } while (element);    return Element._returnOffset(valueL, valueT);  },  positionedOffset: function(element) {    var valueT = 0, valueL = 0;    do {      valueT += element.offsetTop  || 0;      valueL += element.offsetLeft || 0;      element = element.offsetParent;      if (element) {        if (element.tagName == 'BODY') break;        var p = Element.getStyle(element, 'position');        if (p == 'relative' || p == 'absolute') break;      }    } while (element);    return Element._returnOffset(valueL, valueT);  },  absolutize: function(element) {    element = $(element);    if (element.getStyle('position') == 'absolute') return;    // Position.prepare(); // To be done manually by Scripty when it needs it.    var offsets = element.positionedOffset();    var top     = offsets[1];    var left    = offsets[0];    var width   = element.clientWidth;    var height  = element.clientHeight;    element._originalLeft   = left - parseFloat(element.style.left  || 0);    element._originalTop    = top  - parseFloat(element.style.top || 0);    element._originalWidth  = element.style.width;    element._originalHeight = element.style.height;    element.style.position = 'absolute';    element.style.top    = top + 'px';    element.style.left   = left + 'px';    element.style.width  = width + 'px';    element.style.height = height + 'px';    return element;  },  relativize: function(element) {    element = $(element);    if (element.getStyle('position') == 'relative') return;    // Position.prepare(); // To be done manually by Scripty when it needs it.    element.style.position = 'relative';    var top  = parseFloat(element.style.top  || 0) - (element._originalTop || 0);    var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);    element.style.top    = top + 'px';    element.style.left   = left + 'px';    element.style.height = element._originalHeight;    element.style.width  = element._originalWidth;    return element;  },  cumulativeScrollOffset: function(element) {    var valueT = 0, valueL = 0;    do {      valueT += element.scrollTop  || 0;      valueL += element.scrollLeft || 0;      element = element.parentNode;    } while (element);    return Element._returnOffset(valueL, valueT);  },  getOffsetParent: function(element) {    if (element.offsetParent) return $(element.offsetParent);    if (element == document.body) return $(element);    while ((element = element.parentNode) && element != document.body)      if (Element.getStyle(element, 'position') != 'static')        return $(element);    return $(document.body);  },  viewportOffset: function(forElement) {    var valueT = 0, valueL = 0;    var element = forElement;    do {      valueT += element.offsetTop  || 0;      valueL += element.offsetLeft || 0;      // Safari fix      if (element.offsetParent == document.body &&        Element.getStyle(element, 'position') == 'absolute') break;    } while (element = element.offsetParent);    element = forElement;    do {      if (!Prototype.Browser.Opera || element.tagName == 'BODY') {        valueT -= element.scrollTop  || 0;        valueL -= element.scrollLeft || 0;      }    } while (element = element.parentNode);    return Element._returnOffset(valueL, valueT);  },  clonePosition: function(element, source) {    var options = Object.extend({      setLeft:    true,      setTop:     true,      setWidth:   true,      setHeight:  true,      offsetTop:  0,      offsetLeft: 0    }, arguments[2] || { });    // find page position of source    source = $(source);    var p = source.viewportOffset();    // find coordinate system to use    element = $(element);    var delta = [0, 0];    var parent = null;    // delta [0,0] will do fine with position: fixed elements,    // position:absolute needs offsetParent deltas    if (Element.getStyle(element, 'position') == 'absolute') {      parent = element.getOffsetParent();      delta = parent.viewportOffset();    }    // correct by body offsets (fixes Safari)    if (parent == document.body) {      delta[0] -= document.body.offsetLeft;      delta[1] -= document.body.offsetTop;    }    // set position    if (options.setLeft)   element.style.left  = (p[0] - delta[0] + options.offsetLeft) + 'px';    if (options.setTop)    element.style.top   = (p[1] - delta[1] + options.offsetTop) + 'px';    if (options.setWidth)  element.style.width = source.offsetWidth + 'px';    if (options.setHeight) element.style.height = source.offsetHeight + 'px';    return element;  }};Element.Methods.identify.counter = 1;Object.extend(Element.Methods, {  getElementsBySelector: Element.Methods.select,  childElements: Element.Methods.immediateDescendants});Element._attributeTranslations = {  write: {    names: {      className: 'class',      htmlFor:   'for'    },    values: { }  }};if (!document.createRange || Prototype.Browser.Opera) {  Element.Methods.insert = function(element, insertions) {    element = $(element);    if (Object.isString(insertions) || Object.isNumber(insertions) ||        Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML)))          insertions = { bottom: insertions };    var t = Element._insertionTranslations, content, position, pos, tagName;    for (position in insertions) {      content  = insertions[position];      position = position.toLowerCase();      pos      = t[position];      if (content && content.toElement) content = content.toElement();      if (Object.isElement(content)) {        pos.insert(element, content);        continue;      }      content = Object.toHTML(content);      tagName = ((position == 'before' || position == 'after')        ? element.parentNode : element).tagName.toUpperCase();      if (t.tags[tagName]) {        var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts());        if (position == 'top' || position == 'after') fragments.reverse();        fragments.each(pos.insert.curry(element));      }      else element.insertAdjacentHTML(pos.adjacency, content.stripScripts());      content.evalScripts.bind(content).defer();    }    return element;  };}if (Prototype.Browser.Opera) {  Element.Methods._getStyle = Element.Methods.getStyle;  Element.Methods.getStyle = function(element, style) {    switch(style) {      case 'left':      case 'top':      case 'right':      case 'bottom':        if (Element._getStyle(element, 'position') == 'static') return null;      default: return Element._getStyle(element, style);    }  };  Element.Methods._readAttribute = Element.Methods.readAttribute;  Element.Methods.readAttribute = function(element, attribute) {    if (attribute == 'title') return element.title;    return Element._readAttribute(element, attribute);  };}else if (Prototype.Browser.IE) {  $w('positionedOffset getOffsetParent viewportOffset').each(function(method) {    Element.Methods[method] = Element.Methods[method].wrap(      function(proceed, element) {        element = $(element);        var position = element.getStyle('position');        if (position != 'static') return proceed(element);        element.setStyle({ position: 'relative' });        var value = proceed(element);        element.setStyle({ position: position });        return value;      }    );  });  Element.Methods.getStyle = function(element, style) {    element = $(element);    style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize();    var value = element.style[style];    if (!value && element.currentStyle) value = element.currentStyle[style];    if (style == 'opacity') {      if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/))        if (value[1]) return parseFloat(value[1]) / 100;      return 1.0;    }    if (value == 'auto') {      if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none'))        return element['offset' + style.capitalize()] + 'px';      return null;    }    return value;  };  Element.Methods.setOpacity = function(element, value) {    function stripAlpha(filter){      return filter.replace(/alpha\([^\)]*\)/gi,'');    }    element = $(element);    var currentStyle = element.currentStyle;    if ((currentStyle && !currentStyle.hasLayout) ||      (!currentStyle && element.style.zoom == 'normal'))        element.style.zoom = 1;    var filter = element.getStyle('filter'), style = element.style;    if (value == 1 || value === '') {      (filter = stripAlpha(filter)) ?        style.filter = filter : style.removeAttribute('filter');      return element;    } else if (value < 0.00001) value = 0;    style.filter = stripAlpha(filter) +      'alpha(opacity=' + (value * 100) + ')';    return element;  };  Element._attributeTranslations = {    read: {      names: {        'class': 'className',        'for':   'htmlFor'      },      values: {        _getAttr: function(element, attribute) {          return element.getAttribute(attribute, 2);        },        _getAttrNode: function(element, attribute) {          var node = element.getAttributeNode(attribute);          return n

⌨️ 快捷键说明

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