添加 cl-marquee 跑马灯组件
This commit is contained in:
@@ -119,23 +119,6 @@ export function parseToObject<T>(data: T): UTSJSONObject {
|
||||
// #endif
|
||||
}
|
||||
|
||||
/**
|
||||
* 将数值或字符串转换为rpx单位的字符串
|
||||
* @param val 要转换的值,可以是数字或字符串
|
||||
* @returns 转换后的rpx单位字符串
|
||||
* @example
|
||||
* parseRpx(10) // 返回 '10rpx'
|
||||
* parseRpx('10rpx') // 返回 '10rpx'
|
||||
* parseRpx('10px') // 返回 '10px'
|
||||
*/
|
||||
export const parseRpx = (val: number | string): string => {
|
||||
if (typeof val == "number") {
|
||||
return val + "rpx";
|
||||
}
|
||||
|
||||
return val;
|
||||
};
|
||||
|
||||
/**
|
||||
* 将rpx单位转换为px单位
|
||||
* @param rpx 要转换的rpx值
|
||||
@@ -167,16 +150,95 @@ export const px2rpx = (px: number): number => {
|
||||
};
|
||||
|
||||
/**
|
||||
* 解析px单位,支持rpx单位转换
|
||||
* @param val 要解析的值,可以是数字或字符串
|
||||
* @returns 解析后的px单位
|
||||
* 将数值或字符串转换为rpx单位的字符串
|
||||
* @param val 要转换的值,可以是数字或字符串
|
||||
* @returns 转换后的rpx单位字符串
|
||||
* @example
|
||||
* parseRpx(10) // 返回 '10rpx'
|
||||
* parseRpx('10rpx') // 返回 '10rpx'
|
||||
* parseRpx('10px') // 返回 '10px'
|
||||
*/
|
||||
export const getPx = (val: string) => {
|
||||
const num = parseInt(val);
|
||||
export const parseRpx = (val: number | string): string => {
|
||||
if (typeof val == "number") {
|
||||
return val + "rpx";
|
||||
}
|
||||
|
||||
if (val.includes("rpx")) {
|
||||
return val;
|
||||
};
|
||||
|
||||
/**
|
||||
* 示例: 获取数值部分
|
||||
* @example
|
||||
* getNum("10rpx") // 返回 10
|
||||
* getNum("10px") // 返回 10
|
||||
* getNum("10") // 返回 10
|
||||
* getNum("-5.5px") // 返回 -5.5
|
||||
* @param val - 输入值,例如 "10rpx"、"10px"、"10"
|
||||
* @returns number - 返回提取的数值
|
||||
*/
|
||||
export const getNum = (val: string): number => {
|
||||
// 使用正则提取数字部分,支持小数和负数
|
||||
const match = val.match(/-?\d+(\.\d+)?/);
|
||||
return match != null ? parseFloat(match[0] ?? "0") : 0;
|
||||
};
|
||||
|
||||
/**
|
||||
* 示例: 获取单位
|
||||
* @example
|
||||
* getUnit("10rpx") // 返回 "rpx"
|
||||
* getUnit("10px") // 返回 "px"
|
||||
* @param val - 输入值,例如 "10rpx"、"10px"
|
||||
* @returns string - 返回单位字符串,如 "rpx" 或 "px"
|
||||
*/
|
||||
export const getUnit = (val: string): string => {
|
||||
const num = getNum(val);
|
||||
return val.replace(`${num}`, "");
|
||||
};
|
||||
|
||||
/**
|
||||
* 示例: 转换为 rpx 值
|
||||
* @example
|
||||
* getRpx("10rpx") // 返回 10
|
||||
* getRpx("10px") // 返回 px2rpx(10)
|
||||
* getRpx(10) // 返回 10
|
||||
* @param val - 输入值,可以是 "10rpx"、"10px" 或数字 10
|
||||
* @returns number - 返回对应的 rpx 数值
|
||||
*/
|
||||
export const getRpx = (val: number | string): number => {
|
||||
if (typeof val == "number") {
|
||||
return val;
|
||||
}
|
||||
|
||||
const num = getNum(val);
|
||||
const unit = getUnit(val);
|
||||
|
||||
if (unit == "px") {
|
||||
return px2rpx(num);
|
||||
}
|
||||
|
||||
return num;
|
||||
};
|
||||
|
||||
/**
|
||||
* 示例: 转换为 px 值
|
||||
* @example
|
||||
* getPx("10rpx") // 返回 rpx2px(10)
|
||||
* getPx("10px") // 返回 10
|
||||
* getPx(10) // 返回 rpx2px(10)
|
||||
* @param val - 输入值,可以是 "10rpx"、"10px" 或数字 10
|
||||
* @returns number - 返回对应的 px 数值
|
||||
*/
|
||||
export const getPx = (val: string | number) => {
|
||||
if (typeof val == "number") {
|
||||
return rpx2px(val);
|
||||
}
|
||||
|
||||
const num = getNum(val);
|
||||
const unit = getUnit(val);
|
||||
|
||||
if (unit == "rpx") {
|
||||
return rpx2px(num);
|
||||
}
|
||||
|
||||
return Math.floor(num);
|
||||
return num;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user