UNPKG

gtht-miniapp-sdk

Version:

gtht-miniapp-sdk 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库

67 lines (66 loc) 1.81 kB
import { clamp } from './number'; /** * @description: 获取阻尼值 * @param {number} value * @param {number} min * @param {number} max * @param {number} damping * @return {number} */ export function getDampingValue(value, min, max, damping) { if (value < min) { return min + (value - min) * damping; } if (value > max) { return max + (value - max) * damping; } return value; } /** * @description: 获取矩形阻尼值 * @param {number} offset 当前的偏移量 * @param {number} areaSize 范围值 * @param {number} viewSize 范围内某个视图尺寸值 * @param {number} damping 阻尼系数 * @return {number} */ export function getRectDampingValue(offset, areaSize, viewSize, damping) { const diff = areaSize - viewSize; let min, max; if (diff < 0) { min = diff; max = 0; } else { min = 0; max = diff; } return getDampingValue(offset, min, max, damping); } /** * @description: 获取范围值 * @param {number} offset 当前的偏移量 * @param {number} areaSize 范围值 * @param {number} viewSize 范围内某个视图尺寸值 * @return {number} */ export function getInBoundValue(offset, areaSize, viewSize) { const diff = areaSize - viewSize; const [min, max] = [0, diff].sort((a, b) => a - b); return clamp(offset, min, max); } /** * @description: 获取溢出值范围 * @param {number} overflow 最大溢出值 * @param {number} areaSize 范围值 * @param {number} viewSize 范围内某个视图尺寸值 * @return {*} */ export function getOverflowRangeInArea(overflow, areaSize, viewSize) { if (areaSize > viewSize) { return [-overflow, areaSize + overflow]; } else { return [areaSize - viewSize - overflow, overflow]; } }