Js 鼠标拖拽div改变其大小
2013-03-19 11:22
585 查看
想让div实现拖拽改变大小功能,类似于soso地图的看街景时地图可以拖拽等功能
拖拽div
拖拽div
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <div id="StreetOverviewFrame" tabindex="-1" style="position: absolute; right: 10px; bottom: 10px; z-index: 200; overflow: hidden; visibility: visible; width: 771px; height: 150px;background-color:Red;"> <div id="mapContainer" style="position: absolute; width: 100%; height: 100%; top: 0px; left: 0px;"> </div> <div id="tz" style="position: absolute; left: 1px; top: 1px; width: 28px; height: 28px; cursor: se-resize; z-index: 200001; background-image: url("about:blank");"> <div title="拖动调整大小" style="position: absolute; left: 0px; top: 0px; width: 27px; height: 20px; cursor: se-resize; z-index: 100; background-image: url("http://s.map.soso.com/themes/default/img/street/overview_control.png?v=v3.3.805"); background-position: 0px 0px;"> </div> </div> </div> <script type="text/javascript" src="/Js/mobile/jquery.js"></script> <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.4"></script> <script type="text/javascript"> var obj = null; var divObj = null; var deltaX, deltaY,_startX,_startY; $(document).ready(function () { obj = document.getElementById("tz"); divObj = document.getElementById("StreetOverviewFrame"); obj.addEventListener('mousedown', function (event) { //将鼠标位置转为文档坐标 var scroll = getScrollOffsets(); var startX = event.clientX + scroll.x; var startY = event.clientY + scroll.y; _startX = parseInt(startX); _startY = parseInt(startY); if (document.addEventListener) { document.addEventListener("mousemove", moveHandler, true); document.addEventListener("mouseup", upHandler, true); } else if (document.attachEvent) { obj.setCapture(); obj.attachEvent("onlosecapeture", upHandler); obj.attachEvent("onmouseup", upHandler); obj.attachEvent("onmousemove", moveHandler); } //处理了这个事件,不让任何其它元素看到它 if (event.stopPropagation) event.stopPropagation(); //标准模型 else event.cancelBubble = true; //现在阻止任何默认操作 if (event.preventDefault) event.preventDefault(); else event.returnValue = false; }); MapInIt(); $("#StreetOverviewFrame").mouseover(function () { navControl.show(); }).mouseout(function () { navControl.hide(); }); }); function moveHandler(e) { if (!e) e = window.event; //ie事件模型 var startX =parseInt(e.clientX); var startY =parseInt(e.clientY); deltaX = startX - _startX; deltaY = startY - _startY; if (_startX > startX) { divObj.style.width = ($("#StreetOverviewFrame").width() - deltaX) + "px"; } else { divObj.style.width = ($("#StreetOverviewFrame").width() - deltaX) + "px"; } if (_startY > startY) { divObj.style.height = ($("#StreetOverviewFrame").height() - deltaY) + "px"; } else { divObj.style.height = ($("#StreetOverviewFrame").height() - deltaY) + "px"; } _startX = startX; _startY = startY; if (e.stopPropagation) e.stopPropagation(); //标准模型 else e.cancelBubble = true; } function upHandler(e) { if (!e) e = window.event; //ie事件模型 //注销捕获事件处理程序 if (document.removeEventListener) { document.removeEventListener("mousemove", moveHandler, true); document.removeEventListener("mouseup", upHandler, true); } else if (document.detachEvent) { obj.detachEvent("onlosecapeture", upHandler); obj.detachEvent("onmouseup", upHandler); obj.detachEvent("onmousemove", moveHandler); obj.releaseCapture(); } if (e.stopPropagation) e.stopPropagation(); //标准模型 else e.cancelBubble = true; } //以一个对象的x和y属性的方式返回滚动条的偏移量 function getScrollOffsets(w) { // 使用指定的窗口,如果不带参数则使用当前窗口 w = w || window; // 除了IE8及更早的版本以外,其它浏览器版本都能用 if (w.pageXOffset != null) return { x: w.pageXOffset, y: w.pageYOffset }; // 对标准模式下的IE(或任何浏览器) var d = w.document; if (document.compatMode == "CSS1Compat") return { x: d.documentElement.scrollLeft, y: d.documentElement.scrollTop }; //对怪异模式下的浏览器 return { x: d.body.scrollLeft, y: d.body.scrollTop }; } var navControl = null; //初始化地图 function MapInIt() { map = new BMap.Map("mapContainer"); var point = new BMap.Point(121.1234, 31.1234); map.centerAndZoom(point, 12); navControl = new BMap.NavigationControl(); map.addControl(navControl); //添加导航条 map.addControl(new BMap.ScaleControl()); //添加比例尺控件 //地图惯性拖拽 map.enableInertialDragging(); //地图滚轮 map.enableScrollWheelZoom(); } </script> </body> </html>
相关文章推荐
- 拖拽鼠标来改变DIV层的大小
- 鼠标拖拽改变div的大小
- js通过八个点 拖动改变div大小的实现方法
- js通过八个点 拖动改变div大小的实现方法
- js实现鼠标拖拽div
- 想用JS写一段鼠标拖拽调整图片大小的代码(未完)
- js改变图片大小——把鼠标放图片上,滚动鼠标滚轮.
- js拖拽之二:实现拖动元素上下左右改变元素大小
- jquery 鼠标拖动改变div大小
- 点滴积累【JS】---JS小功能(onmousedown实现鼠标拖拽div移动)
- 边框处拖动鼠标改变div大小
- 拖拽改变div的大小
- Js - 可拖动可改变大小div的实现代码
- JS实现拖动div改变大小
- js通过八个点 拖动改变div大小的实现方法
- js通过八个点 拖动改变div大小
- 鼠标拖动改变div容器的大小
- 简洁的滚动鼠标 改变图片大小js
- 如何重写PictureBox的OnPaint方法绘制矩形,并实现拖动改变矩形大小,鼠标悬停时提示拖拽方向(二)
- js拖拽之四:右下角拖拽改变元素大小