Javascript 设置scrollTop使滚动非常慢
我一个接一个地跳了两个舞。当我滚动div1时,div2也应滚动,同样,如果我滚动div2,则div1应滚动。我通过将div1的scrollTop值设置为div2,将div2设置为div1来实现这一点。但这里的问题是滚动事件被多次触发,滚动速度非常慢。我已经制作了一个现场演示,有人能帮我吗Javascript 设置scrollTop使滚动非常慢,javascript,html,jquery,css,Javascript,Html,Jquery,Css,我一个接一个地跳了两个舞。当我滚动div1时,div2也应滚动,同样,如果我滚动div2,则div1应滚动。我通过将div1的scrollTop值设置为div2,将div2设置为div1来实现这一点。但这里的问题是滚动事件被多次触发,滚动速度非常慢。我已经制作了一个现场演示,有人能帮我吗 (函数(){ var目标=$(“#表固定”); $(“#tableLista”)。滚动(函数(e){ 道具(“scrollTop”,this.scrollTop) .prop(“scrollLeft”,thi
(函数(){
var目标=$(“#表固定”);
$(“#tableLista”)。滚动(函数(e){
道具(“scrollTop”,this.scrollTop)
.prop(“scrollLeft”,this.scrollLeft);
e、 预防默认值();
});
var target1=$(“#tableLista”);
$(“#tableFixed”)。滚动(函数(e){
target1.prop(“scrollTop”,this.scrollTop)
.prop(“scrollLeft”,this.scrollLeft);
e、 预防默认值();
});
})();代码>
.divScrollDiv{
显示:内联块;
宽度:10%;
边框:1px纯黑;
高度:100px;
溢出:滚动;
}
1.tableNoScroll{
溢出:隐藏;
溢出y:滚动;
}
滚动左div,观看右div
00
2.
3.
4.
5.
6.
7.
8.
9
10
11
12
13
14
15
16
17
18
19
A.
B
C
D
E
F
G
H
我
J
K
L
A.
B
C
D
E
F
G
H
我
J
K
L
A.
B
C
D
E
F
G
H
我
J
K
L
A.
B
C
D
E
F
G
H
我
J
K
L
A.
B
C
D
E
F
G
H
我
J
K
L
A.
B
C
D
E
F
G
H
我
J
K
L
A.
B
C
D
E
F
G
H
我
J
K
L
A.
B
C
D
E
F
G
H
我
J
K
L
A.
B
C
D
E
F
G
H
我
J
K
L
A.
B
C
D
E
F
G
H
我
J
K
L
A.
B
C
D
E
F
G
H
我
J
K
L
A.
B
C
D
E
F
G
H
我
J
K
L
A.
B
C
D
E
F
G
H
我
J
K
L
A.
B
C
D
E
F
G
H
我
J
K
L
A.
B
C
D
E
F
G
H
我
J
K
L
A.
B
C
D
E
F
G
H
我
J
K
L
A.
B
C
D
E
F
G
H
我
J
K
L
您需要某种类型的锁定,以防止触发循环中的滚动。一个简单的原语锁可以跟踪您悬停的表,并且只触发该元素的同步
var scrollSource;
var setScrollSource = function() {
scrollSource = this;
}
target.hover(setScrollSource);
target1.hover(setScrollSource);
target.scroll(function (e) {
if (this !== scrollSource) {
return;
}
// sync logic
}
target1.scroll(function (e) {
if (this !== scrollSource) {
return;
}
// sync logic
}
(函数(){
var目标=$(“#表固定”);
var target1=$(“#tableLista”);
变量源;
var setScrollSource=函数(){
scrollSource=这个;
}
target.hover(setScrollSource);
target1.悬停(设置CrollSource);
目标1.滚动(功能(e){
如果(此!==scrollSource){
返回;
}
目标
.prop(“scrollTop”,此为.scrollTop)
.prop(“scrollLeft”,this.scrollLeft);
e、 预防默认值();
});
目标。滚动(功能(e){
如果(此!==scrollSource){
返回;
}
目标1
.prop(“scrollTop”,此为.scrollTop)
.prop(“scrollLeft”,this.scrollLeft);
e、 预防默认值();
});
})();代码>
.divScrollDiv{
显示:内联块;
宽度:10%;
边框:1px纯黑;
高度:100px;
溢出:滚动;
}
1.tableNoScroll{
溢出:隐藏;
溢出y:滚动;
}
滚动左div,观看右div
00
2.
3.
4.
5.
6.
7.
8.
9
10
11
12
13