2016-03-14 7 views
0

У меня есть горизонтальный ряд, который содержит изображения & Я пытаюсь достигнуть того же самого масштабного эффекта, который использует Netflix, когда изображение в настоящее время зависло над, как показано в этом видео:Как я могу увеличить div, завиваясь над ним?

https://s3.amazonaws.com/whatever12345/net.mov

я наблюдал, что при зависание, когда изображение масштабируется, оно как бы толкает своих братьев и сестер на расстояние по оси x, но затем все они возвращаются в исходную позицию, когда наведение завершено. Я также заметил, что масштабированное изображение просто перекрывает его контейнер, а также элементы сверху и снизу, вместо того, чтобы нарушать поля и отступы. Как я могу воссоздать это действие?

Вот CSS & JQuery я пытался использовать, но это не то, что я пытаюсь достичь:

.cover-item { 
    position: relative; 
    display: inline-block; 
    width: 136px; 
    height: 178px; 
    vertical-align: bottom; 
    background-position: center; 
    background-repeat: no-repeat; 
    background-size: 100% 100%; 
    cursor: pointer; 

    -webkit-transition: 400ms; 
    transition: 400ms; 
} 

.cover-item-open { 
    transform: scale(1.1); 
    z-index: 2; 
} 

$('.image-container a').hover(function() { 
    $(this).find('.cover-item').toggleClass('cover-item-open'); 
}); 

Я создал этот JSFiddle, чтобы показать мой полный код

+0

Примените тот же масштаб к анимации зависания к родительскому контейнеру и при необходимости измените размер шкалы родителя. Вы можете установить родительскую анимацию прямо внутри обработчика для дочернего элемента. – Korgrue

+0

это не дает мне желаемого эффекта, который я хочу. Я объяснил в вопросе после того, как видео ссылка желаемого эффекта. Можете ли вы мне помочь в этом? @Korgrue –

+0

В демо-ролике. у них есть родительский div, расположенный выше, чем максимальная высота детей. Родительский div также настроен на переполнение: видимый, поэтому он не обрезает стороны детей при их расширении. Дайте это выстрел. – Korgrue

ответ

3

вам должны быть в состоянии сделать это, используя: hover

.my_div:hover { 
    transform: scale(...); 
} 

EDIT: при дальнейшем рассмотрении это должно работать лучше

$(document).ready(function() { 
    $(document).on("mouseenter", ".scalable", function() { 
     $(this).animate({ width: "100px" }); 
    }); 
    $(document).on("mouseout", ".scalable", function() { 
     $(this).animate({ width: "50px" }); 
    }); 
}); 

и HTML:

<img class="scalable" src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/22/Earth_Western_Hemisphere_transparent_background.png/600px-Earth_Western_Hemisphere_transparent_background.png" alt="earth"> 
<img class="scalable" src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/22/Earth_Western_Hemisphere_transparent_background.png/600px-Earth_Western_Hemisphere_transparent_background.png" alt="earth"> 

То же основная идея должна работать для дивы, только изображения легче увидеть.

+0

это не дает мне желаемого эффекта, который я хочу. Я объяснил в вопросе после того, как видео ссылка желаемого эффекта. Можете ли вы мне помочь в этом? –

+0

Я обновил свой ответ, я думаю, он лучше подходит к тому, что вы изначально задавали. Вы должны иметь возможность расширять css в анимации, чтобы делать более интересные вещи –