js模拟打字机效果

发布时间 2023-08-30 18:23:09作者: 居无常

通用方法定义

/**
 * 
 * @param {*} text 打字文本
 * @param {*} callback 完成打印效果回调
 * @param {*} timeout 完成打印效果多久回调
 */
export function textPrinter({ text, change, complete, timeout = 1000 }) {
    if (text) {
        const len = text.length;
        let count = 0;
        const interval = setInterval(() => {
            count++;
            if (count > len) {
                // 完成
                setTimeout(() => {
                    complete && complete()
                }, timeout)
                clearInterval(interval)
            } else {
                change && change(text.substring(0, count))
            }
        }, 60)
    } else {
        // 完成
        setTimeout(() => {
            complete && complete()
        }, timeout)
    }
}

方法调用

      textPrinter({
              text: printText,
              change(text) {
                if (firstInput) return;
                placeholderText.value = text
              },
              complete() {
                count ++;
                loopFn()
              },
            })