Css 跳转后在锚定图像上居中?

Css 跳转后在锚定图像上居中?,css,css-position,centering,Css,Css Position,Centering,当我跳转到一个4000px宽页面上的锚定标记时,锚定的图像水平对齐到右侧。如何使其与中心对齐?我试过几种方法,但似乎都不管用。因为我是新来的,所以我不允许发布代码,所以我希望我已经足够清楚了 谢谢你的帮助 Robert C.之所以会出现这个问题,是因为浏览器只需进行最少的滚动即可将锚定元素显示出来。因此,如果它在可视区域的右侧关闭,当单击锚定标记时,它将向右滚动足够远,以显示整个元素 如果这是一个选项,您可以使用javascript修复此行为。您将无法使用直接CSS将其居中放置在锚定单击上 下面

当我跳转到一个4000px宽页面上的锚定标记时,锚定的图像水平对齐到右侧。如何使其与中心对齐?我试过几种方法,但似乎都不管用。因为我是新来的,所以我不允许发布代码,所以我希望我已经足够清楚了

谢谢你的帮助


Robert C.

之所以会出现这个问题,是因为浏览器只需进行最少的滚动即可将锚定元素显示出来。因此,如果它在可视区域的右侧关闭,当单击锚定标记时,它将向右滚动足够远,以显示整个元素

如果这是一个选项,您可以使用javascript修复此行为。您将无法使用直接CSS将其居中放置在锚定单击上

下面是一个使用jQuery的解决方案。我引用了解决方案,因为它可能会带来比您想要的更多的问题。例如,如果没有进一步的JS,返回按钮将无法转到上一个链接。但是,在给定示例代码的情况下,这会使项目居中

只需将其添加到您上面链接的页面的结束标记之前:


它将找到所有带有内部链接href开头的标签。然后它找到具有该名称的目标,并获取子img标记。然后得到img元素和window元素的维度。对img元素偏移量进行一些计算,并将其滚动到中心

您可以使用诸如pastebin之类的服务来粘贴代码。当您在上面的链接页面上单击Go时,您想要达到什么效果。我希望图片是中间的,而不是右边的。是的,但是效果是否要求图像都在一个大的页面上?如果有人使用超大的查看窗口,或将浏览器设置为以10%的缩放率查看页面,会发生什么情况?从用户的角度来看,点击链接和转到另一个以图形为中心的页面有什么区别?这可能是一个很好的理由,你把所有的图片放在一个大页面上,并将它们隔开。谢谢你的快速回复。JS解决方案是我可以在网上找到的吗?我是新手,所以写javascript可能暂时超出我的能力范围。嘿@Robert,我想我能帮上忙,但先问两个问题。你能发布一个到目前为止你所拥有的东西的链接吗?你反对在页面上使用jQuery56K吗。。。没有看到上面的链接,那么就回答问题2:我绝对不反对jQuery,大小不会是问题,问题是,我基本上是一个初学者,学习曲线可能有点陡峭。哇,dcneiner,非常感谢!超出职责范围。这是完美的,因为我将不需要这个项目的后退按钮。我现在必须上床睡觉,但我迫不及待地想学习和尝试代码。再次感谢。一旦我得到了一些值得分享的知识,我一定会转达我的好意。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>  
<script type="text/javascript">
$(function(){
   $("a[href^=#]").click(function(e){
       var id      = $(this).attr('href').substr(1),
           $target = $('*[name=' + id + '] img'),
           $window = $(window),
           offset  = $target.offset();

       var left = offset.left - ($window.width() / 2) + ($target.width() / 2 );
       var top  = offset.top  - ($window.height() / 2) + ($target.height() / 2);


       $('html,body').scrollTop(top).scrollLeft( left);

       e.preventDefault(); // Keep the browser from trying
   });  
});
</script>