首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将比屏幕宽的div中心对齐到屏幕中心。

将比屏幕宽的div中心对齐到屏幕中心。
EN

Stack Overflow用户
提问于 2014-06-20 14:38:51
回答 2查看 169关注 0票数 2

我有一个图像嵌套在几个div中。图像的宽度为2000‘s,当浏览器的宽度被设置为小于页面加载时,我希望图像的中心对齐到屏幕的中心,并能够向左/右滚动查看图像的其余部分。我还需要粉红色边框的div跟随图像,保持与现在相同的位置(广场需要停留在英国上空,圆圈在波兰上空)。

到目前为止,我有一个JS小提琴,所以当页面加载时,我希望我放置在地图上的X出现在屏幕的中间,然后仍然能够左右滚动查看地图的其余部分。我还需要将图像保留为图像元素,而不是背景图像,因为我有一个允许缩放的页面特性,但是当我使用背景图像时会得到不理想的结果,但是为了这个问题,我已经删除了所有的代码。

代码语言:javascript
复制
//html
    <div id="map-container">
        <div id="map-inner-container">
        <img src="http://img253.imagevenue.com/aAfkjfp01fo1i-27999/loc573/72685_vector_world_map_v2.2copy_122_573lo.jpg" style="z-index:-9999;">
        <div id="map-1" onclick="showPopup(1)"><!-- UK --></div>
        <div id="map-2" onclick="showPopup(2)"><!-- Poland --></div>
        </div>
    </div>

//css
    #map-container{
        z-index:-9000;
        width:2000px;
        height:1414px;
    }
    #map-inner-container {
        position:relative;
        top:0;
    }

JSFIDDLE:http://jsfiddle.net/Lt4PW/7/

我在这里看过很多其他类似的问题,并尝试了所有的解决方案,但似乎都没有效果。我确实有一次通过让图像中心对齐屏幕的中心来接近屏幕,但是当添加overflow:auto时无法滚动事件。

我发现的所有其他解决方案都只使用css,在img的外部div上有left:50%margin-left:-1000px /*half of width*/之类的东西,但是由于这样的东西对我不起作用,所以我对JavaScript/jQuery解决方案开放,如果它能工作的话,也可以使用纯css。

当我不知所措时,帮助是非常感激的!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-20 15:16:19

使用jQuery,您可以执行以下操作:

代码语言:javascript
复制
  var windowHeight = $(window).height();
  var windowWidth = $(window).width();
  $('body').scrollTop(($('#map-container').height()/2)-(windowHeight/2));
  $('body').scrollLeft(($('#map-container').width()/2)-(windowWidth/2));

小提琴

票数 2
EN

Stack Overflow用户

发布于 2014-06-20 15:06:39

可以将#map-inner-container的宽度设置为100%,并将overflow-x属性设置为auto。当您的#map-container小于#map-inner-container中的图像时,它将在#map-inner-container底部添加一个滚动条,这样您仍然可以滚动以查看图像的左侧和右侧。我已经将您的#map-container的宽度更改为900px,以模拟这种情况。

#map-container{ z-index:-9000; width:900px; height:1414px;

}

#map-inner-container { position:relative;

代码语言:javascript
复制
 `width: 100%;`
代码语言:javascript
复制
 `overflow-x: auto;     overflow-y: hidden; }`

为了最初显示图像的中心,而不是左侧,您可以使用JQuery的.scrollLeft方法

$("#map-inner-container").scrollLeft(500);

您可以根据需要更改值500

示例:http://jsfiddle.net/Lt4PW/4/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24329833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档