我创建了一个非常iphone-y的滑块元素,它在水平方向上整体移动受限制(0-400px并且不会垂直移动),并且当它通过时“快照”到400px“容器”的任一侧200px标记和拖动已经结束。它在firefox中运行完美。在Safari中,永远不会调用将元素定位到此400px容器任一端的onEnd函数。更重要的是,可拖动的元素“粘住”鼠标光标,我必须重新加载页面以结束动画。
这是我的代码
<div style="width:100px;height: 60px;background-color:#000;z-index:999" id="dragtest" />
<script language="JavaScript" type="text/javascript">
new Draggable('dragtest', { constraint: 'horizontal',
onEnd: function(e, me) {
console.debug("!!!")
element = e.element
x = element.style.left
x = x.gsub('px','')
if (x >= 200) {
$('dragtest').style.left = 400+'px';
}
if (x < 200) {
$('dragtest').style.left = 0+'px';
}
console.debug("Snapping to ", element.style.left, " (x was ", x, ")")
return true;
},
snap: function(x, y) {
ret_x = x
ret_y = y
if (x >= 400) {
ret_x = 400
}
if (x <= 0) {
ret_x = 0
}
return [ret_x,ret_y]
}
});
</script>
谢谢! 安德鲁
答案 0 :(得分:0)
为了您将来的参考(不能谷歌任何东西),从onEnd处理程序中取消注释console.debug()调用解决了这个问题。怪异。