微调可拖动 SVG 形状的位置,而无需更改 X

Fine tune position of draggable SVG shape without changing X?

本文关键字:位置 拖动 SVG      更新时间:2023-09-26

我的项目的当前状态可以在jsFiddle上看到
我想稍微按摩一下滑块的行为。
我正在寻找一种方法来轻推它们,以便 X 值从每个滑块的中心注册。

如您所见,滑块很好地设置了输入的值,但它们看起来/感觉有点不自然,因为 X 值是根据前缘而不是"中心质量"的。
将滑块尽可能向左移动感觉就像它停止了。尽可能向右移动它感觉就像它超越了它的边界。

我相信我可以想象一些非常讨厌的黑客,但我更喜欢更专业的:)
我的想法首先是CSS(我有点希望只是稍微推动一下),但到目前为止没有运气。
我现在的猜测是,它将归结为JS解决方案。

有什么想法/想法吗?

您可以通过变换调整位置,而无需更改 x 值。您所需要的只是添加transform属性...

    <rect id="rect_slider_knob"
         class="slidable"
         width="4%"
         height="24%" 
         y="38%"
         rx="2%"
         ry="3%"
         stroke="#666" 
         transform="translate(-6, 0)"
    />

您可以在此处查看演示:http://jsfiddle.net/mzmRN/

附言这是一个相当不错的小部件,所以我忍不住改善你的小提琴的交互,希望你不要介意!