Есть горизонтальный список, состоящий из картинок и заголовков под ними. Хочу сделать, чтобы заголовок зависел от ширины картинки.
Получил ширину всех картинок. Сейчас всем заголовкам приходит одна и та же ширина.
JS:
$(".project-img img").one('load', function() {
var width = $(this).width();
$('.projects h1').css('width', width);
console.log(width);
})
.each(function() {
if (this.complete)
$(this).trigger('load');
});
HTML:
<div class="projects">
<div>
<a href="#someproject1" title="someproject1">
<span class="project-img">
<img src="./img/project1.jpg" alt="someproject1" title="someproject1" />
</span>
<h1>Название проекта1</h1>
</a>
</div>
<div>
<a href="#someproject2" title="someproject2">
<span class="project-img">
<img src="./img/project2.jpg" alt="someproject2" title="someproject2" />
</span>
<h1>Название проекта2</h1>
</a>
</div>
<div>
<a href="#someproject3" title="someproject3">
<span class="project-img">
<img src="./img/project3.jpg" alt="someproject3" title="someproject3" />
</span>
<h1>Название проекта3</h1>
</a>
</div>
</div>
div
'ам внутри .projects
класс project
, а h1
- класс project-header
. При желании можно обойтись без этого, но с классами решение более гибкое.width
.if (this.complete) $(this).trigger('load');
на практике - не знаю, но из кода убирать не стал.$(function() {
$(".project-img img").one('load', function() {
var width = $(this).width();
var header = $(this).closest('.project').find('.project-header');
header.css('width', width);
})
.each(function() {
if (this.complete)
$(this).trigger('load');
});
});
<div class="projects">
<div class="project">
<a href="#someproject1" title="someproject1">
<span class="project-img">
<img src="http://waytoeast.ru/units/unit1.png" alt="someproject1" title="someproject1" />
</span>
<h1 class="project-header">Название проекта1</h1>
</a>
</div>
<div class="project">
<a href="#someproject2" title="someproject2">
<span class="project-img">
<img src="http://waytoeast.ru/images/page_bg.jpg" alt="someproject2" title="someproject2" />
</span>
<h1 class="project-header">Название проекта2</h1>
</a>
</div>
<div class="project">
<a href="#someproject3" title="someproject3">
<span class="project-img">
<img src="http://waytoeast.ru/images/border.png" alt="someproject3" title="someproject3" />
</span>
<h1 class="project-header">Название проекта3</h1>
</a>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Получение заголовка без добавления классов:
var header = $(this).closest('a').find('h1');
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Вот смотрите, http://jsfiddlenet/mgpv8qvt/1/ почему подчеркивание идет над строкой а не под?
Я не знаю как правильно скачать себе эту страничку тутмирф что бы правильно подгрузились все элементы и этот лендингбыл рабочим
Как сделать панель с кнопками так, чтобы при уменьшении панели (окна) не помещающиеся кнопки прятались в кнопку в этой же панели, при клике...