2016-09-19 4 views
-3

Я хотел бы применить фильтр к изображению (когда я нажимаю кнопку) , и если я нажму другую кнопку, то будет применен другой фильтр.Как применить модификацию CSS с помощью кнопки

Как я могу это сделать?

Благодарим за помощь.

Я пробовал использовать: активную функцию в CSS, но это касается только кнопки. Я пробовал использовать javascript, но это не сработало.

function FilterGrey() { 
    var FilterGrey = Document.getElementsById("FilterGrey"); 
    document.body.video.filter = "grayscale(100%)" 
} 
+2

где находится ваш HTML-код ?! –

+1

Вы пробовали отлаживать свой код? 'document.body.video.filter =" оттенки серого (100%) "' Что такое document.body.video? Даже если бы это существовало, вы бы искали 'Node.style.filter' вместо' Node.filter'. Кроме того, похоже, что вы хотите иметь несколько фильтров toggleable, вам понадобится немного больше логики, чем это. Не могли бы вы [изменить] ваш вопрос включить [mcve]? Вопросы отладки требуют, чтобы MCVE были в теме. –

ответ

1

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

http://codepen.io/anon/pen/mAAPrz

function filter1() { 
 
    document.getElementById('image').classList.toggle('filter1'); 
 
} 
 
function filter2() { 
 
    document.getElementById('image').classList.toggle('filter2'); 
 
}
filter1 { 
 
    filter: blur(10px); 
 
} 
 
.filter2 { 
 
    filter: grayscale(50%); 
 
}
<img src="http://mikeruiz.org/files/bliss-caf-newest.jpg" id="image"> 
 
<button onclick="filter1();">Filter 1</button> 
 
<button onclick="filter2();">Filter 2</button>

+0

Спасибо, что это сработало: D Но знаете, как я могу применить более одного фильтра? – Moloco

+1

Вы можете применить несколько фильтров последовательно с тем же свойством 'filter'. Просто перетащите один на другой. Это будет выглядеть так: 'filter: blur (10px) оттенки серого (50%);' –

1

вы можете попробовать этот

var FilterGrey = document.getElementById("FilterGrey"); 
 
var FilterOpacity = document.getElementById("FilterOpacity"); 
 
var FilterVideo = document.getElementById("FilteredImg"); 
 
FilterGrey.addEventListener('click', function(){ 
 
\t \t FilterVideo.style.filter = "grayscale(100%)"; 
 
}); 
 
FilterOpacity.addEventListener('click', function(){ 
 
\t \t FilterVideo.style.filter = "opacity(40%)"; 
 
})
#FilteredImg { 
 
    display:block; 
 
    margin-bottom:20px 
 
}
<img id="FilteredImg" src="http://placehold.it/350x150/e8117f/fff"> 
 
<button id="FilterGrey"> 
 
Filter Grey 
 
</button> 
 
<button id="FilterOpacity"> 
 
Filter Opacity 
 
</button>