随着这个动画变得越来越复杂,我不断添加参数,以便在每次回调时都可以使用它们。目前共6个。
例如,现在我想在显示消息时禁用输入框,所以我必须添加另一个元素 -in_element;
电话:
Mo.C.movePane( cover_element, pane_element, 0, 0, 0, 'begin' );
功能:
movePane: function( cover_element, pane_element, start, end, index, state ) {
if( ( state === 'begin' ) ) {
start = parseInt( window.getComputedStyle( pane_element, null ).getPropertyValue("top"), 10 );
end = start + 40;
index = start;
state = 'down';
cover_element.style.display = 'inline';
Mo.C.movePane(cover_element, pane_element, start, end, index, 'down' );
}
if( ( state === 'down' ) && ( index < end ) ) {
index += 1;
pane_element.style.top = ( index ) + 'px';
setTimeout( function( ){ Mo.C.movePane(cover_element, pane_element, start, end, index, state ); }, 1 );
}
else if( ( state === 'down' ) && index === end ) {
state = 'up';
setTimeout( function( ){ Mo.C.movePane(cover_element, pane_element, start, end, index, state ); }, 2000 );
}
else if( ( state === 'up' ) && ( index > start ) ) {
index -= 1;
pane_element.style.top = ( index ) + 'px';
setTimeout( function( ){ Mo.C.movePane(cover_element, pane_element, start, end, index, state ); }, 1 );
}
else if( ( state === 'up' ) && ( index === start ) ) {
cover_element.style.display = 'none';
// signup_pass_input.addEventListener( "keypress", Mo.UserNew.enter, false );
}
}
};
可能的解决方案
- 将所有内容包装在一个名为 的对象中
object_all = {}
,并仅传递这一个变量。 - 以某种方式分解功能 - 可能会提取开始和结束条件以分离功能
- 从函数参数移动到对象属性(静态)以保持所需变量的持久性
- ?