停止jQuery“点击滚动”重置
Stop jQuery "click scroll" reset
我有一个正在运行的小脚本,所以我可以使用鼠标向下选项滚动到div。不幸的是,它在每次单击时都会重置,我不太清楚它为什么要这样做。
<script>
$(function () {
var clicked = false, clickX;
$("#gallery").on({
'mousemove': function(e) {
clicked && updateScrollPos(e);
},
'mousedown': function(e) {
clicked = true;
clickX = e.pageX;
},
'mouseup': function() {
clicked = false;
$('html').css('cursor', 'auto');
}
});
var updateScrollPos = function(e) {
$('#gallery').scrollLeft($(window).scrollLeft() + (clickX - e.pageX));
}
});
</script>
我假设它
与clickX = e.pageX;
$('#gallery').scrollLeft($(window).scrollLeft() + (clickX - e.pageX));
为什么是我?,因为:"返回事件相对于整个文档的水平坐标。所以我假设它在您单击时占据原始位置,但在您实际滚动时它不会更新。有人对此有解决方法吗?
http://jsfiddle.net/fLr4d7kt/6/
我们像这样修复它:
$(function () {
var scroll = 0;
$(function () {
var clicked = false, clickX;
$("#gallery").on({
'mousemove': function(e) {
clicked && updateScrollPos(e);
},
'mousedown': function(e) {
clicked = true;
clickX = e.pageX;
scroll = $('#gallery').scrollLeft();
},
'mouseup': function() {
clicked = false;
$('html').css('cursor', 'auto');
}
});
var updateScrollPos = function(e) {
$('#gallery').scrollLeft(scroll + (clickX - e.pageX));
}
});
});
JS: http://jsfiddle.net/fLr4d7kt/10/
相关文章:
- 如何在Angularjs中通过点击项目重定向
- 如何在angularjs中点击按钮重置模型
- DHTMLX-分页后,点击网格重定向到第1页
- setInterval在单击时重置
- 如何在Snap.svg中第二次单击时重置svg坐标
- jQuery img.src 在点击后重置
- 停止jQuery“点击滚动”重置
- 在“单击”时重置 addClass 函数
- j查询单击事件重置复选框的检查属性
- 单击时重置计时器以进行显示和隐藏 - jquery
- Spring MVC JSP Jquery调用控制器方法上的按钮点击后重定向错误
- 通过AngularJS中的按钮点击/滚动来增加Mongoose查询限制
- 点击滚动条,需要添加一些像素
- 如何在单击时重置.tablestripe类
- 防止AJAX中的滚动重置
- jQuery toggle DIV -当元素被点击时重置toggle
- 如何替换图像上的点击和重置为原来的退出悬停状态后
- 每次点击按钮重置setTimeout
- AJAX和jQuery切换/点击状态(重置状态)
- 如何修复跳过每次点击按钮进入倒计时的时间?(或者每次点击都重置倒计时)