2012-05-02 103 views
0

我通过互联网搜索了3个多小时,没有任何建议在我的代码中工作。我试图做的是每次点击时将图片一张一张地滑动到左侧(总共3张图片),当最后一张图片在屏幕上时,请停止向左滑动并滑回第一张图片。要做到这一点,我需要检测第一张图片的左边距,当它碰到某个点(左边180em)并将其与“ems”值(代码如下)进行比较时。 “如果”陈述从不发射,它总是指向“其他”。我尝试使用“$('#picture1')。offsetLeft”,“$('#picture1')。layerX”,“$('#')获得第一张图片的左边界位置(或边距)图片1'),“左”,但他们都没有工作。如何在javascript中获取图像的左边缘为ems

如果你可以指导我到另一个网站,另一个问题在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); 
      }; 
     }); 

回答

0

你总是可以得到的像素值,然后尝试将其转换为EMS,看到这个问题jQuery/JavaScript: convert pixels to em in a easy way

编辑:或者你可以把一个无形的元素180ems从左边,然后取此元素的像素值,然后可以使用该值进行比较。

+0

我会明天试试这两个,并让你知道。我更喜欢第二个想法,我可能会使用它很多其他的东西。非常感谢你! –

+0

因此,我最终使用'.position()。left'来确定位置为一个整数,并通过检测浏览器的字体大小将其转换为ems。感谢您的建议。 –

相关问题