如何在javascript中以ems的形式获取图像的左边距

如何在javascript中以ems的形式获取图像的左边距,javascript,css,Javascript,Css,我在互联网上搜索了3个多小时,在我的代码中没有任何建议有效。我试图做的是在每次点击时将图片一张一张地向左滑动(总共3张图片),当最后一张图片出现在屏幕上时,停止向左滑动并滑回第一张图片。要做到这一点,我需要检测第一张图片的左边距,当它击中某个点时(左边180em),并将其与“ems”值进行比较(代码如下)。“如果”的说法从不射杀,它总是指向“其他” 我试图用“$('#picture1').offsetLeft”,“$('#picture1').layerX”,“$('#picture1').le

我在互联网上搜索了3个多小时,在我的代码中没有任何建议有效。我试图做的是在每次点击时将图片一张一张地向左滑动(总共3张图片),当最后一张图片出现在屏幕上时,停止向左滑动并滑回第一张图片。要做到这一点,我需要检测第一张图片的左边距,当它击中某个点时(左边180em),并将其与“ems”值进行比较(代码如下)。“如果”的说法从不射杀,它总是指向“其他”

我试图用“$('#picture1').offsetLeft”,“$('#picture1').layerX”,“$('#picture1').left”来获取第一张图片的左边框位置(或边距),但它们都不起作用

如果你能告诉我另一个网站,Stackoverflow中的另一个问题或给我一个解决方案,我将不胜感激

注意:我对javascript非常陌生,如果我的代码或问题中有错误,请纠正我。多谢各位

var position = parseInt(jQuery("#picture1").css("margin-left"));
var left_border = '180ems';
    $(function() {
        $(".button").click(function() {
            if (position > 180ems) {
               $("#picture1").animate({
                   left: '-=60em'
               }, 600);
               $("#picture2").animate({
                   left: '-=60em'
               }, 600);
               $("#picture3").animate({
                   left: '-=60em'
               }, 600);
            }
            else {
                $("#picture1").animate({
                   left: '+=180em'
               }, 600);
               $("picture2").animate({
                   left: '+=120em'
               }, 600);
               $("#picture3").animate({
                   left: '+=60em'
               }, 600);
            };
        });

您总是可以获取像素值,然后尝试将其转换为ems,请参见此问题


编辑:或者您可以从左侧放置一个不可见的元素,然后从该元素获取该元素的像素值,然后使用该值进行比较。

我明天将尝试这两种方法,并让您知道。我更喜欢第二个想法,我可能会用它做很多其他的事情。非常感谢你!所以我最终使用“.position().left”将位置确定为整数,并通过检测浏览器的字体大小将其转换为ems。谢谢你的建议。