默认浏览器的拖放功能

时间:2012-07-19 16:49:07

标签: javascript jquery html

我有一张图片,我希望能够通过在页面上拖动来移动。据我所知,它应该默认在每个浏览器中工作,但由于某种原因它不适合我。 这是我的页面:

<div style="position:relative;width:1000px; height:900px;border:solid;z-index:30;float:left">
    <div id="image-helper" style="position:absolute;width:1000px; height:900px;z-index:20;float:left" >
        <img id="image" src="images/test.jpg" style="width:500px;height:400px;cursor:pointer;z-index:10;" alt=""/>
    </div>
    </div>

我是否想念css中的某些内容?

由于

2 个答案:

答案 0 :(得分:0)

不,你不能仅仅通过这样做来移动图像。您必须侦听鼠标事件以更新javascript中的图像位置。

更具体地说,你必须抓住

这是一个非常原始的演示:http://jsfiddle.net/dystroy/CvVte/

CSS:

img {
 position: fixed;   
}​

Javascript:

var mouseIsDown = false;
$('img').mousedown(function(e){
    mouseIsDown = true;
    pos = $(this).offset();
    e.preventDefault();
});
$(document).mousemove(function(e){
    if (!mouseIsDown) return;
    $('img').css({left:e.pageX, top:e.pageY});
 }).mouseup(function(){
     mouseIsDown = false;
 });​

我会让你最终确定,以便更精确并使用开始拖动位置(提示:使用offset)。您还可以在鼠标按钮启动时删除mousemove事件处理程序。

答案 1 :(得分:0)

要拖放你需要javascript,在jquery中,你可以使用ui拖放:http://jqueryui.com/demos/draggable/