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

微信小程序 slider 翻转最大和最小值

微信小程序 slider 翻转最大和最小值

  • 场景
  • 代码示例
    • index.wxml
    • index.js
    • util.js
  • 参考资料

场景

我想使用 slider 时最左边是 10 最右是 -10
但是想当然的直接改成<slider min="10" max="-10" step="1" /> 并没用。
查了文档和社区也没有现成的解决方案。

代码示例

在这里插入图片描述

index.wxml

<scroll-view class="scroll-area" type="list" scroll-y><view class="intro">翻转 slider 的最大和最小值</view><button type="default">翻转后的值:{{value}}</button><slider bindchanging="sliderChange" bindchange="sliderChange"  show-value="true"min="-10" max="10" step="1" value="{{sliderValue}}"/>
</scroll-view>

index.js

const util = require("../utils/util.js");Page({data: {sliderValue: 0,value: 0,},onLoad() {},sliderChange(e){let value = util.intervalMapping(e.detail.value, -10, 10, 10, -10);this.setData({ value });}
})

util.js

/*** 区间映射* @param {*} value       输入值* @param {*} inputBegin  输入起始值* @param {*} inputEnd    输入结束值* @param {*} outputBegin 输出起始值* @param {*} outputEnd   输出结束值*/
function intervalMapping(value, inputBegin, inputEnd, outputBegin, outputEnd) {if( value <= inputBegin ){return outputBegin;}else if(value >= inputEnd){return outputEnd;}return ((outputEnd - outputBegin) * (value - inputBegin)) / (inputEnd - inputBegin) + outputBegin;
}/*** 区间映射* @param {*} value       输入值* @param {*} inputBegin  输入起始值* @param {*} inputMid    输入中间值* @param {*} inputEnd    输入结束值* @param {*} outputBegin 输出起始值* @param {*} outputMid   输出中间值* @param {*} outputEnd   输出结束值*/
function intervalMappingABC(value, inputBegin, inputMid, inputEnd, outputBegin, outputMid, outputEnd) {if( value <= inputBegin ){return outputBegin;}else if(value == inputMid){return outputMid;}else if(value >= inputEnd){return outputEnd;}else if(value < inputMid){inputEnd = inputMid;outputEnd = outputMid;}else if(value > inputMid){inputBegin = inputMid;outputBegin = outputMid;}return ((outputEnd - outputBegin) * (value - inputBegin)) / (inputEnd - inputBegin) + outputBegin;
}module.exports = {intervalMapping,intervalMappingABC
}

参考资料

微信小程序 表单组件 /slider
代码片段 https://developers.weixin.qq.com/s/jdYlT6m87NNp

http://www.lryc.cn/news/249654.html

相关文章:

  • APITable免费开源的多维表格与可视化数据库本地部署公网远程访问
  • 配电房综合监控系统
  • 【JavaSE】集合(学习笔记)
  • Mybatis 的简单运用介绍
  • python的itertools库
  • STM32/GD32_分散加载
  • go clean
  • BUUCTF [ACTF新生赛2020]swp 1
  • 【PTA题目】7-4 缩写期刊名 分数 10
  • 什么是 TLS/SSL 握手
  • 和鲸科技与国科环宇建立战略合作伙伴关系,以软硬件一体化解决方案促进科技创新
  • [C++]六大默认成员函数详解
  • 组合(回溯算法)
  • 力扣:1419. 数青蛙
  • java_springboot企业人事考勤请假管理信息系统rsglxx+jsp
  • java项目之木里风景文化管理平台(ssm+vue)
  • 源码安装mysql
  • 注解方式优雅的实现Redisson分布式锁
  • 服务器安装JDK17 版本显示JDK8
  • 利用MCMC 获得泊松分布
  • docker-compose脚本编写及常用命令
  • 编译企业微信会话内容存档PHP版SDK扩展
  • 传统算法:使用 Pygame 实现K-Means 聚类算法
  • WebUI工作流插件超越ComfyUI
  • Docker容器化平台及其优势和应用场景介绍
  • Hive:从HDFS回收站恢复被删的表
  • TZOJ 1387 人见人爱A+B
  • 校园圈子系统丨交友丨地图找伴丨二手市场等功能丨源码交付支持二开丨APP小程序H5三端交付!
  • java操作windows系统功能案例(一)
  • 【双向链表的实现】