创建圆角颜色选择器按钮

在最近的一个项目需求中,需要一个圆角按钮而不是标准的方形按钮。为了实现这个功能,进行了一系列的研究和编码。

将使用ColorPicker插件来完成这个任务。让开始编码吧。

步骤1:添加插件引用

首先,需要引入jQuery和ColorPicker插件的引用。需要以下资源:

<script src= " https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js" type= " text/javascript" charset= " utf-8" ></script> <script src= " https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js" type= " text/javascript" charset= " utf-8" ></script> <script src= " js/evol.colorpicker.min.js" type= " text/javascript" charset= " utf-8" ></script> <link rel= " stylesheet" type= " text/css" href= " http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/themes/ui-lightness/jquery-ui.css" > <link href= " css/evol.colorpicker.css" rel= " stylesheet" type= " text/css" >

可以使用在线的googleapi链接,或者从jQuery官方网站下载并使用。对于ColorPicker,从GitHub源代码下载文件并在项目中使用。根据代码,有一个js文件夹,其中包含evol.colorpicker.min.js,还有一个css文件夹,其中包含evol.colorpicker.css。请确保文件路径正确,否则它将无法工作。

步骤2:添加颜色选择器的输入控件

只需添加一个HTML input标签的文本框。

<input type= " text" id= " mycolor" />

步骤3:颜色选择器的脚本

当文档加载完成后,初始化颜色选择器

$(document).ready(function () { // 初始化颜色选择器 $("#mycolor").colorpicker({ color: "#ff0000" }); });

现在,如果点击文本框或旁边的“方形按钮”,它将显示一个选择颜色的小部件。

步骤4:检查HTML颜色选择器源代码

当检查显示颜色选择器和文本框的区域时,将得到以下div。

<div style= " width:201px;" > <input type= " text" id= " mycolor" class = " colorPicker evo-cp0" > <div class = " evo-pointer evo-colorind" style= " background-color:#ff0000" > </div > </div >

所以,它用一个div包围了input,并且在其中添加了另一个div(见高亮部分),这就是按钮。现在只需要将其更改为圆形。让在下一步中探索。

步骤5:为按钮div分配边框半径

让为具有类evo-pointer evo-colorind的按钮div添加CSS属性border-radius。

$(document).ready(function () { // 初始化颜色选择器 $("#mycolor").colorpicker({ color: "#ff0000" }); // 为包含按钮的div添加圆角 $(".evo-pointer").css("border-radius", "15px"); });

HTML更改为以下内容,添加了border-radius: 15px;到style中。

<div style= " width:201px;" > <input type= " text" id= " mycolor" class = " colorPicker evo-cp0" > <div class = " evo-pointer evo-colorind" style= " border-radius: 15px; background-color: rgb(255, 0, 0);" > </div > </div >

哇!完成了。看下面的图片。

完成了吗?还没有。等等。让测试一下。如果从选择器中选择任何颜色,将看到按钮再次变回方形。原因是每次从选择器中选择任何颜色时,按钮div都会被动态分配。HTML回到了原始状态。

<div style= " width:201px;" > <input type= " text" id= " mycolor" class = " colorPicker evo-cp0" > <div class = " evo-pointer evo-colorind" style= " background-color:#f79646" > </div > </div >

现在缺少border-radius: 15px;。

看看下面的gif,按钮如何再次变回方形。

步骤6:处理更改颜色事件

那么,让处理更改颜色事件,以再次将按钮的形状变为圆形。

$(document).ready(function () { // 初始化颜色选择器 $("#mycolor").colorpicker({ color: "#ff0000" }); // 为包含按钮的div添加圆角 $(".evo-pointer").css("border-radius", "15px"); // 在颜色选择器更改颜色事件中再次设置圆角 $(".colorPicker").on("change.color", function (event, color) { $(this).next().css("border-radius", "15px"); }); });

为颜色选择器文本框的下一个元素分配了CSS属性,即按钮。

演示

[演示] 圆角颜色选择器按钮

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485