修复ie9环境下tab切换后input中模拟placeholder错位问题

204 阅读1分钟

tab组件是利用display属性来切换视图的一个组件。

ie9下模拟placeholder之前文章已经提过,但是切换后,tabview视图中若有input框则其placeholder不展示&&错位,原因是模拟placeholder元素在获取input元素样式的时候,ie9浏览器尚未将input样式渲染,导致获取不到样式,从而产生异常。

解决方案:

// 利用浏览器的事件循环机制,在setTimeout回调中执行placeholder指令中获取样式的代码,从而确保在模拟行placeholder的div元素能获取到样式,正确渲染。
    if (isIE9) {
        // 等待浏览器渲染input
        setTimeout(() => {
            // 获取样式
        });
    }