css - 动态/响应式 CSS 大小
问题描述
我有一张带有位置标记的地图,我想在用户放大/缩小时更改标记的大小。我正在捕获状态的缩放级别,它是一个浮点数(即 11.3235)。
如何将此数字(来自状态)传递给 css 类,以便标记的大小会动态改变其大小?我希望标记的宽度和高度根据缩放级别精确,而不是使用小/中/大标记。
class Mapbox extends Component {
constructor(props){
super(props)
this.state = {
viewport: {
width: 900,
height: 500,
latitude: 49.2463,
longitude: -123.1162,
zoom: 11
},
active_vehicles: [],
marker_size: 0,
};
}
_onViewportChange = viewport => {
this.setState({viewport});
// Depending on zoom level, change Markers' class to dynamically change their display size/style
this.setState({marker_size: this.state.viewport.zoom})
};
createMarkers = () => {
let markers = []
if(this.state.active_vehicles){
for (let i = 0; i < this.state.active_vehicles.length; i++) {
markers.push(
<Marker key={i} latitude={this.state.active_vehicles[i]["Latitude"]} longitude={this.state.active_vehicles[i]["Longitude"]}>
<div className={"location-marker " + this.state.marker_size}></div>
</Marker>
)
}
return markers
}
}
render() {
return (
<ReactMapGL
// mapbox API access token
mapboxApiAccessToken={MAPBOX_TOKEN}
mapStyle="mapbox://styles/mapbox/dark-v9"
{...this.state.viewport}
onViewportChange={this._onViewportChange}>
<div>
{this.createMarkers()}
</div>
</ReactMapGL>
);
}
}
解决方案
推荐阅读
- powerbi - power bi dax中的日期比较
- ios - 如何处理场景中的备用视图
- parallel-processing - MPI 发送“无法被网络缓冲”
- javascript - 在 Internet Explorer 中,如何以编程方式更改“选择”元素的(显示)值?
- python - 使用预签名 URL 上传文件的 Python 脚本
- javascript - 遍历对象,然后将值传递给 axios 函数,在 react 组件中渲染结果
- android - Android - ListRowPresenter 选定项目的位置固定
- asp.net - Blazor WeatherForecast 示例如何工作?
- javascript - IntersectionObserver 多个条目
- c# - 过滤数据表 - @ 后缺少操作数