fit
does have duration and easing options, and animate
has an anchor option. However there is only one view it's simply the controls which have been moved using CSS, so any other interactions will apply to the full view. But you could base a solution on the shared views example https://openlayers.org/en/v4.6.5/examples/side-by-side.html and have two synchronised maps, use CSS to overflow the outer map (created without controls) to offset its center and overlay it with another map positioned so the centers coincide. This code will position the center towards the bottom right at 2/3 the width and height by extending the outer map by 4/3, with the inner map having 45% the width and height of the full outer map http://mikenunn.16mb.com/demo/view-on-view-br.html
<!doctype html>
<html lang="en">
<head>
<link rel="stylesheet" href="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/css/ol.css" type="text/css">
<style>
html, body {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
overflow: hidden;
}
.map1 {
position: absolute;
width: calc(100% *4/3);
height: calc(100% *4/3);
}
.map2 {
position: absolute;
left: calc((100% - 45%)/2);
top: calc((100% - 45%)/2);
width: 45%;
height: 45%;
}
</style>
<script src="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/build/ol.js"></script>
<title>OpenLayers View on View example</title>
</head>
<body>
<div id="map1" class="map1"><div id="map2" class="map2"></div></div>
<script type="text/javascript">
var source = new ol.source.OSM();
var map2 = new ol.Map({
target: 'map2',
layers: [new ol.layer.Tile({ source: source })],
view: new ol.View({
center: ol.proj.fromLonLat([2.3442, 48.8635]),
zoom: 10
})
});
var map1 = new ol.Map({
target: 'map1',
controls: [],
layers: [new ol.layer.Tile({ source: source, opacity: 0.6 })],
view: map2.getView()
});
var map1div = document.getElementById("map1");
var map2div = document.getElementById("map2");
var map1ov = map1div.getElementsByClassName("ol-overlaycontainer")[1];
map1ov.appendChild(map2div);
</script>
</body>
</html>
This CSS would position the center towards the top left at 1/3 the width and height by extending the outer map left and up instead of right and down http://mikenunn.16mb.com/demo/view-on-view-tl.html
.map1 {
position: absolute;
width: calc(100% *4/3);
height: calc(100% *4/3);
left: calc(100% - 100% *4/3);
top: calc(100% - 100% *4/3);
}