]>
git.proxmox.com Git - extjs.git/blob - extjs/classic/classic/src/fx/target/Element.js
2 * @class Ext.fx.target.Element
4 * This class represents a animation target for an {@link Ext.dom.Element}. In general this class
5 * will not be created directly, the {@link Ext.dom.Element} will be passed to the animation and
6 * and the appropriate target will be created.
8 Ext
.define('Ext.fx.target.Element', {
9 extend
: 'Ext.fx.target.Target',
13 constructor: function(target
) {
14 this.callParent([target
]);
16 // Allow simple local left/top style setting for top level absolute positioned elements.
17 this.isAbsoluteOnPage
= this.target
.dom
.parentNode
=== document
.body
&&
18 this.target
.isStyle('position', 'absolute');
21 getElVal: function(el
, attr
, val
) {
22 if (val
=== undefined) {
26 else if (attr
=== 'y') {
29 else if (attr
=== 'scrollTop') {
30 val
= el
.getScroll().top
;
32 else if (attr
=== 'scrollLeft') {
33 val
= el
.getScroll().left
;
35 else if (attr
=== 'height') {
38 else if (attr
=== 'width') {
42 val
= el
.getStyle(attr
);
49 getAttr: function(attr
, val
) {
52 return [[ el
, this.getElVal(el
, attr
, val
)]];
55 setAttr: function(targetData
) {
56 var ln
= targetData
.length
,
57 attrs
, attr
, o
, i
, j
, ln2
;
59 for (i
= 0; i
< ln
; i
++) {
60 attrs
= targetData
[i
].attrs
;
63 if (attrs
.hasOwnProperty(attr
)) {
64 ln2
= attrs
[attr
].length
;
66 for (j
= 0; j
< ln2
; j
++) {
68 this.setElVal(o
[0], attr
, o
[1]);
75 setElVal: function(element
, attr
, value
) {
77 if (this.isAbsoluteOnPage
) {
78 element
.setLocalX(value
);
81 element
.setXY([value
, null]);
84 else if (attr
=== 'y') {
85 if (this.isAbsoluteOnPage
) {
86 element
.setLocalY(value
);
89 element
.setXY([null, value
]);
92 else if (attr
=== 'scrollTop') {
93 element
.scrollTo('top', value
);
95 else if (attr
=== 'scrollLeft') {
96 element
.scrollTo('left', value
);
98 else if (attr
=== 'width') {
99 element
.setWidth(value
);
101 else if (attr
=== 'height') {
102 element
.setHeight(value
);
105 element
.setStyle(attr
, value
);