一款前端图片缩放、数据编辑工具-gDBox.js
2019-01-18 16:56
218 查看
github地址: https://github.com/dingyang9642/gDBox
导读:
在前端开发过程中难免遇到针对图片的缩放平移;以及在图片上进行矢量数据、文本、标注的展示;如果你有上面的任何需求,恭喜你,找到组织了.... 在此背景下,gDBox.js出生了
gDBox.js
说明:旨在解决图片浏览(平移、缩放)、矢量数据绘制及标注、文本数据展示等系列功能于一体的简单易用组件
版本更新记录
1.0.0 首次发布
1.0.1 示例添加、参数释疑
1.0.5 举行绘制编辑
示例
get started(Demo/img文件夹)
html\css\js部分
// 样式声明 <style> #hello-map { width: 500px; // 必须 height: 400px; // 必须 position: relative; // 必须 border: 1px solid red; cursor: pointer; } </style> // 容器声明 <div id="hello-map"></div> // js声明-容器声明(参数:zoom: 缩放比; {cx: cy:}:初始中心点位置;zoomMax、zoomMin:缩放的比例限制) let gMap = new gDBox.Map('hello-map', {zoom: 650, cx: 0, cy: 0, zoomMax: 650 * 10, zoomMin: 650 / 10}); // 图片层实例\添加(参数:img: 图片路径,支持base64; {w: 650, h: 445}:图片大小) let gImageLayer = new gDBox.Layer.Image('img', 'http://pic2.ooopic.com/12/29/07/36b1OOOPICa1.jpg', {w: 650, h: 445}, {zIndex: 1}); gMap.addLayer(gImageLayer); ***至此、已完成首个简单的hello-map的使用***
矢量数据(Feture)展示(Demo/feature文件夹)
// 常用样式声明 const gFetureStyle = new gDBox.Style({strokeColor: '#0000FF'}); // 矢量层实例\添加 let gFeatureLayer = new gDBox.Layer.Feature('featureLayer', {zIndex: 2, transparent: true}); gMap.addLayer(gFeatureLayer); // 矢量要素实例\添加 const fea = new gDBox.Feature.Polygon('id', [ {x: 10, y: 10}, {x: 50, y: 10}, {x: 40, y: 50}, {x: 20, y: 60}, {x: 10, y: 10} ], {name: '中国'}, gFetureStyle); gFeatureLayer.addFeature(fea);
文本数据(Text)展示(Demo/text文件夹)
// 常用样式声明 const gTextStyle = new gDBox.Style({strokeColor: '#0000FF'}); // 文本层实例\添加 let gTextLayer = new gDBox.Layer.Text('textLayer', {zIndex: 2}); gMap.addLayer(gTextLayer); // 文本要素实例\添加 const text = new gDBox.Text('id', { pos: {x: 100, y: 100}, offset: {x: 0, y: 0}, width: 100, // maxwidth text: '中国' }, gTextStyle); gTextLayer.addText(text);
标注数据(Marker)展示(Demo/marker文件夹)
// 不需要声明markerLayer标注图层,有且只有一个markerLayer,可通过gMap.mLayer来获取 // marker对象实例\添加 const marker = new gDBox.Marker('name-中国', { src: './marker.png', x: 0, y: 0, offset: {x: -32, y: -32} }); // 注册监听事件删除标注 marker.regEvent('click', function () { gMap.mLayer.removeMarker(this); }); gMap.mLayer.addMarker(marker);
hover事件监听(Demo/hover文件夹)
矢量图形默认自带hover效果(在原图形基础之上加宽边框显示)
矢量数据绘制、编辑——矩形(Demo/drawRect文件夹)
// 常用样式声明 const gFetureStyle = new gDBox.Style({strokeColor: '#0000FF'}); // 设置当前操作模式为‘drawRect’, 浏览状态对应mode为'pan' gMap.setMode('drawRect', gFetureStyle); // 矢量层实例\添加 let gFeatureLayer = new gDBox.Layer.Feature('featureLayer', {zIndex: 2, transparent: true}); gMap.addLayer(gFeatureLayer); // 绘制完成事件监听 gMap.events.on('geometryDrawDone', function (type, points) { // 生成元素唯一标志(时间戳) const timestamp = new Date().getTime(); // 元素添加展示 let fea = new gDBox.Feature.Polygon(`feature-${timestamp}`, points, { name: '中国' }, gFetureStyle); gFeatureLayer.addFeature(fea); }); // 因为自带编辑功能,故需要以下代码 gMap.events.on('geometryEditDone', (type, activeFeature, points) => { activeFeature.update({points}); activeFeature.show(); });
矢量数据编辑——矩形(Demo/editRect文件夹)
// 示例同drawRect,但此处添加‘编辑中’事件监听,供开发者在图形编辑过程中进行自定义事件 gMap.events.on('geometryEditing', function (type, feature, points) { if (!gMap.mLayer) return; const marker = gMap.mLayer.getMarkerById(`marker-${feature.id}`); if (!marker) return; const bounds = gDBox.Util.getBounds(points); const leftTopPoint = bounds[0]; // 边界坐上角坐标 marker.update({x: leftTopPoint.x, y: leftTopPoint.y}); });
如有其他需要,请联系我dingyang9642@126.com
相关文章推荐
- JS前端上传图片、压缩、并且处理旋转问题,生成base64数据
- 在线的图片、js、css压缩优化工具介绍(配合小强视频 前端性能分析精要)
- Js处理数据——前端分页工具
- 在线的图片、js、css压缩优化工具介绍(配合小强视频 前端性能分析精要)
- 在线的图片、js、css压缩优化工具介绍(配合小强视频 前端性能分析精要)
- js前端数据验证JS工具
- js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符
- KityMinder Editor ========== ## 简介 KityMinder Editor 是一款强大、简洁、体验优秀的脑图编辑工具,适合用于编辑树/图/网等结构的数据。
- JS前端上传图片、压缩、并且处理旋转问题,生成base64数据
- 基于nodeJs express 框架的图片上传和编辑(引用美图编辑工具)上传小示例
- Js处理数据——前端分页工具
- 分享一款JS工具:st.js - 从 Object 中快速提取数据或转化成另一个 Object
- Node.js前端自动化工具:gulp
- JS控制图片等比例缩放的示例代码
- Js实现图片等比缩放
- js按比例缩放图片且垂直居中显示图片
- Android PhotoView :一款扩展自ImageView 支持通过单点/多点触摸来进行图片缩放的智能控件。
- 推荐一款js写的遮罩数据加载插件showLoading
- js 文本框监听粘贴事件,获取粘贴板上的图片数据
- JS 图片的缩放