* @method scrollTo * @private
( option )
| 966 | * @private |
| 967 | */ |
| 968 | _scrollTo( option ) { |
| 969 | var optPos, optTop, optBottom, |
| 970 | dkOpts = this.data.elem.lastChild; |
| 971 | |
| 972 | if ( option === -1 || ( typeof option !== "number" && !option ) || |
| 973 | ( !this.isOpen && !this.multiple ) ) { |
| 974 | return false; |
| 975 | } |
| 976 | |
| 977 | if ( typeof option === "number" ) { |
| 978 | option = this.item( option ); |
| 979 | } |
| 980 | |
| 981 | optPos = _.position( option, dkOpts ).top; |
| 982 | optTop = optPos - dkOpts.scrollTop; |
| 983 | optBottom = optTop + option.offsetHeight; |
| 984 | |
| 985 | if ( optBottom > dkOpts.offsetHeight ) { |
| 986 | optPos += option.offsetHeight; |
| 987 | dkOpts.scrollTop = optPos - dkOpts.offsetHeight; |
| 988 | } else if ( optTop < 0 ) { |
| 989 | dkOpts.scrollTop = optPos; |
| 990 | } |
| 991 | } |
| 992 | }; |
| 993 | |
| 994 | // Cache of DK Objects |
no test coverage detected