Element.scroll.js
上传用户:shuoshiled
上传日期:2018-01-28
资源大小:10124k
文件大小:2k
源码类别:

中间件编程

开发平台:

JavaScript

  1. /*!  * Ext JS Library 3.0.0  * Copyright(c) 2006-2009 Ext JS, LLC  * licensing@extjs.com  * http://www.extjs.com/license  */ /**
  2.  * @class Ext.Element
  3.  */
  4. Ext.Element.addMethods({
  5.     /**
  6.      * Returns true if this element is scrollable.
  7.      * @return {Boolean}
  8.      */
  9.     isScrollable : function(){
  10.         var dom = this.dom;
  11.         return dom.scrollHeight > dom.clientHeight || dom.scrollWidth > dom.clientWidth;
  12.     },
  13.     /**
  14.      * Scrolls this element the specified scroll point. It does NOT do bounds checking so if you scroll to a weird value it will try to do it. For auto bounds checking, use scroll().
  15.      * @param {String} side Either "left" for scrollLeft values or "top" for scrollTop values.
  16.      * @param {Number} value The new scroll value.
  17.      * @return {Element} this
  18.      */
  19.     scrollTo : function(side, value){
  20.         this.dom["scroll" + (/top/i.test(side) ? "Top" : "Left")] = value;
  21.         return this;
  22.     },
  23.     /**
  24.      * Returns the current scroll position of the element.
  25.      * @return {Object} An object containing the scroll position in the format {left: (scrollLeft), top: (scrollTop)}
  26.      */
  27.     getScroll : function(){
  28.         var d = this.dom, 
  29.             doc = document,
  30.             body = doc.body,
  31.             docElement = doc.documentElement,
  32.             l,
  33.             t,
  34.             ret;
  35.         if(d == doc || d == body){
  36.             if(Ext.isIE && Ext.isStrict){
  37.                 l = docElement.scrollLeft; 
  38.                 t = docElement.scrollTop;
  39.             }else{
  40.                 l = window.pageXOffset;
  41.                 t = window.pageYOffset;
  42.             }
  43.             ret = {left: l || (body ? body.scrollLeft : 0), top: t || (body ? body.scrollTop : 0)};
  44.         }else{
  45.             ret = {left: d.scrollLeft, top: d.scrollTop};
  46.         }
  47.         return ret;
  48.     }
  49. });