Как взломать стандарт высоты изображения с помощью jQuery? - PullRequest
0 голосов
/ 26 октября 2010

Мне нужна функция jQuery, чтобы измерить высоту изображения и добавить поле к элементу IMG, чтобы оно всегда получалось с обычным числом, которое делится на 17 (что является моей высотой строки).

Любая помощь будет оценена.Спасибо.

ОБНОВЛЕНИЕ : я изменил название вопроса и заменил PHP на jQuery.Подумав об этом, мне нужно запустить функцию после того, как DOM будет готов, на всех изображениях в конкретном DIV.В этом случае jQuery более разумный, чем PHP.

Ответы [ 5 ]

2 голосов
/ 26 октября 2010

Если я правильно понимаю ваш вопрос, вы хотите знать, как получить высоту каждого изображения и, если необходимо, добавить поле, чтобы получить высоту, равную числу, делимому на 17.

Проблема:

$(document).ready(function(){
       $('img').each(function() {
             var height = $(this).height;
             var modulus = height % 17;
             if(modulus != 0) {
                 var marginToAdd = 17 - modulus;
                 $(this).css("margin-bottom", marginToAdd); 
             }
       });
});

Так что выше, это получить каждое изображение на странице по его тегу.Если вам не нужно каждое изображение на странице, вы можете поместить все изображения в контейнер, чтобы у вас был более различительный селектор.Затем он получает остаток от деления высоты на 17. Если остаток равен 0, он ничего не делает, если он ненулевой, он вычисляет запас, который необходимо добавить, чтобы сделать его равномерно делимым на 17, и добавляет его книжняя часть изображения.

1 голос
/ 26 октября 2010

У jQuery есть некоторые проблемы с готовностью документа и загрузкой изображения по этой проблеме.

Если вы хотите проверить размеры изображения, вам нужно знать, было ли загружено изображение или нет, потому что вы можете подготовить DOM без загруженных изображений, или изображение не будет вызывать событие загрузки

так:

var image = $('#image');
if(image.get(0).complete){
    do_what_you_need();
} else {
    image.load(function(e){
        do_what_you_need();             
    });
}
1 голос
/ 26 октября 2010
$(this).children("img").attr("height")

Здесь очень похожий вопрос: Использование jQuery для получения высоты изображения

0 голосов
/ 26 октября 2010

Вы можете получить высоту изображения с помощью jquery, просто набрав

 $('#my_img_id').height();

Чтобы DOM был готов, просто отметьте http://api.jquery.com/ready/

Редактировать: Это то, что вы искали?

<script>
$(function(){
    $('#myDiv img').each(function(){
        alert($(this).height()); 
    });
});

</script>
<div id="myDiv">
    <img src="asd.png">
    <img src="gg.png">
</div>
0 голосов
/ 26 октября 2010

Вы можете использовать библиотеку GD: http://php.net/manual/en/function.getimagesize.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...