2014-12-29 2 views
2

Я хочу, чтобы создать перспективную культуру, как эффект с CSS3, как это:
enter image description herePerspective Crop с CSS3

я попробовать это делает мой сам, но не мог, любая помощь будет оценена.

вот моя попытка: http://jsfiddle.net/krish7878/y9eusob9/

HTML код:

<div class="container"> 
     <img src="http://img.netcarshow.com/Lotus-Evora_GX_Racecar_2013_1600x1200_wallpaper_01.jpg" alt="main image" /> 
    </div><!-- /.container --> 

CSS код:

.container{ 
    overflow: hidden; 
    width: 300px; 
    height: 200px; 
    margin-top: 30px; 
    margin-left: 30px; 
    border-top-right-radius: 20px; 
} 
+0

Post код! Покажите, что вы уже пробовали! – Brian

+0

http://jsfiddle.net/krish7878/y9eusob9/ – chandan

ответ

2

Одним из вариантов может быть добавление контейнера <div>, например. .perspective, который получает желтый цвет фона и использует многоугольник clip-path на картинке.

Хорошим инструментом для создания этих полигонов является Bennett Feely's clippy. Browser support for clip-path еще не совсем там. См. Clipping and Masking in CSS для получения дополнительной информации и опций.

.perspective { 
 
    display: inline-block; 
 
    background-color: #ff0; 
 
} 
 
    
 
.perspective__image { 
 
    display: block; 
 
    -webkit-clip-path: polygon(10% 20%, 90% 10%, 90% 90%, 10% 80%); 
 
    clip-path: polygon(10% 20%, 90% 10%, 90% 90%, 10% 80%); 
 
}
<div class="perspective"> 
 
    <img src="http://www.nicenicejpg.com/400/300" class="perspective__image"/> 
 
</div>

+0

спасибо за тонну за ответ, совместим ли это с кроссбрайзером? IE9 +, хром, сафари, firefox? – chandan

+0

Нет, к сожалению, нет, если вы хотите, чтобы это был кросс-браузер, вы можете создать изображение SVG, которое включает в себя ваше изображение. – ckuijjer

+0

Благодарю вас за ответ, к сожалению, мне нужен слайдер, ваш метод, похоже, работает. – chandan

0

Я нашел отличный учебник по CSS-уловок, что переговоры о делает именно это:

http://css-tricks.com/almanac/properties/p/perspective/

Вы будете использовать свойство transform, чтобы произвести повороты, необходимые для имитации изменения перспективы.

Надеюсь, это поможет!

+1

спасибо большое, я искал что-то вроде этого. – chandan

+0

Это комментарий, а не ответ. – Brian

+2

@BrianBennett. – razorsyntax

2

Вы могли бы быть в состоянии выполнить этот эффект, используя технику послойного как то, что находится здесь:

http://cssglobe.com/angled-content-mask-with-css/

В принципе, автор использовал несколько вложенных элементов, были повернуты назад и вперед с помощью overflow: hidden на элементы контейнера.

+0

благодарю вас за ответ – chandan

1

Для maximum browser support вы можете использовать svg's clipPath.

<svg width="400" height="400"> 
 
    <defs> 
 
    <clipPath id="shape"> 
 
     <path d="M50,50 L400,0 L400,400 L50,350" /> 
 
    </clipPath> 
 
    </defs> 
 
    <foreignObject clip-path="url(#shape)" width="400" height="400"> 
 
    <img src="http://www.lorempixel.com/400/400" /> 
 
    </foreignObject> 
 
</svg>