<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>自制渐变色</title>
<style type="text/css">
#div {
width:100%;
height:500px;
border:1px solid red;
}
#c41{
display: inline-block;
color: red;
width: 10px;
height: 10px;
}
</style>
</head>
<body>
<input type="color" id="c1" value="#051d33">
<input type="color" id="c2" value="#331e0a">
<input type="color" id="c3" value="#88135b">
<!-- range是滚动条数值。是input的一种 -->
<input type="range" id="c4" min="0" max="360" /><div id="c41"></div><div id="warring" style="color: red;">选择三个颜色即可生成渐变色,拖动右边的数值条即可旋转图像,旋转单位为度</div>
<div id="div"></div>
<div id="result" style="width: 500px;height: 50px; color: red;"></div>
<script type="text/javascript">
// 定义三种颜色的初始值
var value1 = '#051d33' ;
var value2 = '#331e0a' ;
var value3 = '#88135b' ;
var result = document.getElementById("result");
//获取
var range = document.getElementById("c4");
// 方法一
// onchange方法就是说,input这种输入呀,或者滚动条,日历,颜色选择等等这类,选择或者输入后都会改变(change),所以这个onchange方法就是改变后就会触发
//滚动条的数值改变时触发的函数--也就是要改变颜色啦
range.onchange = function() {
//给滚动条旁边显示一下滚动条的数值,不然都不知道多少度
c41.innerText = range.value ;
//执行设置颜色函数。
setColor1(value1, value2 , value3);
//给底下那个div里写入这个颜色的具体value值。方便使用
result.innerText = "当前颜色为:" + "linear-gradient(" + range.value + "deg," + value1 + "," + value2 + "," + value3 + ")";
}
//方法二
//这个方法就是第一个改变颜色的那个input改变时触发的函数。也当然是改变了底下的大框就要改变颜色呀。然后最底下也需要显示这个颜色的值
document.getElementById("c1").onchange = function() {
//咱们需要value值来改变颜色,所以第一个颜色选择器选择后就获取一下c1的value值
//this是这个函数的input对象。也就是document.getElementById("c1")。
value1 = this.value;
//同样选择了第一个颜色后就调用设置颜色的方法来设置颜色
setColor(value1, value2 , value3);
//输入颜色信息
result.innerText = "当前颜色为:" + "linear-gradient(to right," + value1 + "," + value2 + "," + value3 + ")";
}
//同c1
document.getElementById('c2').onchange = function() {
value2 = this.value;
setColor(value1, value2 , value3);
result.innerText = "当前颜色为:" + "linear-gradient(to right," + value1 + "," + value2 + "," + value3 + ")";
};
//同c3
document.getElementById('c3').onchange = function() {
value3 = this.value;
setColor(value1, value2 , value3);
result.innerText = "当前颜色为:" + "linear-gradient(to right," + value1 + "," + value2 + "," + value3 + ")";
};
//方法3
//设置颜色的方法来了,也就是每一个操作都会触发的方法.其实很简单,就是获取目标DIV的元素
//然后用.style.a="b";来设置style样式.a是需要设置的属性,后边b是CSS样式代码
function setColor(value1,value2,value3) {
//获取div那个大框
var bg = document.getElementById("div");
// 然后给它设置颜色即可,用的是"linear-gradient()"渐变色。
bg.style.background = "linear-gradient(to right," + value1 + "," + value2 + "," + value3 + ")"
}
//这个和那个一样的,只不过三个input颜色选择器选择的是to right从左到右的线行渐变色,而这个是Xdeg,x就是角度了,旋转的,颜色的value值一样的
function setColor1(value1,value2,value3) {
var bg = document.getElementById("div");
bg.style.background = "linear-gradient(" + range.value + "deg," + value1 + "," + value2 + "," + value3 + ")"
}
setColor(value1, value2 , value3);
</script>
</body>
</html>
前端自制渐变色
最新推荐文章于 2024-12-01 11:38:25 发布