javascript - 反应范围滑块值气泡
问题描述
我正在尝试创建一个自定义反应范围滑块。到目前为止一切正常。我每次都需要在圆形切换按钮中显示滑块的当前值(不仅仅是在滑块上处于活动状态)。当滑块来回切换时,值应该在圆形切换按钮上动态变化。像这样的东西:
我尝试使用 react refs 来捕获当前样式并相应地对其应用 CSS,但它似乎不起作用。
工作片段的链接:
https://codesandbox.io/s/eloquent-worker-qt99n?file=/src/customSlider.js
解决同样问题的任何帮助表示赞赏:)
提前致谢
解决方案
您的代码中有一些不一致之处:
<output>
隐藏在display: none
- 你需要
.slideInpOuter
有position: relative
所以<output>
根据.slideInpOuter
thumbwidth
应该是 35,因为拇指的宽度设置35px
为sliderThumbStyles
top
拇指和输出的 css 值应该相同line-height
输出应该是35px
垂直居中文本- 你
calc
错误地使用了css
除此之外,您似乎无法thumbwidth
从 ref 中破坏,您需要.getAttribute
像这样使用currentValueRef.current.getAttribute("thumbwidth")
您可以在这里看到它与所有必需的更改一起工作https://codesandbox.io/s/jovial-http-5tqex?file=/src/customSlider.js
我必须添加一个 useEffect 挂钩来更新第一次渲染时的样式
推荐阅读
- python - 使用 Python 探索和发现数据中的模式/相似性
- javascript - 如何创建多输出文件?
- java - 道模式 Java 和 Hibernate
- swift - 如何在有场景的项目中修复 AppDelegate 的窗口 == nil?
- c - 使用 C 恢复存储卡上部分删除的数据
- database - 依赖图规范化
- graphql - 改变 FaunaDB 中的对象列表
- javascript - 从带空格的字符串中删除单词
- javascript - 如何替换列表对象中的一个值并使用 angularjs 将相同的新值分配给相同的对象列表?
- jquery - 将 html jquery 联系表单转换为 asp.net