ElemeFE / vue-amap

🌍 基于 Vue 2.x 和高德地图的地图组件
https://elemefe.github.io/vue-amap/
MIT License
3.33k stars 584 forks source link

给父级元素设置 transform: scaleX(0.5); 缩放,鼠标点击位置发生偏移 #601

Closed Ljsxx closed 3 years ago

Ljsxx commented 4 years ago

描述网址:https://ask.csdn.net/questions/1057855

报错信息:无报错

起因:有两块屏幕,一块屏幕的比例是19201080,另一块屏幕的比例是38401080。1920的屏幕内容直接投射在3840的屏幕上,由于比例不一致,导致3840的屏幕显示内容宽度会拉伸两倍。但是需要在3840屏幕上显示正常。

拟解决方案:将1920屏幕内容整体宽度缩小0.5,高度不变,即给 body css属性, transform: scaleX(0.5); 。在1920屏幕看会压缩,但在3840屏幕上显示正常。

出现问题:3840屏幕显示正常了,但是地图上鼠标位置会发生偏移,例如想点击地图上某个点,但地图反馈的地方却在点击位置的左边。问如何才能解决鼠标偏移的问题,地图宽度需要整体缩小0.5,鼠标点击位置也正确?

amap-py

Ljsxx commented 3 years ago

已解决,把高德地图的组件放到 iframe 标签里面,在 iframe 标签的父组件做 transform:scale()

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    html {
      width: 100%;
      height: 100%;
    }
    body {
      width: 100%;
      height: 100%;
      transform: scaleX(0.5);
      transform-origin: left;
    }
    iframe {
      width: 100%;
      height: 100%;
    }
  </style>
</head>
<body>
  <iframe src="https://ditu.amap.com/place/B0FFHQ2LLW" frameborder="0"></iframe>
</body>
</html>