我在互联网上搜索了3个多小时,但我的代码中没有任何建议可以正常工作。我想做的是每次单击将图片向左滑动一次(总共3张图片),并且当屏幕中最后一张图片停止时,向左滑动并滑回到第一张图片。为此,我需要检测第一张图片碰到某个点(左边180em)时的左边距,并将其与“ ems”值进行比较(下面的代码)。 “ if”语句从不发芽,它始终指向“ else”。
我尝试使用“ $('#picture1')。offsetLeft”,“ $('#picture1')。layerX”,“ $('#picture1')来获取第一张图片的左边界位置(或边距)。离开”,但他们都没有工作。
如果您可以将我定向到另一个网站,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,请参见此问题jQuery/JavaScript: convert pixels to em in a easy way
编辑:或者,您可以从左侧放置一个不可见元素180ems,然后从该元素中获取该元素的像素值,然后可以使用该值进行比较。