当前位置: 首页 > article >正文

微信小程序——创建滑动颜色条

在微信小程序中,你可以使用 slider 组件来创建一个颜色滑动条。以下是一个简单的示例,展示了如何实现一个颜色滑动条,该滑动条会根据滑动位置改变背景颜色。

步骤一:创建小程序项目

首先,使用微信开发者工具创建一个新的小程序项目。

完整代码下载地址:https://download.csdn.net/download/qq_26043945/90231051

步骤二:编写页面代码

1. 修改 app.json

在 app.json 中添加一个新的页面路径:

{
  "pages": [
    "pages/index/index"
  ],
  "window": {
    "navigationBarTitleText": "颜色滑动条"
  }
}
2. 编写 index.wxml

在 pages/index/index.wxml 中添加 slider 组件和显示颜色的区域:

<view class="container">
  <view class="color-box-rgb" style="background-color: {{slider_RGB_bgColor}};"></view>
  <slider class="slider-rgb"
    value="{{sliderValue_RGB}}" 
    bindchanging="onSliderChange_RGB" 
    min="0" max="360" 
    block-color="#202020"
    backgroundColor="#c7c2c2"
    block-size="30"
  ></slider>
</view>

<view class="container">
  <view class="color-box-rgb" style="background-color: #797676;"></view>
  <slider class="slider-rgb"
    value="{{sliderValue_Bright}}" 
    bindchanging="onSliderChange_Bright" 
    min="0" max="100" 
    show-value="ture"
    block-color="#ffffff"
    backgroundColor="#c7c2c2"
    block-size="30"
  ></slider>
</view>
3. 编写 index.wxss

在 pages/index/index.wxss 中添加样式:

/* 定义一个名为 .container 的类,用于设置容器的基本样式 */
.container {
  /* 使用 flex 布局,使容器内的元素可以灵活地排列 */
  display: flex;
  /* 设置 flex 布局的方向为列方向,即从上到下排列 */
  flex-direction: column;
  /* 设置容器的背景颜色为灰色 */
  background-color: #c7c2c2;
  /* 设置容器内元素在主轴(水平方向,但因为是列方向,所以实际是垂直方向)上的对齐方式为居中 */
  justify-content: center;
  /* 设置容器的高度为视口高度的100% */
  height: 10px;
  width: 100%;

}

/* 定义一个名为 .color-box 的类,用于设置颜色盒子的样式 */
.color-box-rgb {
  /* 将你想要重叠的组件的position属性设置为absolute */
  position:absolute;
  /* 设置颜色盒子的宽度为父容器的80% */
  width: 80%;
  /* 设置颜色盒子的高度为5% */
  height: 5%;
  /* 添加圆角效果,这里设置为10px,但您可以根据需要调整大小 */
  border-radius: 10px;
}

.slider-rgb {
  /* 将你想要重叠的组件的position属性设置为absolute */
  position:absolute;
}

/* 定义 slider 组件的样式 */
slider {
  /* 设置 slider 组件的宽度为父容器的70% */
  width: 70%;
}

4. 编写 index.js

在 pages/index/index.js 中添加逻辑代码:

// 使用Page构造器创建页面
Page({
  // 页面的初始数据
  data: {
    // RGB滑块的值,用于控制颜色
    sliderValue_RGB: 0,
    // 亮度滑块的值,用于控制亮度
    sliderValue_Bright: 50,
    // RGB滑块背景颜色的初始值,设置为白色
    slider_RGB_bgColor: '#FFFFFF', // 初始颜色为白色
  },

  // RGB滑块值变化时触发的事件处理函数
  onSliderChange_RGB(e) {
    // 获取滑块当前的值
    const value = e.detail.value;
    // 色调值,直接使用滑块的值
    const hue = value;
    // 饱和度设置为100%
    const saturation = '100%';
    // 亮度设置为50%
    const lightness = '50%';
    // 根据色调、饱和度和亮度计算背景颜色
    let bgColor = `hsl(${hue}, ${saturation}, ${lightness})`;
    // 如果色调值为360(即一圈结束),则颜色设置为白色
    if (value === 360) {
      bgColor = `hsl(0, 0%, 100%)`; // 白色
    }
    // 更新页面的数据,包括RGB滑块的值和背景颜色
    this.setData({
      sliderValue_RGB: value,
      slider_RGB_bgColor: bgColor
    });
  },

  // 亮度滑块值变化时触发的事件处理函数
  onSliderChange_Bright(e) {
    // 获取滑块当前的值
    const value = e.detail.value;
    // 更新页面的数据,包括亮度滑块的值
    this.setData({
      sliderValue_Bright: value,
    });
  },
});


http://www.kler.cn/a/487522.html

相关文章:

  • “深入浅出”系列之QT:(6)如何在一个项目中调用另一个项目
  • GPU算力平台|在GPU算力平台部署Qwen-2通义千问大模型的教程
  • 数据结构:包装类和泛型
  • 行情系统用什么数据库好
  • 探索大型语言模型新架构:从 MoE 到 MoA
  • Android NDK开发实战之环境搭建篇(so库,Gemini ai)
  • thinkphp6.0常用设计模式实例
  • 基于滑动窗口的限流方案
  • cv2.imwrite保存的图像是全黑的
  • React PureComponent使用场景
  • 基于SpringBoot的时间管理系统设计与实现
  • Spring Boot + MyBatis Plus 存储 JSON 或 List 列表全攻略
  • matlab离线安装硬件支持包
  • WPF连接USB相机,拍照,视频 示例
  • 《Spring Framework实战》4:Spring Framework 文档
  • Qt仿音乐播放器:媒体类
  • 降噪去噪学习流程和算法分类总结
  • 6 分布式限流框架
  • 蓝桥杯 第十五届 研究生组 B题 召唤数学精灵
  • C# 使用iText 编辑PDF
  • Golang学习笔记_23——error补充
  • AI绘画:Midjourney和stable diffusion到底有什么区别?
  • 基于单片机的空调温度测试测控系统设计
  • es 单个节点cpu过高
  • EasyExcel(二)导出Excel表自动换行和样式设置
  • 大数据高级ACP学习笔记(3)