admin管理员组文章数量:1336660
var down=false;
var scrollLeft=0;
var x=0;
$('#test').mousedown(function(e) {
down = true;
scrollLeft = this.scrollLeft;
x = e.clientX;
}).mouseup(function() {
down = false;
}).mousemove(function(e) {
if (down) {
this.scrollLeft = scrollLeft + x - e.clientX;
}
}).mouseleave(function() {
down = false;
});
Here's a demo: /
I want to be able to scroll the div by using the mouse. It works fine, though a bit weird with text since you can accidentally select things, but it has a problem that shows up when you move the mouse outside of the test div
. It continues scrolling even though I am setting down=false
. How can I stop this and why is it happening?
var down=false;
var scrollLeft=0;
var x=0;
$('#test').mousedown(function(e) {
down = true;
scrollLeft = this.scrollLeft;
x = e.clientX;
}).mouseup(function() {
down = false;
}).mousemove(function(e) {
if (down) {
this.scrollLeft = scrollLeft + x - e.clientX;
}
}).mouseleave(function() {
down = false;
});
Here's a demo: http://jsfiddle/STVqe/3/
I want to be able to scroll the div by using the mouse. It works fine, though a bit weird with text since you can accidentally select things, but it has a problem that shows up when you move the mouse outside of the test div
. It continues scrolling even though I am setting down=false
. How can I stop this and why is it happening?
- What do you mean by "scroll the div by using the mouse?" I don't actually see anything different happen when I move the mouse, whether or not it's clicked. – Matt Ball Commented Jun 6, 2011 at 18:35
- Click the div and hold the mouse down, then move it around horizontally. – Radu Commented Jun 6, 2011 at 18:37
- Here is perhaps a clearer example of the desired effect: jqueryfordesigners./demo/scrollable-timelines.html – Radu Commented Jun 6, 2011 at 18:38
- 1 @Radu, if you want that affect, then remove the scrollbar. – Naftali Commented Jun 6, 2011 at 18:39
-
1
BTW, if you don't want the text to be selectable: jsfiddle/mattball/MP2cg via
*user-select
– Matt Ball Commented Jun 6, 2011 at 18:48
2 Answers
Reset to default 5This works for me in Chrome: http://jsfiddle/mattball/MP2cg/
It looks like the problem is actually caused because of the text being selected. If you add the non selectable text css rules and go with your original javascript it works (I believe) as you want, with scrollbars. Tested in FF 3.6
本文标签: javascriptScrolling with mouse movementsStack Overflow
版权声明:本文标题:javascript - Scrolling with mouse movements - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742419294a2471333.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论