Jquery .offset()。left有时返回正确的值,有时返回0

时间:2017-07-18 11:59:52

标签: jquery offset

我正在制作一个带幻灯片的网站。我做了两个div,一个宽度等于屏幕宽度,第二个(小孩)大9倍(9张幻灯片)

我正在使用.offset().left设置正确的值,一般情况下,我的网站效果很好,但有时,它仍然停滞不前

我发现了什么问题。我已将.offset().left值打印到console.log中,看起来就像那样

Refresh no.1: 0
Refresh no.2: 0
Refresh no.3: 1920
Refresh no.4: 0
Refresh no.5: 1920
Refresh no.6: 1920
Refresh no.7: 0
Refresh no.8: 1920
Refresh no.9: 0
Refresh no.10: 0
Refresh no.11: 0

有时它是正确的,有时它不是,我不知道为什么。

1 个答案:

答案 0 :(得分:-1)

好的,它已经解决了,如果有人遇到同样的问题就离开了。 看来,尽管使用

$(document).ready 

它是在页面加载完成之前计算偏移量

我必须做的就是替换它:

$(document).ready(function(){
        $something1 = $('#something1').offset().left;
        $something2 = $('#something2').offset().left;
        $something3 = $('#something3').offset().left;

有了这个

$(document).ready(function(){
  $k = 1;
  $('#right').on('click',function(){
                if($k == 1){
                    $something1 = $('#something1').offset().left;
                    $something2 = $('#something2').offset().left;
                    $something3 = $('#something3').offset().left;
                    $k = 0;