微信小程序:用 Slider 滑块做一个简易调色器

发布时间:2026/10/27 2:02:37
微信小程序:用 Slider 滑块做一个简易调色器 一、实验简介本案例演示微信小程序slider 滑动条组件、data‑*自定义属性、rgba()颜色函数的综合使用。通过 4 个滑动条分别控制红、绿、蓝、透明度实时修改下方色块的背景色与文字颜色。作业拓展为第一条红色滑动条设置轨道底色为黄色滑动经过部分变为绿色。实现效果页面包含 4 个 slider 组件红色、绿色、蓝色、透明度。拖动滑块页面下方方块背景颜色、文字颜色同步动态改变。第一条滑动条原始底色黄色滑过区域变为绿色。展示两行文字勿以恶小而为之勿以善小而不为用到核心知识点slider表单滑动组件data‑*自定义属性事件中通过dataset获取自定义参数事件bindchanging拖动滑块持续触发js 动态对象属性[变量名]动态赋值rgba(r,g,b,a)颜色r/g/b 取值 0‑255a 透明度 0~1WXML 内联样式style数据绑定。二、新建项目打开微信开发者工具新建小程序项目项目名称slider组件后端服务不使用云服务模板选择不使用模板三、完整源码1. pages/index/index.wxml!--index.wxml-- scroll-view classscrollarea scroll-y typelist view classbox view classtitle滑动条和颜色/view text红色滑动条/text !-- 作业拓展backgroundColor底色黄色activeColor滑过后为绿色 -- slider>2. pages/index/index.js// index.js Page({ data: { // 设置RGB与透明度初始值 r: 50, g: 100, b: 150, a: 1 }, /** * 拖动滑块触发的回调函数 * param {Object} e 事件对象 */ colorChanging(e) { // 获取自定义属性data‑color的值 r/g/b/a const color e.currentTarget.dataset.color; // 获取滑块当前拖动得到的值 const value e.detail.value; // [color]动态属性名变量作为key给data中对应变量赋值 this.setData({ [color]: value }) } })重点解析[color]: value[color]是动态计算属性名不是直接修改名叫 color 的变量如果colorr等价于r: value如果colorg等价于g: value。只写一个事件函数就可以同时处理 4 条滑动条代码复用。3. pages/index/index.wxss/**index.wxss**/ page { height: 100vh; display: flex; flex-direction: column; } .scrollarea { flex: 1; overflow-y: hidden; } .color-area { width: 100%; line-height: 100rpx; font-size: 60rpx; font-weight: bolder; text-align: center; padding: 40rpx 0; margin-top: 1.2em; }4. app.wxss/**app.wxss**/ .box { margin: 20rpx; padding: 20rpx; border: 2rpx solid silver; } .title { font-size: 40rpx; font-weight: bolder; text-align: center; margin-bottom: 30rpx; color: red; }5. app.json{ pages: [ pages/index/index ], window: { navigationBarTitleText: slider组件, navigationBarBackgroundColor: #ffffff, navigationBarTextStyle: black }, style: v2, sitemapLocation: sitemap.json }四、运行步骤将上述代码分别粘贴到对应文件覆盖原有内容点击开发者工具「清除缓存」编译运行项目拖动 4 个滑动条观察效果第一条滑动条原始底色黄色拖动过的轨道变为绿色拖动滑块下方方块背景颜色、文字颜色实时发生变化文字分为两行居中展示。五、核心原理分析自定义属性 data‑*在组件标签写data‑colorr触发事件时可以通过e.currentTarget.dataset.color获取r。同一个事件函数区分 4 个不同滑块。rgba 颜色rgba(红,绿,蓝,透明度)背景色直接绑定{{r}}{{g}}{{b}}{{a}}文字颜色使用取反255‑r保证背景和文字有对比度。bindchanging事件拖动滑块过程中不断触发如果使用bindchange只有松开才触发。六、实验总结slider 组件适合数值调节场景通过data‑*自定义属性实现事件复用减少重复代码。backgroundColor代表轨道原始底色activeColor代表滑动走过的轨道颜色二者不要搞反。WXML 中不支持 html 的br换行标签多行文字直接嵌套view实现换行。动态对象属性[key]是 JS 重要语法可以根据变量名动态修改 Page 的 data 数据。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询