1. 程式人生 > >CSS3 filter濾鏡屬性小專案——圖片高斯模糊、高亮、對比度、灰度、色調、色彩旋轉、透明、飽和、褐色調整

CSS3 filter濾鏡屬性小專案——圖片高斯模糊、高亮、對比度、灰度、色調、色彩旋轉、透明、飽和、褐色調整

學到了CSS3的filter屬性,心血來潮做了個filter濾鏡組工具,可以多重給自己的圖片新增濾鏡。

拿走不謝,別忘了更改對應的路徑名。

程式碼如下

html部分

<!DOCTYPE html>
<html>

	<head>
		<meta charset="utf-8" />
		<title>Junking圖片濾鏡工具</title>
		<link rel="stylesheet" type="text/css" href="css/imgChange.css" />
	</head>

	<body>
		<div>
			<figure>
				<img src="img/Junking.jpg" alt="原始圖片" width="500px" height="500px" />
				<figcaption>原始圖片</figcaption>
			</figure>
			<figure id="f">
				<img src="img/Junking.jpg" alt="修改圖片" width="500px" height="500px" />
				<figcaption>修改圖片</figcaption>
			</figure>
		</div>
		<div id="changeArea">
			<div>
				<span>高斯模糊</span><input type="range" id="blur" step="1" max="30" min="0" value="0" onmousemove="Change(this)" />
			</div>
			<div>
				<span>高亮濾鏡</span><input type="range" id="brightness" step="0.01" max="2" min="0" value="1" onmousemove="Change(this)" />
			</div>
			<div>
				<span>對比濾鏡</span><input type="range" id="contrast" step="0.01" max="2" min="0" value="1" onmousemove="Change(this)" />
			</div>
			<div>
				<span>灰度濾鏡</span><input type="range" id="grayscale" step="0.01" max="1" min="0" value="0" onmousemove="Change(this)" />
			</div>
			<div>
				<span>色調旋轉</span><input type="range" id="hue-rotate" step="1" max="360" min="0" value="0" onmousemove="Change(this)" />
			</div>
			<div>
				<span>色彩翻轉</span><input type="range" id="invert" step="0.01" max="1" min="0" value="0" onmousemove="Change(this)" />
			</div>
			<div>
				<span>透明濾鏡</span><input type="range" id="opacity" step="0.01" max="1" min="0" value="1" onmousemove="Change(this)" />
			</div>
			<div>
				<span>飽和濾鏡</span><input type="range" id="saturate" step="0.01" max="1" min="0" value="1" onmousemove="Change(this)" />
			</div>
			<div>
				<span>褐色濾鏡</span><input type="range" id="sepia" step="0.01" max="1" min="0" value="0" onmousemove="Change(this)" />
			</div>
		</div>

	</body>
	<script src="js/imgChange.js" type="text/javascript" charset="utf-8"></script>

</html>

CSS部分

body figure {
	display: inline-block;
}

figure>figcaption {
	text-align: center;
}

#changeArea {
	align-content: center;
}

JavaScript部分


		var objStyle = document.getElementById("f").style; //獲取圖片figure元素的style
		var blur = 0;
		var brightness = 1;
		var contrast = 1;
		var grayscale=0;
		var hueRotate=0;
		var invert=0;
		var opacity=1;
		var saturate=1;
		var sepia=0;		
		function Change(v) {
			if(v.id=="blur"){
				blur=v.value;
				on();
			}else if(v.id=="brightness"){
				brightness=v.value;
				on();
			}else if(v.id=="contrast"){
				contrast=v.value;
				on();
			}else if(v.id=="grayscale"){
				grayscale=v.value;
				on();
			}else if(v.id=="hue-rotate"){
				hueRotate=v.value;
				on();
			}else if(v.id=="invert"){
				invert=v.value;
				on();
			}else if(v.id=="opacity"){
				opacity=v.value;
				on();
			}else if(v.id=="saturate"){
				saturate=v.value;
				on();
			}else if(v.id=="sepia"){
				sepia=v.value;
				on();
			}
		}

		function on() {
		var str = "blur(" + blur + "px) brightness(" + brightness + ") contrast("+contrast+") grayscale("+grayscale+") hue-rotate("+hueRotate+"deg) invert("+invert+") opacity("+opacity+") saturate("+saturate+") sepia("+sepia+")";
			objStyle.filter =str;
			objStyle.webkitFilter = str;
		}

效果圖如下: