পৃষ্ঠাটি স্ক্রোল করার সময় কীভাবে মানচিত্রটি প্যান করা থেকে রোধ করা যায়


10

যখন কোনও এইচটিএমএল পৃষ্ঠায় একটি মানচিত্র থাকে এবং ব্যবহারকারী তাদের মাউস হুইলটি ব্যবহার করে পৃষ্ঠাটি নীচে স্ক্রোল করে, যখন ব্যবহারকারীর মাউস মানচিত্রের উপর দিয়ে যায় পৃষ্ঠায় স্ক্রোলিং থামবে যখন মানচিত্র নিজেই প্যান হবে। ডেমো 1 দেখুন ।

আমি আর্কজিআইএস সার্ভার জেএস এপিআই 3.x ব্যবহার করে গুগল ম্যাপের জন্য একটি সহজ ব্যবহারযোগ্যতা ট্রিকটিতে বিস্তৃত আচরণটি অনুকরণ করতে চাই।

অর্থাৎ পৃষ্ঠায় স্ক্রোল করা উচিত যদি না ব্যবহারকারী স্পষ্টভাবে মানচিত্র, যে ক্ষেত্রে মধ্যে drags মানচিত্র প্যান উচিত

আচরণটি ডেমো 2-তে প্রায় সেখানে রয়েছে , যেখানে আপনার মাউস মানচিত্রের উপরে থাকলেও পৃষ্ঠাটি স্ক্রল করে।

map.on("load", function(){
  // Disable navigation by default, so scrolling the page doesn't scroll the map
  map.disableMapNavigation();

  // When the user tries to pan the map, allow this
  map.on('mouse-drag-start', function(){
    map.enableMapNavigation();
  });

  // Restore the no-scroll behaviour when the mouse leaves the map
  map.on('mouse-out', function(){
    map.disableMapNavigation();
  });
});

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

আমি চেষ্টা mouse-drag, mouse-drag-startএবং mouse-downঘটনা কিন্তু আচরণ সব ইভেন্টের জন্য একই।


1
আপনি ইভেন্টটি enableMapNavigationতত্ক্ষণাত প্রত্যাহার করার পরে চেষ্টা করতে পারেন mouse-drag-start। ইভেন্টগুলি নির্গত করার জন্য আমি একটি dojo ক্লাস হিসাবে dojotoolkit.org/references-guide/1.10/dojo/Evented.html পেয়েছি । সুতরাং আপনি মানচিত্রে টেনে আনুন (বা ক্লিক করুন) -> মানচিত্রের নেভিগেশন সক্ষম করুন -> একই ফাংশনে টেনে নিয়ে যাওয়ার ইভেন্টটি (কেবলমাত্র অনুরোধ করতে সক্ষম হতে পারে বা প্যারামগুলির প্রয়োজন হতে পারে) -> আপনার ব্যবসা টেনে আনতে পারেন। এটি মাউসটিকে নীচে নিতে এবং এটি দিয়ে টেনে আনতে সক্ষম হতে পারে। এই ইভেন্টগুলি বিভিন্ন অর্ডার, ইত্যাদিতে চেষ্টা করার চেষ্টা কেবলই হতে পারে
ব্র্যাঙ্কো

উত্তর:


2

ব্যবহার করে আপনি জন্য একটি কারণ দিতে না অপ / enableMapNavigation পদ্ধতি বদলে অপ / enableScrollWheelZoom পদ্ধতি। পরেরটি ব্যবহার করুন।


দুর্ভাগ্যক্রমে এটি কাজ করে না কারণ (1) স্ক্রোল হুইল ব্যবহার করার সময় মানচিত্রের ডিফল্ট আচরণটি প্যান করা (জুম করা নয়) হয় এবং (2) map.disablePan();স্ক্রোল হুইলে প্রয়োগ হয় না, কেবল টানুন-প্যান করুন: jsfiddle.net/g7npfuvn/16
স্টিফেন লিড

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

যদি আপনি মানটিকে মিথ্যাতে সেট করে থাকেন তবে আপনার ওএস + হার্ডওয়্যার নির্বিশেষে একই আচরণটি দেখা উচিত। মাউসমোভ ইভেন্টটি শোনার এবং স্মার্টনাভ বন্ধ করার শনাক্ত করার বিষয়ে বিবেচনা করুন, এখানে কী হয়েছে তার সমান ।
জ্যাক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.