Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 如何使用google maps v3制作可拖动的自定义覆盖图_Google Maps_Draggable_Overlay - Fatal编程技术网

Google maps 如何使用google maps v3制作可拖动的自定义覆盖图

Google maps 如何使用google maps v3制作可拖动的自定义覆盖图,google-maps,draggable,overlay,Google Maps,Draggable,Overlay,标记可以拖动,因此自定义覆盖也可以拖动 那么如何使自定义覆盖层可拖动 感谢我最近在一个类似的线程上提出了一个解决方案,该解决方案也非常适用于这个问题: 以下是工作示例: 以下是一些来源: 要使用jQuery UI使自定义覆盖本身可拖动,只需使覆盖的div对象可拖动,如下所示: CustomOverlay.prototype.onAdd = function() { var div = document.createElement("DIV");

标记可以拖动,因此自定义覆盖也可以拖动

那么如何使自定义覆盖层可拖动


感谢

我最近在一个类似的线程上提出了一个解决方案,该解决方案也非常适用于这个问题:

以下是工作示例:

以下是一些来源:

要使用jQuery UI使自定义覆盖本身可拖动,只需使覆盖的div对象可拖动,如下所示:

    CustomOverlay.prototype.onAdd = function()
    {
        var div = document.createElement("DIV");
        div.style.border = "none";
        div.style.borderWidth = "0px";
        div.style.position = "absolute";
        div.style.visibility = "visible";
        jQuery(div).draggable();   //Make the overlay itself draggable
        this.div = div;
        this.addPolygon(new google.maps.LatLng(46,0));
        this.getPanes().overlayLayer.appendChild(div);
    };

我最近在一个类似的问题上提出了一个解决方案,这个解决方案也非常适用于这个问题:

以下是工作示例:

以下是一些来源:

要使用jQuery UI使自定义覆盖本身可拖动,只需使覆盖的div对象可拖动,如下所示:

    CustomOverlay.prototype.onAdd = function()
    {
        var div = document.createElement("DIV");
        div.style.border = "none";
        div.style.borderWidth = "0px";
        div.style.position = "absolute";
        div.style.visibility = "visible";
        jQuery(div).draggable();   //Make the overlay itself draggable
        this.div = div;
        this.addPolygon(new google.maps.LatLng(46,0));
        this.getPanes().overlayLayer.appendChild(div);
    };

如果您使用自定义“OverlayView”,我发现添加可拖动对象“overlayMouseTarget”窗格将允许您捕获该对象上的鼠标事件,例如使用jQuery UI并将Dragable()应用于对象。

如果您使用自定义“OverlayView”,我发现添加可拖动对象“overlayMouseTarget”窗格将允许您捕获该对象上的鼠标事件,例如使用jQuery UI并应用DragTable()一个对象。

但是,这个演示在chrome和safari上不能很好地工作?为什么?Thanksmm这是一个有趣的行为,我没有检查-safari和chrome都使用WebKit渲染站点,所以他们都经历了相同的行为,拖动事件被创建的标记和google地图元素捕获-我确信有一个w可能需要调整一下,但目前我没有时间研究它-我可能会在几天内尝试更多地检查它,但是,这个演示在chrome和safari上不能很好地工作?为什么?谢谢这是一个有趣的行为,我没有检查-safari和chrome都使用WebKit来呈现网站,所以他们都体验到相同的behavior,拖动事件被创建的标记和谷歌地图元素捕获-我确信有一种方法可以对此进行调整,但目前我没有时间去研究它-我可能会在几天内尝试更多地检查它,尽管John的代码在2015年12月5日还没有运行。它正在通过更改来运行”overlayLayer”改为“overlayMouseTarget”,代码如下:John的代码截至2015年5月12日不起作用。将“overlayLayer”改为“overlayMouseTarget”,代码如下: