press-ui
Version:
简单、易用的跨端组件库,兼容 Vue2 和 Vue3,同时支持 uni-app和普通 Vue 项目
40 lines (31 loc) • 901 B
JavaScript
import { style } from '../common/utils/style';
import { addUnit } from '../common/utils/add-unit';
function isObj(x) {
const type = typeof x;
return x !== null && (type === 'object' || type === 'function');
}
function optionText(option, valueKey) {
return isObj(option) && option[valueKey] != null ? option[valueKey] : option;
}
function optionTextHtml(option) {
return isObj(option) && option.html;
}
function rootStyle(data) {
return style({
height: addUnit(data.itemHeight * data.visibleItemCount),
});
}
function wrapperStyle(data) {
const offset = addUnit(data.offset + (data.itemHeight * (data.visibleItemCount - 1)) / 2);
return style({
transition: `transform ${data.duration}ms`,
'line-height': addUnit(data.itemHeight),
transform: `translate3d(0, ${offset}, 0)`,
});
}
export default {
optionText,
optionTextHtml,
rootStyle,
wrapperStyle,
};