0

我在互联网上搜索了超过 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);
            };
        });
4

1 回答 1

0

您总是可以获取以像素为单位的值,然后尝试将其转换为 em,请参阅此问题jQuery/JavaScript: convert pixels to em in a easy way

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

于 2012-05-02T05:37:58.670 回答