javascript - 查找元素与左侧的距离

标签 javascript css

我使用技巧将元素居中放置在屏幕中间

.info{
    z-index: 0;
        width: 700px;
        height: 500px;
        margin: auto;
        position: absolute;
        top: 0px;
        left: 0;
        bottom: 0;
        right: 0;
    }

在该元素内我有另一个元素,我如何检索该元素与左上角的距离?我已经尝试过 offsetLeft 属性,但它返回 0 ,由于我提到的将所有属性都设置为 0 的技巧,我该如何克服这个问题? html

<div class="info">

    <div class="vyrobky">
<div class="vyrobky_holder">
<ul>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
        <li>
            <div class="vyrobky_image"><img src="zabradlia/5.jpg" style="transform: scale(1);"></div>
        </li>
    </ul>
</div>

</div></div>

最佳答案

因为您用边距定位了框并将 topleftrightbottom 属性设置为0,框与其父框之间没有任何距离。

但是您可以获得计算出的 margin 值,这些值是指内容与父元素之间的空间。

var el = document.querySelector('.info');
var style = window.getComputedStyle(el);

var top = style['margin-top'],
    left = style['margin-left'];

alert(
    "Top:" + top + '\n' +
    "Left:" + left
);

Fiddle

关于javascript - 查找元素与左侧的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34466998/

相关文章:

javascript - 将 id 添加到动态创建的 <div>

javascript - CasperJS 的 getElementsByXpath 返回带有有效 XPath 的 null

css - 如何在 vuetify 中使用颜色

javascript - 我已经设置了 webpack 但输出的 html 和 localhost 8080 html 不一样

html - IE8 优化问题(<div> 中的 float 元素,&lt;header&gt; 中的渐变...)

javascript - 使用jquery创建动态div

javascript - babel-cli 与 npm 的问题

javascript - Google map 中自定义标记的编号

javascript - 无法在同位素中居中布局

iframe 中的 HTML anchor 在 Chrome 或 Safari 中不起作用