Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当子元素处于焦点时,防止浏览器移动元素_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 当子元素处于焦点时,防止浏览器移动元素

Javascript 当子元素处于焦点时,防止浏览器移动元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在实现一个简单的映射。地图由视口和地图图像本身组成,地图图像本身实际上是一个带有背景图像的div。 视口处于相对位置,其溢出被隐藏,并且地图图像绝对位于视口内。 可以在视口中使用鼠标移动地图,也可以仅增加图像的大小来缩放地图,因为图像是.svg 地图上有一些点,用户可以将鼠标悬停在这些点上,以在该点的工具提示中获取描述。也可以通过切换到点来聚焦这些点。 点是地图图像div的子对象,绝对按百分比定位,以便在缩放地图时保持正确的位置 当一个点被聚焦时,我想移动地图,使点在视口的中间。我已经为此编

我正在实现一个简单的映射。地图由视口和地图图像本身组成,地图图像本身实际上是一个带有背景图像的div。 视口处于相对位置,其溢出被隐藏,并且地图图像绝对位于视口内。 可以在视口中使用鼠标移动地图,也可以仅增加图像的大小来缩放地图,因为图像是.svg

地图上有一些点,用户可以将鼠标悬停在这些点上,以在该点的工具提示中获取描述。也可以通过切换到点来聚焦这些点。 点是地图图像div的子对象,绝对按百分比定位,以便在缩放地图时保持正确的位置

当一个点被聚焦时,我想移动地图,使点在视口的中间。我已经为此编写了代码,效果很好。但是,如果某个点在视口之外不可见,则浏览器会自动尝试移动地图,使该点可见。我不希望它这样做,因为它干扰了我编写的用于设置贴图移动动画的代码。这与滚动无关

我正在使用jQuery,并尝试了e.preventDefault和ReturnFalse;在映射点的焦点处理程序中,但两者都不起作用。 防止这种行为可能吗


提前感谢

我发现浏览器正在设置地图视口的滚动值,以便查看地图点。当我通过设置地图的顶部和左侧位置来移动地图时,这就是导致问题的原因


解决方案是将.Roul事件侦听器添加到视口中,当事件被触发时,只需将ScReltOp和ScLeLeLeLink值设置为0,请张贴当前使用的代码,并考虑创建一个Dual-Don JSFiddle,以便人们为您编辑。