লিফলেট মাউস হুইল জুমটি কেবল মানচিত্রে ক্লিক করুন


19

আমি লিফলেট জাভাস্ক্রিপ্ট লাইব্রেরির সাথে কাজ করছি এবং আমার (HTML) নথিতে একটি (কার্যকরী) মানচিত্র সংযুক্ত করেছি। এটি পৃষ্ঠার মাঝখানে এবং আমি যখন আমার মাউস হুইলটি দিয়ে স্ক্রোল করছি এবং মানচিত্রে পৌঁছাচ্ছি, এটি স্বয়ংক্রিয়ভাবে মানচিত্রে জুম হয়ে যায়।

আমি মানচিত্রে না থামিয়ে পৃষ্ঠাটি স্ক্রোল করতে চাই। মানচিত্রে প্রথম ক্লিকের পরে কি চাকা জুমটি সক্রিয় করার কোনও উপায় আছে?

উত্তর:


27

এটি সহজ: scrollWheelZoom: falseবিকল্পের সাহায্যে এল. ম্যাপ তৈরি করুন, তারপরে একটি শ্রোতা যুক্ত করুন:

map.once('focus', function() { map.scrollWheelZoom.enable(); });

আপনার যদি জুমিং টগল করতে হয়:

map.on('click', function() {
  if (map.scrollWheelZoom.enabled()) {
    map.scrollWheelZoom.disable();
    }
    else {
    map.scrollWheelZoom.enable();
    }
  });

ধন্যবাদ :) আমি এর জন্য একটি মন্তব্য শুরু করেছি তবে খুব বড় পেয়েছি নীচে উত্তরটি রেখেছি ।
danwild

13

গৃহীত উত্তরের টগল উপাদানটির বিষয়ে আরও একটি মন্তব্য / উন্নতি , যা দুর্দান্ত (ধন্যবাদ)। কিন্তু।

মানচিত্রের সাথে ইন্টারঅ্যাক্ট করার সময়, অনেকগুলি ব্যবহারের ক্ষেত্রে ব্যবহারকারীকে তাদের কাজ সম্পাদনের জন্য মানচিত্রে ক্লিক করতে হবে, সুতরাং এটি:

map.on('click', function() {
  if (map.scrollWheelZoom.enabled()) {
    map.scrollWheelZoom.disable();
    }
    else {
    map.scrollWheelZoom.enable();
    }
  });

ব্যবহারকারী একবার মানচিত্রটি ব্যবহার শুরু করলে কিছু অপ্রত্যাশিত আচরণের ফলস্বরূপ।

আমি এমন কিছু পরামর্শ দেব যা ব্যবহারকারীকে আরও স্বজ্ঞাত মনে হতে পারে - মাউস স্ক্রোলিং অক্ষম করতে মানচিত্রটি ক্লিক করুন

উদাহরণস্বরূপ আপনার scrollWheelZoom: falseউপরে হিসাবে সেট করুন , তারপরে:

map.on('focus', function() { map.scrollWheelZoom.enable(); });
map.on('blur', function() { map.scrollWheelZoom.disable(); });

1
ব্যবহার focus/ blurস্পষ্টভাবে মানচিত্রের কার্যকারিতাটিকে আরও স্বজ্ঞাত করে তোলে।
ডাবলশার্প

একমত। ফোকাস / অস্পষ্ট পদ্ধতির দুর্দান্ত। ধন্যবাদ!
স্ট্রিংগার

দুর্দান্ত, তবে মানচিত্রটি পূর্ণ-স্ক্রিনে থাকলে এবং ব্যবহারকারী দ্রুত ধারাবাহিকতায় স্ক্রোল করে (এক সেকেন্ডের মধ্যে বেশ কয়েকটি দিকনির্দেশক পরিবর্তন করে) স্ক্রোল অক্ষম করার একটি মাধ্যম প্রয়োজন। এই বিভ্রান্ত-আপ-ডাউন স্ক্রোলিং ঘটে যখন তারা আটকে থাকে এবং এর উপরে বা নীচে সামগ্রীতে অ্যাক্সেসের জন্য পূর্ণ ব্রাউজার মানচিত্রটি ছেড়ে যেতে পারে না।
লরেন

6

লিফলেট.স্লিপ আপনার কাজকে সহজ করে তুলবে এবং এটি যথেষ্ট পরিমাণে কনফিগারযোগ্য

মূলত, এটি যখন স্ক্রোল ইভেন্টগুলির প্রয়োজন হয় না তখন তা বন্ধ করে দেয় এবং যখন আপনার মানচিত্রটি হয় তখন "জাগ্রত" করে।

আমি কোডটি পোষ্ট অনুভব করি, কিন্তু অক্ষমতা এটা অধিকার পেতে, তাই আপনি সম্ভবত পরলোক কিছু প্রয়োজন হবে না বলে মনে হচ্ছে <script src="path/to/leaflet-sleep.js"></script>এবং আপনার মত একটি মানচিত্র আছে এই


0

আপনি কেবল সেই 3 লাইন দ্বারা এটি করতে পারেন:

map.scrollWheelZoom.disable();
map.on('focus', () => { map.scrollWheelZoom.enable(); });
map.on('blur', () => { map.scrollWheelZoom.disable(); });

বা:

map.scrollWheelZoom.disable();
this.map.on('click', () => { this.map.scrollWheelZoom.enable();});
this.map.on('mouseout', () => { this.map.scrollWheelZoom.disable();});
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.