ios input 鍵盤收起頁面底部有間隙沒有自動還原
1.ios input 鍵盤收起頁面底部有間隙沒有自動還原
解決辦法: 最外層元素增加fixed 布局即可
2. ios input輸入 頁面會放大,收起時頁面不自動還原
解決辦法 input 字體設置最小為16px即可
3.網頁標簽切換獲取切換狀態
解決辦法: 最外層元素增加fixed 布局即可
2. ios input輸入 頁面會放大,收起時頁面不自動還原
解決辦法 input 字體設置最小為16px即可
3.網頁標簽切換獲取切換狀態
document.addEventListener("visibilitychange", visibleChangeFun);
const visibleChangeFun= ()=>{
if (document.visibilityState === "hidden"){
//隱藏
}
if (document.visibilityState === "hidden"){
//隱藏
}
}
4.倒計時要用本地時間處理,不然切頁面定時器不執行,時間不準確,以及離開標簽頁,或息屏用 document.visibilityState === "hidden" 判斷,
const [timeLeft, setTimeLeft] = useState<any>();
const [startTime, setStartTime] = useState<any>(new Date().getTime());
const hideTimeRef = useRef<any>();
const timeLeftRef = useRef<any>();
useEffect(() => {
timer = setInterval(() => {
setTimeLeft((prevTimeLeft: number) => prevTimeLeft - 1000);
}, 1000);
return () => {
clearInterval(timer);
};
}, [expires]);
useEffect(() => {
if (expires) {
setTimeLeft(expires);
setStartTime(new Date().getTime());
}
}, [expires])
useEffect(() => {
if (timeLeft + startTime <= new Date().getTime()) { 也可以直接用timeLeft<=0 判斷即可
timer && clearInterval(timer);
}
}, [timeLeft]);
useEffect(() => {
//監聽ios息屏
const visibleChangeFun = function () {
if (document.visibilityState === "hidden") {
// 息屏時主動關閉定時器,并記錄當前時間
clearInterval(timer);
hideTimeRef.current = getTimeNow()
timeLeftRef.current = timeLeft
} else {
console.log('visible show :');
// 用戶打開手機進入頁面時,記錄當前時間,計算出息屏期間的時間,并重新啟動定時器
const showTime = getTimeNow();
const diffTime = showTime - hideTimeRef.current;
// 假設 countdown 是剩余倒計時時間
// countdown -= diffTime;
if (timeLeftRef.current - diffTime > 0) {
setTimeLeft(timeLeftRef.current - diffTime);
visibleStatusTimer = setInterval(function () {
// 更新倒計時邏輯
setTimeLeft((prevTimeLeft: number) => prevTimeLeft - 1000);
}, 1000);
} else {
setTimeLeft(0);
}
}
}
document.addEventListener("visibilitychange", visibleChangeFun);
return () => {
document.removeEventListener("visibilitychange", visibleChangeFun);
clearInterval(visibleStatusTimer);
}
}, [timeLeft])

浙公網安備 33010602011771號