Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Эффект как в Яндекс картинках

Сообщения:  [1-10] 

 
 автор: confirm   (23.01.2014 в 19:34)   письмо автору
 
   для: sasha12342   (23.01.2014 в 19:23)
 

Это только пример, чтобы понятен был механизм. Opacity - это прозрачность блока, чтобы если накладывать на изображение, то он бы слегка просвечивался (можно и не делать этого)

Через псевдоэлемент after конечно не удобно будет хотя бы потому, что текст различен. Но вам никто и не советует делать так в этом случае, с таким же успехом при hover можно делать видимым любой иной дочерний элемент элемента родительского, то есть содержащего и изображение, и блок текста. Можно и транзакцию добавить, и тогда будет и с анимацией в новых браузерах, и все это всего лишь CSS без всяких скриптов. Но для этого нужно при выводе страницы сразу выводить и их блоки описания, которые по умолчанию имеют стиль display:none, а при hover родительских элементов изменяются на block.
Иначе нужен активный сценарий обрабатывающий наведение и уход мыши, добавление блока родительскому элементу с запросом текста у сервера.

  Ответить  
 
 автор: sasha12342   (23.01.2014 в 19:23)   письмо автору
 
   для: confirm   (23.01.2014 в 17:10)
 

Но если убрать "opacity: .7; " то мы получим просто черный квадрат который закрывает изображение. Потом, каждая фотография имеет три параметра описания, как их позиционировать через "content:"? а если фотографий 10, то для каждой нужно прописывать свой "li #foto1:hover:after"?

  Ответить  
 
 автор: confirm   (23.01.2014 в 17:10)   письмо автору
 
   для: sasha12342   (23.01.2014 в 16:29)
 

флоат:лефт, оверфлоу:ауто - не дай бог, если такое действительно в CSS возможно будет )
Переключить раскладку трудно?

Не важно сколько у вас там в ряду, и какое у вас обтекание, важно понимать что к чему будет привязано, Допустим, что вывод происходит а элементы LI. Этим элементам нужно задать position: relative;, а дочерним элементам с выводимым текстом position: absolute;. С помощью after это все можно стилями описать:

<style>
ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

li {
    position: relative;
    display: inline-block;
}

li img {
    display: block;
    width: 180px;
    height: 120px;
}

li:hover:after {
    content: "This image";
    position: absolute;
    bottom: 5px;
    left: 5px;
    padding: 8px;
    background: #000;
    color: #fff;
    opacity: .7;
}
</style>

<ul>
    <li><img src="as.jpg" /></li>
    <li><img src="as.jpg" /></li>
    <li><img src="as.jpg" /></li>
</ul>

  Ответить  
 
 автор: sasha12342   (23.01.2014 в 16:29)   письмо автору
 
   для: confirm   (23.01.2014 в 15:30)
 

Изображения разложены по 7 штук в ряду, соответственно я им задал "флоат:лефт" а родительскому блоку, чтобы он растягивался, задал "оверфлоу:ауто" и когда я вывожу на экран блок с абсолютным позиционированием, то он "перетасовывает" все остальные блоки и добавляет полосу прокрутки материнскому блоку.
Как вызвать абсолютный блок при наведении на одну из фотографий так чтобы он никак не повлиял на остальные блоки?

  Ответить  
 
 автор: psychomc   (23.01.2014 в 15:53)   письмо автору
 
   для: elenaki   (23.01.2014 в 15:43)
 

напишите в блог леблядеву, авось переделает

  Ответить  
 
 автор: elenaki   (23.01.2014 в 15:43)   письмо автору
 
   для: sasha12342   (23.01.2014 в 13:03)
 

А меня бесит этот эффект на яндексе. Вот если бы картинка увеличивалась. А так - только
закрывает собой рядом стоящие. Если уж я пришла на поиск картинок, то мне интереснее
получше рассмотреть саму картинку, а не ее данные, чтобы понять нужна она мне или нет.

  Ответить  
 
 автор: confirm   (23.01.2014 в 15:30)   письмо автору
 
   для: sasha12342   (23.01.2014 в 15:10)
 

У блоков в котором изображение должны иметь позиционирование relative, а вот у информационного блока absolute, причем это не обязательно создавамый блок должен быть, а задаваться посредством hover:after, правда старенькие браузеры могут такой блок и не обработать.
Если у каждого изображения свой текст, и это большие объемы, значит асинхронным запросом получать текст с сервера и выводить его в этот создаваемый блок.
Либо высчитывайте по наведению позиционирование изображения и добавляйте такой блок телу документа, если вам не нравится первое.

  Ответить  
 
 автор: sasha12342   (23.01.2014 в 15:10)   письмо автору
 
   для: Enter   (23.01.2014 в 14:29)
 

Задавать блокам абсолютное позиционирование и менять "з-индекс" при наведении, не подойдет, так как неизвестно сколько блоков будет на странице. Я вывожу их циклом из БД, поэтому их может быть сколь угодно.

  Ответить  
 
 автор: Enter   (23.01.2014 в 14:29)   письмо автору
 
   для: sasha12342   (23.01.2014 в 13:03)
 

смотрите в сторону позиционирования

  Ответить  
 
 автор: sasha12342   (23.01.2014 в 13:03)   письмо автору
 
 

Всем привет!
Подскажите пожалуйста, кто знает, как сделать такой эффект как в Яндекс картинках. То-есть: При наведении на картинку появляется блок тёмного цвета с ее описанием, при этом не затрагивая соседние блоки.

  Ответить  

Сообщения:  [1-10] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования