Skip to content

Commit

Permalink
实现鼠标拖曳滚动条功能
Browse files Browse the repository at this point in the history
  • Loading branch information
ZreXoc committed Jan 21, 2022
1 parent 2b17bb3 commit a8c224b
Showing 1 changed file with 28 additions and 6 deletions.
34 changes: 28 additions & 6 deletions settings/components/slide.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,24 +46,46 @@ function Slider({ range, defaultValue = range[0], offset = 1, onValueChange }) {
let currentValue;
const total = range[1] - range[0];

const element = document.createElement("div");
element.className = "slider";
const container = document.createElement("div");
container.className = "slider";
const slideBlock = document.createElement("div");
slideBlock.className = "slideBlock";
element.appendChild(slideBlock);
container.appendChild(slideBlock);

element.addEventListener("click", (e) => {
if (e.offsetX > e.target.offsetWidth - 35) {
container.addEventListener("click", (e) => {
if (e.offsetX > container.offsetWidth - 35) {
add(offset);
}
if (e.offsetX < 35) {
add(0 - offset);
}
});

//拖曳滚动条
const onDrag = (e) => {
set(
Math.round(
range[0] +
((e.offsetX - 35) /
(container.clientWidth-70)) *
total
)
);
};
let isMouseDown = false;
slideBlock.addEventListener("mousedown", () => {
isMouseDown = true;
window.addEventListener("mousemove", onDrag);
});
window.addEventListener("mouseup", () => {
if (!isMouseDown) return;
isMouseDown = false;
window.removeEventListener("mousemove", onDrag);
});

set(defaultValue);

return { element, set, add };
return { element: container, set, add };

/**
* @param {number} value
Expand Down

0 comments on commit a8c224b

Please sign in to comment.