Я пытаюсь использовать JQuery для создания динамического заголовка страницы, используя изображение, которое существует в статье. Я планирую дать изображению класс (.thumbnail). Я хочу удалить изображение из статьи, как только оно будет использовано для заголовка. Вот логика:
- Найти тег IMG с помощью класса .thumbnail
- Переместите это изображение в новый DIV (#dynHeader), классифицируйте его .Image1
- Масштабировать изображение до x пикселей в высоту, сохранять формат по ширине
- Найти ширину вновь масштабированного изображения (var stayWidth)
- Рассчитать оставшуюся ширину # dynHeader
- Дублируйте IMG справа от .Image1, назовите его .Image2
- Установить его ширину равной значению stayWidth
- Обрезать его до высоты .Image1
- Поместите его на ось Y с конкретным значением
Мне нужно знать, как найти и продублировать IMG .thumbnail. Я уверен, что больше проблем возникнет, когда я продолжу работать над этим, но я полностью застрял. Я думаю об этом неправильно? Есть ли способ разместить одно и то же изображение на странице дважды?
Спасибо за любую помощь.
1027 * для -Alex- *
Редактировать: Я публикую решение, так как использую его на своем сайте для всех, кто может столкнуться с этой проблемой. Взял код из ответа и настроил его для правильной работы.
//need to clone before removing class so that the original is deletable later.
var cache = $('img.thumbnail').clone().removeClass('thumbnail').addClass('Image1').css('float','left');
//remove the original from the text
$('img.thumbnail').remove();
//attach the cloned image to the header
$('#dynHeader').append(cache);
//find the ratio
var ratio = (cache.width() / cache.height());
//set variable to hold image height
var imageHeight = (365);
//set variable to hold image width
var imageWidth = (imageHeight*ratio);
//set the image height & width
cache.height(imageHeight).width(imageWidth);
//figure the amount of width remaining in the header
var remainWidth = $('#dynHeader').width() - imageWidth;
//clone the header image
var dupe = cache.clone();
//work with the cloned image - change the class to Image2, set the width and height dupe.removeClass('Image1').addClass('Image2').css("width",remainWidth+"px").css("height","auto");
//place Image2 to the right of Image1
cache.after(dupe);
Затем я использовал CSS для позиционирования Image2 и скрытия переполнения (эффект масштабирования и кадрирования, для которого я снимал).
#dynHeader{
height: 365px;
overflow: hidden;
margin-bottom: 30px;
}
img.Image2{
position: relative;
top: -150px;
}
Надеюсь, это поможет кому-то еще! Спасибо Алекс за правильное указание.