fixed.min.js 2.2 KB

1
  1. define(function(e,t,i){"use strict";var n=e("../util"),s=e("../base"),o=(n.prefixStyle("transform"),function(e){o.superclass.constructor.call(this,e),this.userConfig=n.mix({fixedRenderTo:void 0,fixedElements:".xs-fixed",prefix:"xs-fixed-container",zoomType:"y"},e),this.init()});return n.extend(o,s,{fixedElements:[],init:function(){var e=this,t=e.userConfig,i=e.xscroll=t.xscroll;e.xscrollConfig=i.userConfig;return e.isY=!("y"!=t.zoomType),e._=e.isY?{top:"top",height:"height",width:"width",offsetTop:"offsetTop"}:{top:"left",height:"width",width:"height",offsetTop:"offsetLeft"},e.fixedRenderTo=n.getNode(t.fixedRenderTo),e},render:function(){var e=this,t=e.xscroll;e.infinite=t.getPlugin("infinite"),e.fixedRenderTo||(e.fixedRenderTo=document.createElement("div"),t.renderTo.appendChild(e.fixedRenderTo)),n.addClass(e.fixedRenderTo,e.userConfig.prefix);for(var i=e.originalFixedElements=e.getFixedElements(),s=0,o=i.length;s<o;s++)e.renderFixedElement(i[s],s,e.fixedRenderTo);return e},getFixedElements:function(){var e=this,t=e.infinite,i=e.userConfig;if(t){var s=[];for(var o in t.__serializedData){var r=t.__serializedData[o];r&&r.style&&"fixed"==r.style.position&&s.push(r)}return s}return n.getNodes(i.fixedElements,e.xscroll.content)},renderFixedElement:function(e,t,i){var s=this,o=!0,r=s._,l=s.xscroll,d=(s.userConfig,s.xscrollConfig),f=d.useOriginScroll,x=s.infinite,a=s.fixedElements[t];s.fixedElements[t]||(o=!1,f&&!x?(e.style.position="fixed",e.style.display="block"):(a=document.createElement("div"),x?(a.setAttribute("style",n.stringifyStyle(n.mix(e.style,{display:"block",width:"100%"}))),a.style[r.top]=(e.style[r.top]>=0?e.style[r.top]:e._top)+"px",e.style[r.height]&&(a.style[r.height]=e.style[r.height]+"px"),x.userConfig.renderHook.call(s,a,e)):(a.style.display="block",a.style.position="absolute",a.style[r.width]="100%",a.innerHTML=e.innerHTML,a.className=e.className,a.setAttribute("style",e.getAttribute("style")),a.style[r.top]=e[r.offsetTop]+"px",e.style.display="none"),i.appendChild(a),s.fixedElements.push(a))),l.trigger("fixedchange",{fixedIndex:t,fixedElement:f?e:a,originalFixedElement:e,isRender:o})},destroy:function(){var e=this;e.fixedElements=void 0}}),"object"==typeof i&&i.exports?void(i.exports=o):o});