I am trying to make a this design my code is not working as i expect .. if the old width is bigger than the new width and offset Center -50 and if the old width is smaller than the new width and offset Center 50
the offset Center works with out the if but that means the if the user resizes the window the offset Center will be 50 or -50 every time the user resizes
the rectangles on the map is for covering the names only html
css
#map{
width: 100%;
height: 400px;
}
js
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&callback=initMap">
</script>
<script>
function oh_ow() {
var oh = $(window).height();
var ow = $(window).width();
return ow;
}
var old_w = oh_ow()
alert(old_w );
alert(ow);
function initMap() {
var uluru = {lat: 62.26393, lng: 82.386004};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 16,
center: uluru
});
var marker = new google.maps.Marker({
position: uluru,
map: map
});
function offsetCenter(latlng, offsetx, offsety) {
// latlng is the apparent centre-point
// offsetx is the distance you want that point to move to the right, in pixels
// offsety is the distance you want that point to move upwards, in pixels
// offset can be negative
// offsetx and offsety are both optional
var scale = Math.pow(2, map.getZoom());
var worldCoordinateCenter = map.getProjection().fromLatLngToPoint(latlng);
var pixelOffset = new google.maps.Point((offsetx/scale) || 0,(offsety/scale) ||0);
var worldCoordinateNewCenter = new google.maps.Point(
worldCoordinateCenter.x - pixelOffset.x,
worldCoordinateCenter.y + pixelOffset.y
);
var newCenter = map.getProjection().fromPointToLatLng(worldCoordinateNewCenter);
map.setCenter(newCenter);
}
google.maps.event.addDomListener(window, 'resize', function() {
//---------------------------------------------
var rtime;
var timeout = false;
var delta = 200;
$(window).resize(function() {
rtime = new Date();
if (timeout === false) {
timeout = true;
setTimeout(resizeend, delta);
}
});
function resizeend() {
if (new Date() - rtime < delta) {
setTimeout(resizeend, delta);
} else {
timeout = false;
var nh = $(window).height();
var nw = $(window).width();
//alert("old"+old_w);
//alert("new"+nw);
if(nw > old_w){
offsetCenter(map.getCenter(),50,-0);
}else if(nw < old_w){
offsetCenter(map.getCenter(),-50,-0);
}
}
}
//---------------------------------------------
});
}
</script>
what i wont is a responsive virgin of How to offset the center point in Google maps api V3
please can someone help