2017-01-20 8 views
0

Я пытаюсь получить mix-blend-mode, работая так, чтобы происходил фоновый слайд. Я собрал a jsfiddle of it sort of working.Проблема смешивания кнопки смешивания на уровне смешивания

Проблема в том, что нужно посмотреть more like this.

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

<a href="#" class="btn">View Project</a> 

CSS является:

a { 
    position: relative; 
    text-decoration: none; 
    display: inline-block; 
    padding: 15px 30px; 
    border: 1px solid #f16251; 
    background: black; 
    color: #f16251; 
    font-size: 30px; 
    font-family: arial; 
    mix-blend-mode: normal; 
    overflow:hidden; 
    z-index: 1; 
} 
a:before { 
    content: ''; 
    position: absolute; 
    top: 0; bottom: 0; right: 0; 
    width: 100%; height: 100%; 
    background: red; 
    mix-blend-mode: multiply; 
    transform-origin:0 0 ; 
    transform:translateX(100%) skewX(30deg); 
    transition: transform .25s; 
    z-index: 3; 
} 
a:hover:before { 
    transform: translateX(45%) skewX(30deg); 
} 
a:hover:after { 
    position: absolute; 
    top: 0; bottom: 0; left: 0; right: 0; 
    width: 100%; 
    height: 100%; 
    background: white; 

} 
a:after { 
    content: ''; 
    position: absolute; 
    top: 0; bottom: 0; right: 0; 
    width: 100%; height: 100%; 
    background: white; 
    mix-blend-mode: difference; 
    z-index: 2; 
} 

Как получить фоновый текст для отображения только белого цвета, когда красный цвет скользит по этому тексту? Мой код mix-blend-mode должен быть неправильным, но похоже, что это можно сделать здесь.

ответ

1

Ну, это было весело :)

a { 
 
    position: relative; 
 
    text-decoration: none; 
 
    display: inline-block; 
 
    padding: 15px 30px; 
 
    border: 1px solid #f16251; 
 
    background: white; 
 
    color: black; 
 
    font-size: 30px; 
 
    font-family: arial; 
 
    mix-blend-mode: normal; 
 
    overflow:hidden; 
 
    z-index: 1; 
 
} 
 

 
a:before { 
 
    content: ''; 
 
    position: absolute; 
 
    top: 0; bottom: 0; right: 0; 
 
    width: 100%; height: 100%; 
 
    background: white; 
 
    mix-blend-mode: difference; 
 
    transform-origin:0 0 ; 
 
    transform:translateX(100%) skewX(30deg); 
 
    transition: transform .25s; 
 
    z-index: 3; 
 
} 
 
a:hover:before { 
 
    transform: translateX(45%) skewX(30deg); 
 
} 
 

 
a:after{ 
 
    content: ''; 
 
    display:block; 
 
    top: 0; 
 
    left:0; 
 
    bottom:0; 
 
    right:0; 
 
    position: absolute; 
 
    z-index: 100; 
 
    background: #f16251; 
 
    mix-blend-mode: screen; 
 
}
<a href="#" class="btn">View Project</a>

+0

Как получить цвет границы и внутри цвет текста, чтобы быть красным, хотя? Мне нужно, чтобы на самом деле был этот цвет: '# F16251' возможно? –

+0

Это тот цвет. –

+0

О, ты совершенно прав, это тот цвет! Вы, ROCK Bro, очень благодарны! Борьба пыталась заставить это работать! Я очень благодарен за вашу помощь! –

Смежные вопросы