]> git.proxmox.com Git - extjs.git/blame - extjs/packages/core/src/util/translatable/ScrollPosition.js
add extjs 6.0.1 sources
[extjs.git] / extjs / packages / core / src / util / translatable / ScrollPosition.js
CommitLineData
6527f429
DM
1/**\r
2 * @private\r
3 *\r
4 * Scroll position implementation\r
5 */\r
6Ext.define('Ext.util.translatable.ScrollPosition', {\r
7 extend: 'Ext.util.translatable.Dom',\r
8\r
9 type: 'scrollposition',\r
10\r
11 config: {\r
12 useWrapper: true\r
13 },\r
14\r
15 getWrapper: function() {\r
16 var wrapper = this.wrapper,\r
17 element = this.getElement(),\r
18 container;\r
19\r
20 if (!wrapper) {\r
21 container = element.getParent();\r
22\r
23 if (!container) {\r
24 return null;\r
25 }\r
26\r
27 if (container.hasCls(Ext.baseCSSPrefix + 'translatable-hboxfix')) {\r
28 container = container.getParent();\r
29 }\r
30\r
31 if (this.getUseWrapper()) {\r
32 wrapper = element.wrap();\r
33 }\r
34 else {\r
35 wrapper = container;\r
36 }\r
37\r
38 element.addCls(Ext.baseCSSPrefix + 'translatable');\r
39 wrapper.addCls(Ext.baseCSSPrefix + 'translatable-container');\r
40\r
41 this.wrapper = wrapper;\r
42\r
43 wrapper.on('painted', function() {\r
44 if (!this.isAnimating) {\r
45 this.refresh();\r
46 }\r
47 }, this);\r
48\r
49 this.refresh();\r
50 }\r
51\r
52 return wrapper;\r
53 },\r
54\r
55 doTranslate: function(x, y) {\r
56 var wrapper = this.getWrapper(),\r
57 dom;\r
58\r
59 if (wrapper) {\r
60 dom = wrapper.dom;\r
61\r
62 if (typeof x == 'number') {\r
63 dom.scrollLeft = 500000 - x;\r
64 }\r
65\r
66 if (typeof y == 'number') {\r
67 dom.scrollTop = 500000 - y;\r
68 }\r
69 }\r
70 },\r
71\r
72 destroy: function() {\r
73 var me = this,\r
74 element = me.getElement(),\r
75 wrapper = me.wrapper;\r
76\r
77 if (wrapper) {\r
78 if (!element.destroyed) {\r
79 if (me.getUseWrapper()) {\r
80 wrapper.doReplaceWith(element);\r
81 }\r
82 element.removeCls(Ext.baseCSSPrefix + 'translatable');\r
83 }\r
84 if (!wrapper.destroyed) {\r
85 wrapper.removeCls(Ext.baseCSSPrefix + 'translatable-container');\r
86 wrapper.un('painted', 'refresh', me);\r
87 }\r
88\r
89 delete me.wrapper;\r
90 delete me._element;\r
91 }\r
92\r
93 me.callParent();\r
94 }\r
95\r
96});\r