Skip to content

Commit 25c3807

Browse files
committed
嵌套移动滚动条问题的修改
1 parent bc04347 commit 25c3807

File tree

1 file changed

+11
-36
lines changed

1 file changed

+11
-36
lines changed

Sortable.js

Lines changed: 11 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252

5353
tapEvt,
5454
touchEvt,
55+
startEvt,
5556

5657
moved,
5758

@@ -99,14 +100,20 @@
99100
// Delect scrollEl
100101
if (scrollParentEl !== rootEl) {
101102
scrollEl = options.scroll;
102-
scrollParentEl = rootEl;
103+
//scrollParentEl = rootEl;
103104

104105
if (scrollEl === true) {
105106
scrollEl = rootEl;
106107

108+
var yx = abs(startEvt.clientX - evt.clientX), yy = abs(startEvt.clientY - evt.clientY);
109+
110+
//设置一个10像素的移动误差
111+
if (yx % 10 == 0 || yy % 10 == 0)
112+
startEvt = evt;
113+
107114
do {
108-
if ((scrollEl.offsetWidth < scrollEl.scrollWidth) ||
109-
(scrollEl.offsetHeight < scrollEl.scrollHeight)
115+
if ((yx > yy && scrollEl.offsetWidth < scrollEl.scrollWidth) ||
116+
((yx < yy && scrollEl.offsetHeight < scrollEl.scrollHeight))
110117
) {
111118
break;
112119
}
@@ -324,6 +331,7 @@
324331

325332
if (target && !dragEl && (target.parentNode === el)) {
326333
tapEvt = evt;
334+
startEvt = evt;
327335

328336
rootEl = el;
329337
dragEl = target;
@@ -496,42 +504,9 @@
496504
_css(ghostEl, 'msTransform', translate3d);
497505
_css(ghostEl, 'transform', translate3d);
498506

499-
//拖拽时联动滚动条
500-
_aScroll();
501-
502507
evt.preventDefault();
503508
}
504509

505-
506-
//扩展滚动条区域自动滚动
507-
function _aScroll() {
508-
if (!(opts && opts.scrollContainer))
509-
return;
510-
var scrollEL = document.getElementById(opts.scrollContainer),
511-
sl = scrollEL.getBoundingClientRect().left,
512-
sr = scrollEL.getBoundingClientRect().left + scrollEL.offsetWidth,
513-
gl = ghostEl.getBoundingClientRect().left, gr = ghostEl.getBoundingClientRect().right;
514-
if (gr > sr) {
515-
_timeScorll(function () {
516-
scrollEL.scrollLeft = scrollEL.scrollLeft + 1;
517-
});
518-
}
519-
if (gl < sl)
520-
_timeScorll(function () {
521-
scrollEL.scrollLeft = scrollEL.scrollLeft - 1;
522-
});
523-
524-
function _timeScorll(f) {
525-
var i = 0;
526-
var sTimer = setInterval(function () {
527-
i++;
528-
f();
529-
if (i == 20)
530-
clearInterval(sTimer);
531-
}, 30);
532-
};
533-
}
534-
535510
},
536511

537512
_appendGhost: function () {

0 commit comments

Comments
 (0)