将 div 的中心定位到页面上的给定坐标

发布于 2024-10-26 19:52:44 字数 78 浏览 4 评论 0原文

var x=200, y=140

如何将 div 的中心(宽度和高度 = 50px)定位到上述坐标?

var x=200, y=140

How would I position the center of a div (width & height = 50px) to the above coordinates?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

兔小萌 2024-11-02 19:52:44

您可以使用纯 CSS 来实现这一点。假设您的方形 div 静态为 50px,父 div 可以有任何坐标:

.parent{
    position:relative;
    width:200px;
    height:140px;
}
.child{
    position:absolute;
    top:50%;
    left:50%;
    margin-top:-25px; /* negative half of div height*/
    margin-left:-25px; /* negative half of div width */
    width:50px;
    height:50px;
}

查看 http://jsfiddle 的工作示例。净/F4RVf/1/

You can achieve this with pure CSS. Assuming your square div is static at 50px, parent div can have any coordinates:

.parent{
    position:relative;
    width:200px;
    height:140px;
}
.child{
    position:absolute;
    top:50%;
    left:50%;
    margin-top:-25px; /* negative half of div height*/
    margin-left:-25px; /* negative half of div width */
    width:50px;
    height:50px;
}

Check working example at http://jsfiddle.net/F4RVf/1/

霞映澄塘 2024-11-02 19:52:44

这应该可以工作:

//onload 
$(document).ready(function() {
    var x=200;
    var y=140;
    var div = $("#myDiv");
    var divWidth = div.width() / 2;
    var divHeight = div.height() / 2;
    div.css('left', x - divWidth );
    div.css('top', y - divHeight);
});

这是 CSS

#myDiv{position:absolute; left:0; width:50px; height:50px; background-color:red;}

在这里查看它的实际效果: http://jsfiddle.net/cgvAB/3/ /

this should work:

//onload 
$(document).ready(function() {
    var x=200;
    var y=140;
    var div = $("#myDiv");
    var divWidth = div.width() / 2;
    var divHeight = div.height() / 2;
    div.css('left', x - divWidth );
    div.css('top', y - divHeight);
});

here is the CSS

#myDiv{position:absolute; left:0; width:50px; height:50px; background-color:red;}

See it in action here: http://jsfiddle.net/cgvAB/3//

静谧幽蓝 2024-11-02 19:52:44

根据页面的其余部分,您可以使用绝对定位(可能在 position:relative 父级内部,如果这些是偏移量):

<style type="text/css">
    #myDiv {
        position: absolute;
        width: 300px;
        height: 300px;
        left: 200px;
        top: 140px;
        margin: -150px 0 0 -150px;
    }
</style>

如果您的 div 是可变高度/宽度,您需要使用 javascript 执行边距位(例如使用 jQuery):

<script type="text/javascript">
    var $myDiv = $('#myDiv');
    $myDiv.css({
        'margin-left': -($myDiv.outerWidth({ 'margin': true }) / 2),
        'margin-top': -($myDiv.outerHeight({ 'margin': true }) / 2)
    });
</script>

Depending on the rest of the page, you could use absolute positioning (potentially inside of a position:relative parent, if those are offsets):

<style type="text/css">
    #myDiv {
        position: absolute;
        width: 300px;
        height: 300px;
        left: 200px;
        top: 140px;
        margin: -150px 0 0 -150px;
    }
</style>

If your div is variable height/width, you'd need to do the margin bit with javascript (eg with jQuery):

<script type="text/javascript">
    var $myDiv = $('#myDiv');
    $myDiv.css({
        'margin-left': -($myDiv.outerWidth({ 'margin': true }) / 2),
        'margin-top': -($myDiv.outerHeight({ 'margin': true }) / 2)
    });
</script>
情感失落者 2024-11-02 19:52:44
<div id="mydiv" style="position: absolute; top:115px; left:175px; width:50px; height:50px;"></div>

*如果是动态坐标,请将以下内容添加到事件处理 JavaScript 函数中:

myDiv = document.getElementById('mydiv');
myDiv.style.top = x - 25 + 'px';
myDiv.style.left = y - 25 + 'px';
<div id="mydiv" style="position: absolute; top:115px; left:175px; width:50px; height:50px;"></div>

*in case of dynamic coordinates add the following to event handling javascript function:

myDiv = document.getElementById('mydiv');
myDiv.style.top = x - 25 + 'px';
myDiv.style.left = y - 25 + 'px';
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文