javascript组件——可拖拽模态框
来源:互联网 发布:jbl蓝牙音箱 知乎 编辑:程序博客网 时间:2024/06/05 14:28
可拖拽模态框,根据项目需求在模态框中生成一个map。后续将抽象出contentArea部分
var Shamen = (function(global,$,echarts){ var defaults = { dragHandle:null, } var html = { ovl : '<div class="modal-overlay">' + '<div id="modal-content-dialog" class="modal-content"></div>' + '</div>', titleArea : '<div class="title-area">' + '</div>', contentArea: '<div id="generateChartArea">' + '</div>', isOk: '<button>确定</button>' } function Shamen(rootEl,options){ this.options = $.extend({},defaults,options); var css = {cursor: this.options.cursor || 'move'}; this.rootEl = rootEl; this.$rootEl = $(this.rootEl); this.$dragHandle = (this.options.dragHandle) ? $(this.options.dragHandle) : $("#modal-content-dialog"); this.init(); this.generateChart(this.options.chartOptions); this.bind(); this.originDragHandleCursor = this.$dragHandle.css('cursor'); this.$dragHandle.css(css); } Shamen.prototype = { init:function(){ $(html.ovl).appendTo(this.$rootEl); $(html.titleArea).html((this.options.title)? this.options.title : '所选类型在各区的分布').appendTo("#modal-content-dialog"); $(html.contentArea).css({height:'85%'}).appendTo("#modal-content-dialog"); $(html.isOk).css({ 'margin-left':'10px', 'margin-top':'-10px', 'z-index':1000 }).appendTo("#modal-content-dialog"); console.log('create ok'); }, generateChart: function(optionChart){ var options = $.extend({},optionChart); var chart = echarts.init(document.getElementById("generateChartArea")); $.get('resources/json/beijing.json',function(beijingJson){ echarts.registerMap('Beijing', beijingJson, { }); chart.setOption(options); }); }, bind: function(){ var selector = this.options.dragHandle || null; var self = this; var $el = $("#modal-content-dialog"); $el.on('mousedown.drag',selector,function(e){ var mousePos = { x: e.pageX, y: e.pageY }; $(window).on('mousemove.drag',selector,function(e){ var diff = { xDiff: e.pageX - mousePos.x, yDiff: e.pageY - mousePos.y }; var elPos = { top: document.getElementById('modal-content-dialog').offsetTop, left: document.getElementById('modal-content-dialog').offsetLeft }; $el.css({ top: elPos.top + diff.yDiff, left: elPos.left + diff.xDiff }); mousePos = { x: e.pageX, y: e.pageY }; }); }); this.$rootEl.on('mouseup.drag',function(e){ $(window).off('mousemove.drag'); }); $("button").click(function(){ $(".modal-overlay").remove(); }); } } return Shamen;})(window,jQuery,echarts);
0 0
- javascript组件——可拖拽模态框
- javascript对话框组件——artDialog
- JavaScript组件化开发实战——TodoMVC
- javascript组件——按thead排序的table
- ArcGIS For JavaScript API Bookmark Widget(书签组件)————(二十一)
- ArcGIS For JavaScript API Bookmark Widget(书签组件)————(二十一)
- JavaScript File API应用——如何设计和实现Ajax文件上传组件
- JavaScript面向对象的程序之拖拽组件的开发Demo——xyp_hf
- JavaScript面向对象的程序之弹框组件的开发Demo——xyp_hf
- 纯JavaScript表格组件
- JavaScript 访问 JSF 组件
- JavaScript 访问 JSF 组件
- JavaScript组件之JQuery
- javascript:组件ID问题
- Web开发JavaScript组件
- JavaScript报表组件库
- JavaScript组件之JQuery
- JavaScript倒计时组件
- http状态响应码
- android shape的使用
- Java 利用poi 导出Excel
- opencv3.0 Mat元素求和
- Java transient关键字
- javascript组件——可拖拽模态框
- 字符串处理
- API的使用——监听的状态参数
- 漫画算法-----链表是否有环
- Jdk 8下运行Android-studio或者Eclipse时 ignoring option MaxPermSize=350m; s support was removed in 8.0的探讨
- 无名管道和有名管道区别
- Android 常用Manager、CustomView、Style、drawable、animation导图
- Git --基本工作流程
- 详解php-fpm.conf各配置含义