필자는 폴리머 용지 요소를 좋아하고 용지 슬라이더 요소를 사용하고 싶습니다.세로 용지 슬라이더 요소
그러나 나는 그것이 수직이되고 싶습니다. 나는 그것을 회전시키기 위해 CSS를 적용하려고 시도했다.
transform: rotate(90deg);
이것은 "입력"슬라이더 회전 아니지만; "손잡이"를 위아래로 움직이기 위해서는 여전히 마우스 을 수평으로을 클릭하고 드래그해야합니다.
이것은 매우 성가신 일이며 모든 도움은 감사하겠습니다!
필자는 폴리머 용지 요소를 좋아하고 용지 슬라이더 요소를 사용하고 싶습니다.세로 용지 슬라이더 요소
그러나 나는 그것이 수직이되고 싶습니다. 나는 그것을 회전시키기 위해 CSS를 적용하려고 시도했다.
transform: rotate(90deg);
이것은 "입력"슬라이더 회전 아니지만; "손잡이"를 위아래로 움직이기 위해서는 여전히 마우스 을 수평으로을 클릭하고 드래그해야합니다.
이것은 매우 성가신 일이며 모든 도움은 감사하겠습니다!
tk-vslider은 회전 기능이있는 조정식 용지 슬라이더입니다. 이 문제를 해결하려면 용지 슬라이더 대신이 도구를 사용하십시오. 정박기를 사용하여 설치 "tkvslider": "0.5.5"
<tk-vslider rotate="true"></tk-vslider>
조정하십시오.
이어서
div#sliderContainer
는 90DEGrotate == true
경우 div#sliderKnob
의 on-trackx
대신 e.dx
의 e.dy
을 track
방법에서 on-track
이것은 꽤 해킹 할 수있는 방법 일 수 있지만, requested this as feature 이후 1 년 내로 예정되어 있으며 아직 우선 순위가 높지 않습니다. 이 부분은 지원을 계속할 수없는 제 3 자에 의존하지 않고 Polymer 팀의 paper-slider
에 대한 지속적인 업데이트를 허용 할 것입니다. (여기서 언급 한 사용자 정의 요소 tk-vslider
은 지원하도록 업데이트되지 않았습니다. 중합체 1.0).
먼저 css. 90도 회전하면 슬라이더 상단에 작은 값이 표시된다는 것을 알았습니다. 반 직관적 인 것으로 나타났습니다. 그래서 대신 -90도 회전합니다. 일부 이상한 물건은 마진이 발생하지만 결국 나를 위해 그것을 한 일이다 : 나는 내 자신의 사용자 정의 요소 내부 내 종이 슬라이더를했다, 그래서 나는 준비 콜백에 다음 코드를 넣어,하지만 난 상상
paper-slider {
width: 20vh;
margin: 10vh -10vh;
--webkit-transform: rotate(-90deg);
transform: rotate(-90deg);
}
당신은 당신이 슬라이더 요소를 선택할 수있는 한 당신이 필요로하는 곳 어디든지 놓을 수 있습니다. 기본적으로 드래그 이벤트에 응답하는 데
paper-slider
메서드를 재정의 할 것입니다. 방법은 다음과 같습니다
var slider = this.$.slider;
slider._trackX = function(e) {
if (!slider.dragging) {
slider._trackStart(e);
}
var dx = Math.min(slider._maxx, Math.max(slider._minx, (-1 * e.detail.dy)));
slider._x = slider._startx + dx;
var immediateValue = slider._calcStep(slider._calcKnobPosition(slider._x/slider._w));
slider._setImmediateValue(immediateValue);
// update knob's position
var translateY = ((slider._calcRatio(immediateValue) * slider._w) - slider._startx);
slider.translate3d(translateY + 'px', 0, 0, slider.$.sliderKnob);
};
는 거의이 방법의 전체가
paper-slider
source code에서 복사되는 유일한 진정한 변화는 그 대신에이 X 우리는
e.detail.dy
에 Y를 잡아
e.detail.dx
좌표를 잡아이다. 음수 배율은 슬라이더의 아래쪽에 더 작은 값을 넣고
paper-slider
을 -90도 회전 한 경우에만 필요합니다.
Polymer 팀이 _trackX
메서드의 이름을 변경하면이 솔루션이 중단됩니다. 나는 이것이 조금 늦다는 것을 알고있다.하지만 잘하면 (비슷한 방식으로) 다른 사람들을 찾는데 도움이 될 것이다.
업데이트 : 아마도이 솔루션을 조금 더 테스트해야하며, 클릭 이벤트 (다른 하나는 드래그 만 처리)를 처리하기 위해 덮어 써야하는 다른 기능이 있음이 드러났습니다.
slider._bardown = function(event) {
slider._w = slider.$.sliderBar.offsetWidth;
var rect = slider.$.sliderBar.getBoundingClientRect();
var ratio = ((rect.bottom - event.detail.y)/slider._w);
var prevRatio = slider.ratio;
slider._setTransiting(true);
slider._positionKnob(ratio);
slider.debounce('expandKnob', slider._expandKnob, 60);
// if the ratio doesn't change, sliderKnob's animation won't start
// and `_knobTransitionEnd` won't be called
// Therefore, we need to manually update the `transiting` state
if (prevRatio === slider.ratio) {
slider._setTransiting(false);
}
slider.async(function() {
slider.fire('change');
});
// cancel selection
event.preventDefault();
}
이 방법의 주요 변화는 비율을 계산 라인 : 나는 내 다른 방법을 아래에이를 추가하여 작업을 얻었다. 그것은
<s-slider>
var ratio = (event.detail.x - rect.left)/this._w;
가 수직 방향 https://github.com/StartPolymer/s-slider
https://github.com/Polymer/paper-slider/issues에서이 기능 요청을 열 것입니다 해결 얻을 수있는 가장 좋은 방법은 그에 대한
vertical
속성이되기 전에 사용자 상호 작용으로 인해 노브를 업데이트하는 논리는 https://github.com/Polymer/paper-slider/blob/master/paper-slider.html#L256에 있습니다. 모두 X 축의 좌표를 기반으로하며 요소의 폭 야심적이라면 요소를 포크 해보고 그 논리를 Y 축과 요소의 높이를 기반으로 수정할 수 있습니다. –Jenn Posnick, 좋은 제안입니다. 나는 요청을 시작할 것이다. 그러나 나는 "당신이 야심적이라면"충분하지 않다, 나는 어떤 수준의 기술이 요구된다고 확신한다. 나는 근원을보고 x 축을 발견했다. 그러나 그것이 내가 갈 때까지 ... –