Выдвиньте описание после нажатия на изображение в галерее

0

Я пытаюсь сделать анимацию при открытии изображения, вроде как здесь: http://arzbhatia.com/ в разделе портфолио.

Это то, что я уже сделал, но он работает неправильно.

Вот jFiddle из того, что я сделал: jFiddle

Div отображается в том же месте, независимо от того, какое изображение я нажимаю. Если я удалю позицию: absoulte из #test_div, похоже, добавляет div после изображения, перемещая остальную часть их на дно.

Теги:
animation

3 ответа

1
Лучший ответ

Я изменил вашу скрипку и создал строки. Попробуйте вот так: http://fiddle.jshell.net/MYXcf/4/

  • 0
    Хорошо, это прекрасно работает, но когда я открываю верхнее описание изображения, а затем пытаюсь открыть нижнее, ничего не происходит.
0

Div находится в одном и том же месте, потому что изображения выплывают из их родителя (LI). Это видно в Chrome Dev Tools, если вы наводите курсор на элементы списка.

Исправление состоит в том, что вы ничего не плаваете и чтобы LI display:inline-block чтобы они занимали пространство в dom. Вам также нужно добавить Javascript, чтобы увеличить высоту LI, чтобы разместить #test_div когда он добавится, потому что его позиционирование является абсолютным.

Полный код здесь: http://fiddle.jshell.net/MYXcf/3/

Обновлен код здесь: http://fiddle.jshell.net/MYXcf/5/

  • 0
    читать дальше на сайт и пересмотренный ответ и код
  • 0
    Это работает довольно хорошо, но есть проблема со скольжением изображений. Я хочу, чтобы описание выдвигалось ниже первой строки изображений, а вторая строка - под этим описанием. Приветствия.
0

Вы должны добавить еще одно имя с именем div во все, что вы. Как это:

<div id="gallery">
    <ul>
        <li class="image_item">
            <img class="gal_images" src="http://goo.gl/rpys4M">
            <div class="description"></div>
        </li>
        <li class="image_item">
            <img class="gal_images" src="http://goo.gl/rpys4M">
            <div class="description"></div>
        </li>
        <li class="image_item">
            <img class="gal_images" src="http://goo.gl/rpys4M">
            <div class="description"></div>
        </li>
        <li class="image_item">
            <img class="gal_images" src="http://goo.gl/rpys4M">
            <div class="description"></div>
        </li>
    </ul>
</div>

И некоторые css, чтобы создать это:

ul {
    list-style-type: none;
}
#gallery {
    height: 500px;
    margin: 0 auto;
    width: 500px;
    margin-top: 100px;
}
.click_images {
    vertical-align: top;
    display: block;
    position: relative;
}
.gal_images {
    height: 220px;
    width: 220px;
    float: left;
    font-size: 40px;
    color: #fff;
    margin: 5px;
}
.image_item {
    width: 220px;
    float: left;
}
#test_div {
    position: absolute;
    top: auto;
    height: 200px;
    width:100%;
    background: #000;
    overflow: hidden;
}
.description {
    display: none;
}

И jQuery, переключится, если описание уже открыто или нет, если оно открыто, оно будет скрыто, иначе оно откроется.

var opened = false;
$('.image_item').click(function () {
    if (!opened) {
        opened = true;
        $(this).find('.description').slideDown('500').append('hahaha');
    } else {
        opened = false;
        $(this).find('.description').slideUp('500');
    }

});

Здесь вы найдете скрипку: http://jsfiddle.net/fm9L4/

  • 0
    Кажется, ваш jfiddle не работает .. И, похоже, он работает неправильно ...
  • 0
    Извините, приятель, неправильная ссылка действительно: jsfiddle.net/fm9L4
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню