браузеры webkit неправильно получают elements.width () - PullRequest
4 голосов
/ 12 февраля 2010

Я пытаюсь получить правильную рассчитанную ширину контейнера. Все браузеры правильно рассчитывают ширину. (даже IE), но удивительно, что браузеры Chrome и webKit получают проводной номер.

Я пытаюсь получить общую ширину <li>, включая ее границу и отступ + поле справа.

Затем умножьте это на длину <li>, чтобы получить точную ширину, необходимую для их удержания

Я разыскал проблему с вычислением ширины.

Может кто-нибудь сказать мне, что не так.

Спасибо

HTML

 <div id="videoTotorialTumbs">
    <a href="#" id="thumbLeftArrow" class="inActive"></a>
   <a href="#" id="thumbRightArrow"></a>
      <div id="horizontalBelt">
        <ul style="width: 1056px;">
            <li><a rel="video1" href="#"><img src="http://dummyimage.com/110x90.jpg">     <span>Upload images</span></a></li>
            <li><a rel="video2" href="#"><img src="http://dummyimage.com/110x90.jpg"><span>Choose Theme</span></a></li>

        </ul>
    </div>
</div>

JS

var videoContext = $("#horizontalBelt"),
 videoBeltUL = videoContext.find("ul"),
 videoBeltLI = videoContext.find("li"),
 videoLength = videoBeltLI.length,
 videoWidth  = parseInt(videoBeltLI.eq(0).outerWidth())+parseInt(videoBeltLI.eq(0).css("marginRight")),
 beltTotalWidth = videoLength*videoWidth,
       // js goes on....

beltTotalWidth имеет другое значение в webKit.

Ответы [ 2 ]

16 голосов
/ 12 февраля 2010

Звоните ли вы с

$(document).ready(...)?

если это так, попробуйте использовать

$(window).load(...)

2 голосов
/ 12 февраля 2010

Если вы не хотите ждать события window load, вы можете запустить его для события load каждого изображения. Как сказал Габи в комментарии, если вы знаете размеры изображения, добавление к изображениям width свойств позволит вам запустить его раньше.

...