হ্যাঁ, সহজ বোতামটিও একটি ভাল ধারণা। আমি সম্প্রতি এটি পুনর্বিবেচনা করেছি এবং আমি এই প্রয়োজনীয়তা জেএস মডিউল (এএমডি) তৈরি করেছি যা প্লেসমেন্টটিকে প্যারামিটারাইজ করতে দেয় (কেবল কোণে নয়, একটি সঠিক অবস্থানেও) এবং এটি এইচটিএমএল ডকুমেন্ট থেকে এইচটিএমএল বিষয়বস্তু নিয়ে আসে এবং তারপরে এটি ছিন্ন করে দেয় out ডিওএম এবং এটি নিয়ন্ত্রণে রাখে। আপনি চাইলে এটি সরল করতে পারেন।
এই জাতীয় কিছু চালানো এবং এটি একটি নতুন উদাহরণ তৈরি করবে:
var zoomIn = new Button(map);
zoomIn.setup('zControl', 'zoomInCtrl', Config.ZinTop, Config.ZinLeft, "zoomIn");
...
define(['jquery', 'leaflet', 'Config', 'Tools'], function ($, L, Config, Tools) {
function Button(Map, className, id, top, left) {
var self = this;
self.bbox = null;
self.Map= Map;
self.top = top;
self.left = left;
self.action = null;
self.setup = function (className, id, top, left, action) {
var button = L.control({
position: 'bottomleft'
});
self.action = action;
button.onAdd = function (map) {
var box = L.DomUtil.create('div', className);
box.innerHTML = $("#" + id).html();
$("#" + id).remove();
$(box).attr("id", id);
$(box).css("position", "fixed");
$(box).css("top", top);
$(box).css("left", left);
self.bbox = box;
return box;
};
self.Map.MAP.addControl(button);
}
self.hit = function (cmd) {
var rect = self.bbox.getBoundingClientRect();
var box = { top: rect.top, bottom: rect.bottom, left: rect.left, right: rect.right };
var target = Tools.outset(box, Config.ButtonOutset);
var hit = Tools.contains(Tools.cmdToPoint(cmd), target);
return hit;
}
self.pick = function (cmd) {
$(self.bbox).addClass("large");
}
self.unpick = function () {
$(self.bbox).removeClass("large");
}
self.invoke = function (cmd) {
self.Map[self.action]();
}
}
return Button;
});