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

📄 prototype.js

📁 这是AJAX的一个HTML实现! HTML标签AJAX的实现!
💻 JS
📖 第 1 页 / 共 5 页
字号:
  },  addClassName: function(element, className) {    if (!(element = $(element))) return;    if (!element.hasClassName(className))      element.className += (element.className ? ' ' : '') + className;    return element;  },  removeClassName: function(element, className) {    if (!(element = $(element))) return;    element.className = element.className.replace(      new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip();    return element;  },  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);    var originalAncestor = 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 && nextAncestor.sourceIndex)       return (e > a && e < nextAncestor.sourceIndex);    }    while (element = element.parentNode)      if (element == originalAncestor) 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') ?          (Object.isUndefined(elementStyle.styleFloat) ? '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 !== 'static') 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 (Prototype.Browser.Opera) {  Element.Methods.getStyle = Element.Methods.getStyle.wrap(    function(proceed, element, style) {      switch (style) {        case 'left': case 'top': case 'right': case 'bottom':          if (proceed(element, 'position') === 'static') return null;        case 'height': case 'width':          // returns '0px' for hidden elements; we want it to return null          if (!Element.visible(element)) return null;          // returns the border-box dimensions rather than the content-box          // dimensions, so we subtract padding and borders from the value          var dim = parseInt(proceed(element, style), 10);          if (dim !== element['offset' + style.capitalize()])            return dim + 'px';          var properties;          if (style === 'height') {            properties = ['border-top-width', 'padding-top',             'padding-bottom', 'border-bottom-width'];          }          else {            properties = ['border-left-width', 'padding-left',             'padding-right', 'border-right-width'];          }          return properties.inject(dim, function(memo, property) {            var val = proceed(element, property);            return val === null ? memo : memo - parseInt(val, 10);          }) + 'px';        default: return proceed(element, style);      }    }  );  Element.Methods.readAttribute = Element.Methods.readAttribute.wrap(    function(proceed, element, attribute) {      if (attribute === 'title') return element.title;      return proceed(element, attribute);    }  );}else if (Prototype.Browser.IE) {  // IE doesn't report offsets correctly for static elements, so we change them  // to "relative" to get the values, then change them back.  Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.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;    }  );  $w('positionedOffset 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);        // Trigger hasLayout on the offset parent so that IE6 reports        // accurate offsetTop and offsetLeft values for position: fixed.        var offsetParent = element.getOffsetParent();        if (offsetParent && offsetParent.getStyle('position') === 'fixed')          offsetParent.setStyle({ zoom: 1 });        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

⌨️ 快捷键说明

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