解決頁面整體使用transform scale后高德地圖點(diǎn)位點(diǎn)擊偏移錯位問題
最近在可視化項(xiàng)目中使用 css3 transform:scale()封裝了一個組件 讓頁面縮小或者放大自適應(yīng)屏幕
js文件:
import React, { useState, useEffect } from 'react';
import { useDebounceFn } from 'ahooks';
import styles from './index.module.less';
?
export default ({ width, height, children }) => {
? const getScale = () => {
? ? const x = window.innerWidth / width;
? ? const y = window.innerHeight / height;
? ? return { x, y };
? };
?
? console.log(width, height, 'props');
?
? const [scale, setScale] = useState(getScale());
?
? const { run: handleScale } = useDebounceFn(
? ? () => {
? ? ? const s = getScale();
? ? ? setScale(s);
? ? },
? ? {
? ? ? wait: 500,
? ? }
? );
?
? useEffect(() => {
? ? window.addEventListener('resize', handleScale);
? }, []);
?
? useEffect(() => {
? ? console.log('當(dāng)前縮放比例', scale);
? }, [scale]);
?
? return (
? ? <div
? ? ? className={styles['scale-box']}
? ? ? style={{
? ? ? ? transform: `scale(${scale.x},${scale.y}) translateX(-50%)`,
? ? ? ? WebkitTransform: `scale(${scale.x},${scale.y}) translateX(-50%)`,
? ? ? ? width,
? ? ? ? // minHeight: window.innerHeight,
? ? ? }}
? ? >
? ? ? {children}
? ? </div>
? );
};css文件:
.scale-box {
? position: absolute;
? top: 0;
? left: 50%;
? transform-origin: 0 0;
? transition: 0.3s;
}然后發(fā)現(xiàn)使用 transform:scale()縮放后會導(dǎo)致高德地圖的點(diǎn)位點(diǎn)擊的時候會出現(xiàn) 點(diǎn)位偏移 錯位的情況 找了很多方法 最后用 iframe 解決了
把地圖單獨(dú)封裝一個組件 拿 iframe 去引入這個組件
? ? <iframe
? ? ? ?className="map_iframe"
? ? ? ?width="808px"
? ? ? ?height="953px"
? ? ? ?src={`http://${window.location.host}/maprouter`}
? ? ? ?frameBorder="0"到此這篇關(guān)于解決頁面整體使用transform scale后高德地圖點(diǎn)位點(diǎn)擊偏移錯位問題的文章就介紹到這了,更多相關(guān)面整體使用transform scale內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
uniapp實(shí)現(xiàn)全局設(shè)置字體大小(小中大的字體切換)
隨著UniApp的流行,越來越多的開發(fā)者選擇使用它來構(gòu)建跨平臺應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于uniapp實(shí)現(xiàn)全局設(shè)置字體大小(小中大的字體切換)的相關(guān)資料,需要的朋友可以參考下2023-06-06
Bootstrap Modal對話框如何在關(guān)閉時觸發(fā)事件
這篇文章主要為大家詳細(xì)介紹了Bootstrap Modal對話框如何在關(guān)閉時觸發(fā)事件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12
短視頻(douyin)去水印工具的實(shí)現(xiàn)代碼
這篇文章主要介紹了市面上短視頻(douyin)"去水印"的工具原來是這樣實(shí)現(xiàn)的,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
javascript動態(tài)修改Li節(jié)點(diǎn)值的方法
這篇文章主要介紹了javascript動態(tài)修改Li節(jié)點(diǎn)值的方法,涉及針對li節(jié)點(diǎn)的操作技巧,非常具有實(shí)用價值,需要的朋友可以參考下2015-01-01

