লিফলেট ইন্টারঅ্যাকশন অস্থায়ীভাবে অক্ষম করুন


20

লিফলেট.জেএস-এ মানচিত্রের দৃশ্য দেখার জন্য আমি কীভাবে সাময়িকভাবে অক্ষম করতে পারি / অঙ্কন করতে পারি তাই অনেক চেষ্টা করেও ভাগ্য ছাড়াই। এটি অস্থায়ী করা গুরুত্বপূর্ণ এবং আমার আবার সক্ষম করার জন্য বিকল্পও প্রয়োজন।


সিএসএস দিয়ে এটি কীভাবে করবেন কোনও ধারণা? মিডিয়া ক্যোয়ারী ব্যবহার করে আমাকে মোবাইলে টেনে আনতে অক্ষম করতে হবে। আমি এর উপরে একটি স্বচ্ছ স্তর সেট করার চেষ্টা করেছি তবে এটি সেই স্তরটি দিয়েই ক্লিক করে। এমনকি আমি পয়েন্টার-ইভেন্টগুলির সাথে খেলেছি তবে ভাগ্য নেই। যথাযথ পদ্ধতির সম্ভাবনা সম্ভবত ওয়েবেকিট-ইউজার-ড্র্যাগ ব্যবহারের মাধ্যমে: কোনওটি নয়; তবে আমি এটি প্রয়োগ করেছি এমন প্রতিটি উপাদানগুলিতে যা আমি খুঁজে পেতে পারি এবং এখনও ভাগ্যবান হয় না। ধন্যবাদ।

আমি নীচে এই প্রশ্নের উত্তর ।
হাইতবিরললেম

উত্তর:


33

আপনি করতে চান (আপনার মানচিত্র কল কল্পনা করে map)

map.dragging.disable();
map.touchZoom.disable();
map.doubleClickZoom.disable();
map.scrollWheelZoom.disable();
map.boxZoom.disable();
map.keyboard.disable();
if (map.tap) map.tap.disable();
document.getElementById('map').style.cursor='default';

এটি আবার চালু করুন

map.dragging.enable();
map.touchZoom.enable();
map.doubleClickZoom.enable();
map.scrollWheelZoom.enable();
map.boxZoom.enable();
map.keyboard.enable();
if (map.tap) map.tap.enable();
document.getElementById('map').style.cursor='grab';

2
আপনাকে অনেক ধন্যবাদ. আমি খুব ভুল দেখছিলাম _ ভেবেছিলাম এটি করার জন্য অবশ্যই একটি পদ্ধতি আছে।
বার্নহার্ড

1
এই সমাধানটিতে কিছু সমস্যা রয়েছে: মাউস কার্সারটি এখনও একটি হাত। স্পর্শ অঙ্গভঙ্গি দিয়ে পৃষ্ঠা স্ক্রোলিং মানচিত্রে সম্ভব নয়। যখন পপওভারটি খোলার সাথে সাথে মানচিত্রটি সরানো হয় তখন তা আর ফিরে আসে না।
নেটঅ্যাকশন

@ নেটঅ্যাকশন, আপনার কি স্পর্শ অঙ্গভঙ্গি স্ক্রোলিং ইস্যুটির সমাধান আছে?
ক্রিস ফ্রেমজেন

@ ক্রিসফ্রেমজেন: map.dragging.disable (); মানচিত্রটি স্ক্রোলিং অঙ্গভঙ্গিগুলি আনা বন্ধ করে এমন কৌশলটি করে।
নেটঅ্যাকশন

কেবলমাত্র জুমআইন অক্ষম করার কোনও উপায় আছে?
হাওয়ার্ড.ড্রি

5

আপনি যদি প্রতিটি হ্যান্ডলারটি ম্যানুয়ালি অক্ষম করতে না চান তবে আপনি সেগুলির উপরে লুপ করতে পারেন এবং তাদের অক্ষম / সক্ষম করতে পারেন।

অক্ষম

map._handlers.forEach(function(handler) {
    handler.disable();

});

সক্ষম করা

map._handlers.forEach(function(handler) {
    handler.enable();

});

সাবধান হোন যে সর্বজনীন বৈশিষ্ট্য (_ হ্যান্ডলার) ব্যবহার করা আপনার কোডটিতে ত্রুটি সৃষ্টি করতে পারে এমনকি লিফলেট প্যাচ সংস্করণে পরিবর্তিত হতে পারে কারণ এটি অপরিবর্তিত থাকার গ্যারান্টি নেই। বৈশিষ্ট্য অনুরোধ লিফলেটে জমা দেওয়া উচিত;)
লাকীলুক

0

আমি মনে করি, আপনি কোনও সহায়িকার পাত্রে আপনার মানচিত্রটি গুটিয়ে রাখতে পারেন এবং আপনি এটি সাধারণ সিএসএস শ্রেণির মতো অক্ষম করতে পারেন is-locked

আমি এখানে যা বলছি তা এখানে:

.map-container {
  position: relative;
}

.map-container .map {
  position: relative;
  z-index: 1;
}

.map-container.is-locked:after {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;

  content: "";
  display: block;
}

আমি আসা করি এটা সাহায্য করবে.

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.