2017-10-03 2 views
0

Ich versuche, den CSS-Filter (hue-rotieren, um genau zu sein) auf einem PNG mit einem Schieberegler-Eingang. Ich bekomme immer "-Webkit-Filter: hue-rotate (undefined deg)"Verwenden Slider zum Ändern von Bild CSS-Filter mit Javascript

Vielen Dank für Ihre Hilfe!

Hier ist mein Code:

function hueFunction(hueVal) { 
 
    var setAs = hueVal + "deg" 
 
    document.getElementById("lgImage").setAttribute("style", "-webkit-filter:hue-rotate(" + setAs + ")") 
 
}
<input type="range" data-default="0" value="0" min="0" max="360" step="1" id="hue-rotate" oninput="hueFunction(this.hueVal)"> 
 

 
<br/> 
 

 
<img src="https://campstoregear.com/wp-content/uploads/2017/09/summer-camp-2018-apparel-design-CD1816-Primary.png" id="lgImage">

Antwort

2

ändern oninput="hueFunction(this.hueVal)" zu oninput="hueFunction(this.value)"

function hueFunction(hueVal) { 
 
    var setAs = hueVal + "deg" 
 
    document.getElementById("lgImage").setAttribute("style", "-webkit-filter:hue-rotate(" + setAs + ")") 
 
}
<input type="range" data-default="0" value="0" min="0" max="360" step="1" id="hue-rotate" oninput="hueFunction(this.value)"> 
 

 
<br/> 
 

 
<img src="https://campstoregear.com/wp-content/uploads/2017/09/summer-camp-2018-apparel-design-CD1816-Primary.png" id="lgImage">

+0

Sie sind erstaunlich! Das hat den Trick gemacht. Vielen Dank. – user3491000

+0

Wissen Sie, warum dies nicht mit Klassen statt IDs funktioniert? Wenn ich "getElementByID" für "getElementsByClassName" vertausche, funktioniert es nicht. – user3491000

+0

'getElementById' gibt ein einzelnes Element zurück,' getElementsByClassName' - ein Array von Elementen. Sie müssen angeben, welche Sie verwenden möchten, wie 'getElementsByClassName ('youClassName') [0]' http://jsbin.com/piworezoco/edit?html,js,output –