Javascript从鼠标位置拖动?
我有一个脚本,允许用户在iOS屏幕上拖动一个div,现在,当你开始拖动一个div时,它会使可拖动的点成为中心。在用户接触的任何地方都可以指出这一点吗 代码如下所示:Javascript从鼠标位置拖动?,javascript,jquery,Javascript,Jquery,我有一个脚本,允许用户在iOS屏幕上拖动一个div,现在,当你开始拖动一个div时,它会使可拖动的点成为中心。在用户接触的任何地方都可以指出这一点吗 代码如下所示: xPos = drag.offsetWidth / 2; yPos = drag.offsetHeight / 2; drag.addEventListener("touchmove", function() { event.preventDefault(); $(this).
xPos = drag.offsetWidth / 2;
yPos = drag.offsetHeight / 2;
drag.addEventListener("touchmove", function() {
event.preventDefault();
$(this).css({
"left" : event.targetTouches[0].pageX - xPos + "px",
"top" : event.targetTouches[0].pageY - yPos + "px",
"z-index" : "1000"
});
$("div").not(this).css("z-index", "1");
$("div[id]").each(function() {
var id = $(this).attr("id");
localStorage.setItem(id + "-z","1");
});
});
drag.addEventListener("touchstart", function() {
left = event.targetTouches[0].pageX - $(this).offset().left;
top = event.targetTouches[0].pageY - $(this).offset().top;
});
drag.addEventListener("touchmove", function() {
$(this).css({
"left" : event.targetTouches[0].pageX - left + "px",
"top" : event.targetTouches[0].pageY - top + "px",
});
});
我是否可以使偏移量与用户的手指距离框的边缘有多远
我认为下面的方法可能有效,但它似乎不起作用,它所做的只是导致它抖动:
$(this).css({
"left" : event.targetTouches[0].pageX - parseInt($(this).css("left"), 10) + "px",
"top" : event.targetTouches[0].pageY - parseInt($(this).css("top"), 10) + "px",
});
我明白了。测试后,以下仅从父对象的左侧或顶部生成像素数
event.targetTouches[0].pageX - $(this).offset().left
诀窍是从event.targetTouches[0].pageX中减去它,这是指手指距离屏幕边缘的像素数
因此,完成的代码如下所示:
xPos = drag.offsetWidth / 2;
yPos = drag.offsetHeight / 2;
drag.addEventListener("touchmove", function() {
event.preventDefault();
$(this).css({
"left" : event.targetTouches[0].pageX - xPos + "px",
"top" : event.targetTouches[0].pageY - yPos + "px",
"z-index" : "1000"
});
$("div").not(this).css("z-index", "1");
$("div[id]").each(function() {
var id = $(this).attr("id");
localStorage.setItem(id + "-z","1");
});
});
drag.addEventListener("touchstart", function() {
left = event.targetTouches[0].pageX - $(this).offset().left;
top = event.targetTouches[0].pageY - $(this).offset().top;
});
drag.addEventListener("touchmove", function() {
$(this).css({
"left" : event.targetTouches[0].pageX - left + "px",
"top" : event.targetTouches[0].pageY - top + "px",
});
});
我明白了。测试后,以下仅从父对象的左侧或顶部生成像素数
event.targetTouches[0].pageX - $(this).offset().left
诀窍是从event.targetTouches[0].pageX中减去它,这是指手指距离屏幕边缘的像素数
因此,完成的代码如下所示:
xPos = drag.offsetWidth / 2;
yPos = drag.offsetHeight / 2;
drag.addEventListener("touchmove", function() {
event.preventDefault();
$(this).css({
"left" : event.targetTouches[0].pageX - xPos + "px",
"top" : event.targetTouches[0].pageY - yPos + "px",
"z-index" : "1000"
});
$("div").not(this).css("z-index", "1");
$("div[id]").each(function() {
var id = $(this).attr("id");
localStorage.setItem(id + "-z","1");
});
});
drag.addEventListener("touchstart", function() {
left = event.targetTouches[0].pageX - $(this).offset().left;
top = event.targetTouches[0].pageY - $(this).offset().top;
});
drag.addEventListener("touchmove", function() {
$(this).css({
"left" : event.targetTouches[0].pageX - left + "px",
"top" : event.targetTouches[0].pageY - top + "px",
});
});
Modernizer是一种伟大的、轻量级的方法来进行各种功能检测。你能举个例子@coder吗?Modernizer是一种伟大的、轻量级的方法来进行各种功能检测。你能举个例子@coder吗?