因为每个浏览器下的外观都不一致,通常我们可以让上传标签隐藏,然后使用一个div按钮来替代解决这个问题,当然目前好多站点都这么干,完全没有兼容性。我们也尝试着把这一逻辑照搬到color标签上。我们定义一个按钮,然后点击按钮以后弹出颜色选择器。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>html5 input color标签</title>
</head>
<body>
<input style="display:none;" type="color" id="color" />
<button id="btn">弹出色盘</button>
</body>
</html>
js代码:
document.getElementById('btn').onclick = function(){
document.getElementById('color').click();
};
怎么获得改变颜色后的触发事件呢?
既然能弹出系统色盘可以选择颜色,那么就应该要获得用户选择颜色后的色值做相应操作。由于是直接调用系统色盘,因此我们可以监听input只要onchange即可然后获取它的value即可。
document.getElementById('color').onchange = function(){
alert('您选择的颜色是:'+this.value)
};