如何在javascript中以ems的形式获取图像的左边距
我在互联网上搜索了3个多小时,在我的代码中没有任何建议有效。我试图做的是在每次点击时将图片一张一张地向左滑动(总共3张图片),当最后一张图片出现在屏幕上时,停止向左滑动并滑回第一张图片。要做到这一点,我需要检测第一张图片的左边距,当它击中某个点时(左边180em),并将其与“ems”值进行比较(代码如下)。“如果”的说法从不射杀,它总是指向“其他” 我试图用“$('#picture1').offsetLeft”,“$('#picture1').layerX”,“$('#picture1').left”来获取第一张图片的左边框位置(或边距),但它们都不起作用 如果你能告诉我另一个网站,Stackoverflow中的另一个问题或给我一个解决方案,我将不胜感激 注意:我对javascript非常陌生,如果我的代码或问题中有错误,请纠正我。多谢各位如何在javascript中以ems的形式获取图像的左边距,javascript,css,Javascript,Css,我在互联网上搜索了3个多小时,在我的代码中没有任何建议有效。我试图做的是在每次点击时将图片一张一张地向左滑动(总共3张图片),当最后一张图片出现在屏幕上时,停止向左滑动并滑回第一张图片。要做到这一点,我需要检测第一张图片的左边距,当它击中某个点时(左边180em),并将其与“ems”值进行比较(代码如下)。“如果”的说法从不射杀,它总是指向“其他” 我试图用“$('#picture1').offsetLeft”,“$('#picture1').layerX”,“$('#picture1').le
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。谢谢你的建议。