Javascript 在internet explorer中拖动不起作用
我正在尝试在我的代码中调整大小并拖动一个div。下面是代码,但我在ie中根本无法拖动div,但在chrome中我也可以这样做。但是调整大小在两种情况下都有效。请检查并指导我如何在ie中使拖动也有效Javascript 在internet explorer中拖动不起作用,javascript,jquery,html,css,internet-explorer,Javascript,Jquery,Html,Css,Internet Explorer,我正在尝试在我的代码中调整大小并拖动一个div。下面是代码,但我在ie中根本无法拖动div,但在chrome中我也可以这样做。但是调整大小在两种情况下都有效。请检查并指导我如何在ie中使拖动也有效 interact('.divname') .resizable(true) .on('resizemove', function (event) { var target = event.target; // add the change in coords to the p
interact('.divname')
.resizable(true)
.on('resizemove', function (event) {
var target = event.target;
// add the change in coords to the previous width of the target element
var
newWidth = parseFloat(target.style.width ) + event.dx,
newHeight = parseFloat(target.style.height) + event.dy;
// update the element's style
target.style.width = newWidth + 'px';
target.style.height = newHeight + 'px';
//target.textContent = newWidth + '×' + newHeight;
});
interact('.divname')
.draggable({
// enable inertial throwing
inertia: true,
// keep the element within the area of it's parent
restrict: {
restriction: "parent",
endOnly: true,
elementRect: { top: 0, left: 0, bottom: 1, right: 1 }
},
// call this function on every dragmove event
onmove: function (event) {
var target = event.target,
// keep the dragged position in the data-x/data-y attributes
x = (parseFloat(target.getAttribute('data-x')) || 0) + event.dx,
y = (parseFloat(target.getAttribute('data-y')) || 0) + event.dy;
// translate the element
target.style.webkitTransform =
target.style.transform =
'translate(' + x + 'px, ' + y + 'px)';
// update the posiion attributes
target.setAttribute('data-x', x);
target.setAttribute('data-y', y);
},
// call this function on every dragend event
onend: function (event) {
var textEl = event.target.querySelector('p');
textEl && (textEl.textContent =
'moved a distance of '
+ (Math.sqrt(event.dx * event.dx +
event.dy * event.dy)|0) + 'px');
}
});
<div class="divname">
</div>
交互('.divname')
.可调整大小(真)
.on('resizemove',函数(事件){
var target=event.target;
//将坐标中的更改添加到目标元素的上一个宽度
变量
newWidth=parseFloat(target.style.width)+event.dx,
newHeight=parseFloat(target.style.height)+event.dy;
//更新元素的样式
target.style.width=newWidth+'px';
target.style.height=newHeight+'px';
//target.textContent=newWidth+'×'+newHeight;
});
交互('.divname')
.拖拉({
//启用惯性投掷
惯性:没错,
//将元素保持在其父元素的区域内
限制:{
限制:“家长”,
是的,
elementRect:{top:0,left:0,bottom:1,right:1}
},
//在每次dragmove事件中调用此函数
onmove:函数(事件){
var target=event.target,
//在data-x/data-y属性中保持拖动位置
x=(parseFloat(target.getAttribute('data-x'))| | 0)+event.dx,
y=(parseFloat(target.getAttribute('data-y'))| | 0)+event.dy;
//翻译元素
target.style.webkitTransform=
target.style.transform=
'翻译('+x+'px',+y+'px)';
//更新posiion属性
target.setAttribute('data-x',x);
target.setAttribute('data-y',y);
},
//在每个dragend事件上调用此函数
ONED:功能(事件){
var textEl=event.target.querySelector('p');
textEl&(textEl.textContent)=
“移动了一段距离”
+(Math.sqrt(event.dx*event.dx+
event.dy*event.dy)| 0)+“px”);
}
});
IE8不支持转换
,因此您的onmove
处理程序将无法在那里工作。此外,IE8不支持textContent
,因此您的onend
处理程序也无法正常工作
对于IE9,您可以进行转换,但需要使用供应商前缀ms
,类似于webkit
,您应该修改您的问题并包括您正在使用的interact.js。你在测试什么版本的IE?我在ie9和ie8i中测试它。我删除了ONED中的点,在onmove中,我将transform修改为mstransform,但在ie9中仍然不起作用。你做过“mstransform”(大写T)吗