এম্বেড থাকা Google মানচিত্রে মাউস স্ক্রোল হুইল জুম অক্ষম করুন


198

আমি এমন একটি ওয়ার্ডপ্রেস সাইটে কাজ করছি যেখানে লেখকরা সাধারণত বেশিরভাগ পোস্টে আইফ্রেম ব্যবহার করে গুগল মানচিত্র এম্বেড করে থাকেন।

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


32
সেট মানচিত্র বিকল্প scrollwheelথেকে false
এন্টু জুরকোভিć

বা এটি সরাসরি জেএসের মাধ্যমে অক্ষম করুন: map.disableScrolWheelZoom ();
Th3Alchemist

4
আমি ভয় পাচ্ছি তুমি পারবে না সুরক্ষা-বিধিনিষেধের কারণে মানচিত্রে কোনও স্ক্রিপ্টিং-অ্যাক্সেস নেই এবং এএফএইকি কোনও ইউআরএল-প্যারামিটার উপলব্ধ নেই যা আপনাকে এটি অক্ষম করার বিকল্প দেয়।
ডাঃমোল

ঠিক একই সমস্যা আছে। Iframe মানচিত্রে এম্বেড থাকা মাউস স্ক্রোল ইভেন্টগুলি অক্ষম করতে চান। এটি এখনও খুঁজে পাইনি।
গ্রজেগোর্জ

7
এটি এম্বেড করা মানচিত্র, নিশ্চিত না কেন লোকেরা জেএস লাইব্রেরি মানচিত্র ব্যবহারের সমাধান পোস্ট করে
zenderwar

উত্তর:


255

আমার একই সমস্যা ছিল: পৃষ্ঠাটি স্ক্রোল করার পরে পয়েন্টারটি মানচিত্রের উপরে পরিণত হয়, পৃষ্ঠাটি স্ক্রোলিং চালিয়ে যাওয়ার পরিবর্তে মানচিত্রটি জুম / ইন / আউট করা শুরু করে। :(

সুতরাং আমি প্রতিটি জিএম্যাপ সন্নিবেশের ঠিক আগে এটি divদিয়ে একটি সমাধান করেছি , দেখুন:.overlayiframe

<html>
  <div class="overlay" onClick="style.pointerEvents='none'"></div>
  <iframe src="https://mapsengine.google.com/map/embed?mid=some_map_id" width="640" height="480"></iframe>
</html>

আমার সিএসএসে আমি ক্লাসটি তৈরি করেছি:

.overlay {
   background:transparent; 
   position:relative; 
   width:640px;
   height:480px; /* your iframe height */
   top:480px;  /* your iframe height */
   margin-top:-480px;  /* your iframe height */
}

ডিভ মানচিত্রটি coverেকে দেবে, পয়েন্টার ইভেন্টগুলিতে এটি পেতে আটকাবে। আপনি যদি ডিভিটিতে ক্লিক করেন তবে এটি পুনরায় ম্যাপটি সক্রিয়করণের সাথে সম্পর্কিত ইভেন্টগুলিতে স্বচ্ছ হয়ে ওঠে!

আমি আশা করি আপনি সাহায্য পাবেন :)


9
এটি একটি দুর্দান্ত সমাধান। আমার ক্ষেত্রে z-indexএটি সঠিকভাবে ওভারলে করার জন্য আমাকে একটি নির্দিষ্ট করে দিতে হয়েছিল, যদিও।
আরসি নিল

1
আইএমও এই সমস্যার সর্বোত্তম সমাধান! আমরা দীর্ঘদিন ধরে এই সমস্যার মুখোমুখি হয়েছি এবং এটি একটি সুন্দর এবং সুন্দর পরিষ্কার পুনরায় ব্যবহারযোগ্য স্থির করার জন্য তৈরি করেছে!
দিয়েগো প্যালাদিনো

11
এটি উত্তর হিসাবে চিহ্নিত করা উচিত, যদিও ওভারলেটিকে পিতামাত্রে ধারক হিসাবে একেবারে অবস্থিত হিসাবে সেট করা আরও সহজ এবং তারপরে মাত্র 100% উচ্চতা 100% প্রস্থের জন্য ব্যাকগ্রাউন্ড সম্পত্তিও লাগবে না।
এইচচার্জ

3
আমি এটিকে স্বয়ংক্রিয় করতে একটি খুব সহজ jQuery প্লাগইন তৈরি করেছি। এটি github.com/diazemiliano/mapScrolOff
এমিলিয়ানো

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

136

আমি এই আলোচনায় প্রথম উত্তরটি চেষ্টা করেছিলাম এবং এটি আমার পক্ষে কাজ করছে না তা আমি যেভাবেই করি না কেন আমি নিজের সমাধান নিয়ে এসেছি:

কোনও ক্লাসের সাথে iframe মোড়ানো (এই উদাহরণে ম্যাপস) এবং আদর্শভাবে এম্বেসডস্পেসিভলি কোড: http://ebrebonsively.com/ - আইফ্রেমের সিএসএস পরিবর্তন করুন pointer-events: noneএবং তারপরে jQuery এর ক্লিক ফাংশনটি প্যারেন্ট উপাদানটিতে ব্যবহার করুন আপনি আইফ্রেমে সিএসএস পরিবর্তন করতে পারবেন প্রতিpointer-events:auto

এইচটিএমএল

<div class='embed-container maps'>
    <iframe width='600' height='450' frameborder='0' src='http://foo.com'></iframe>
</div>

সিএসএস

.maps iframe{
    pointer-events: none;
}

jQuery এর

$('.maps').click(function () {
    $('.maps iframe').css("pointer-events", "auto");
});

$( ".maps" ).mouseleave(function() {
  $('.maps iframe').css("pointer-events", "none"); 
});

আমি নিশ্চিত যে জাভাস্ক্রিপ্টের এটি করার একমাত্র উপায় আছে, যদি কেউ এই বোধ মুক্ত করে যোগ করতে চান।

পয়েন্টার-ইভেন্টগুলি পুনরায় সক্রিয় করার জাভাস্ক্রিপ্টের উপায়টি বেশ সহজ। আইফ্রেমে কেবল একটি আইডি দিন (অর্থাত্ "iframe"), তারপরে সিন্ডায়নার ডিভের জন্য একটি অন্লিক ইভেন্ট প্রয়োগ করুন:

onclick="document.getElementById('iframe').style.pointerEvents= 'auto'"

<div class="maps" onclick="document.getElementById('iframe').style.pointerEvents= 'auto'">
   <iframe id="iframe" src="" width="100%" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>
</div>

4
"এপিআই ছাড়াই" সমাধানের জন্য ধন্যবাদ +1
গুরুতর নির্যাতন

21
মাউস ছাড়লে আপনি এটিকে তার মূল অবস্থায় ফিরিয়ে আনতেও এটি যোগ করতে পারেন: $ ('। মানচিত্র') mouse ('। মানচিত্র') mouse কিছুই নয় ");});
লুইস

5
কেবল একটি নোট: ব্যবহার pointer-events: noneমানচিত্রের সাথে কোনও ক্রিয়াকলাপ রোধ করবে (টানা, নেভিগেশন, ক্লিকগুলি, ইত্যাদি)।
লুব্রে

@ লুব্রে হ্যাঁ, এটি বোঝা যায়, এজন্য এটিকে অটোতে পরিবর্তন করতে jQuery ক্লিক ফাংশন রয়েছে।
নাথানিয়েল্পেরালেস

1
দুর্দান্ত উত্তর! আপনি নিশ্চিত করতে চান যে আপনি সঠিক মানচিত্রটি সক্ষম করছেন এবং সমস্ত পৃষ্ঠায় নয়$(this).find('iframe').css("pointer-events", "auto");
টম প্রটস

54

আমি @nathanielperales সমাধান প্রসারিত করেছি।

আচরণের বর্ণনার নীচে:

  • স্ক্রোল সক্ষম করতে মানচিত্র ক্লিক করুন
  • যখন মাউস মানচিত্র ছেড়ে যায়, স্ক্রোলটি অক্ষম করে

জাভাস্ক্রিপ্ট কোডের নীচে:

// Disable scroll zooming and bind back the click event
var onMapMouseleaveHandler = function (event) {
  var that = $(this);

  that.on('click', onMapClickHandler);
  that.off('mouseleave', onMapMouseleaveHandler);
  that.find('iframe').css("pointer-events", "none");
}

var onMapClickHandler = function (event) {
  var that = $(this);

  // Disable the click handler until the user leaves the map area
  that.off('click', onMapClickHandler);

  // Enable scrolling zoom
  that.find('iframe').css("pointer-events", "auto");

  // Handle the mouse leave event
  that.on('mouseleave', onMapMouseleaveHandler);
}

// Enable map zooming with mouse scroll when the user clicks the map
$('.maps.embed-container').on('click', onMapClickHandler);

এবং এখানে একটি jsFizz উদাহরণ


1
এই স্নিপড জন্য আপনাকে ধন্যবাদ। আমি শেষের সাথে নিম্নলিখিত সংযোজন সহ এটি ব্যবহার করেছি:$('.maps.embed-container').find('iframe').css("pointer-events", "none");
লারম্যান

কোডের জন্য ধন্যবাদ। এটি আসলে আমার একটি আলাদা সমস্যা সমাধান করেছিল। আমি গুগল স্প্রেডশিট থেকে কিছু চার্ট এম্বেড করেছি এবং মাউস হুইল দিয়ে স্ক্রোলিং কিছু কারণে পুরো পৃষ্ঠার জন্য কাজ করা বন্ধ করে দিয়েছে। আপনার কোড মাউস হুইল দিয়ে আবার স্ক্রোল করে তোলে made আবার ধন্যবাদ.
স্কট এম স্টলজ

31

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

এইচটিএমএল

<div class='embed-container maps'>
    <iframe width='600' height='450' frameborder='0' src='http://foo.com'>  </iframe>
</div>

সিএসএস

.maps iframe{
    pointer-events: none;
}

jQuery এর

$('.maps').click(function () {
    $('.maps iframe').css("pointer-events", "auto");
});

$( ".maps" ).mouseleave(function() {
  $('.maps iframe').css("pointer-events", "none"); 
});

উন্নতি - অভিযোজিত - পরাভূত

এবং এখানে একটি jsFizz উদাহরণ।


1
সবচেয়ে পরিষ্কার সমাধান। নিস! তবে সমস্ত সমাধানে একটি সমস্যা রয়েছে: ব্যবহারকারীদের দুবার মানচিত্রে ক্লিক করতে হবে। কীভাবে অবিলম্বে ক্লিকের মধ্য দিয়ে যেতে পারেন, সুতরাং এটি কেবল একটি ক্লিক নেয়?
লরেন

1
হতে পারে আপনি পাল্টানোর দ্বারা ক্লিক এড়াতে পারে pointer-events: autoমানচিত্র উপর একটি নির্দিষ্ট সময়কাল জন্য মাউস পর কেবল "hovered" হয়েছে? যেমন মাউস ইফ্রেমে প্রবেশ করার সময় টাইমার শুরু করুন এবং মাউস ছাড়ার পরে এটি পুনরায় সেট করুন। যদি টাইমার এক্স মিলিসেকেন্ডে যায়, স্যুইচ করুন pointer-events: auto। এবং যখনই মাউস ইফ্রামটি ছেড়ে যায় আপনি কেবল ফিরে যেতে পারেন pointer-events: none
স্টুচাম্পবেল

আমি ক্লিকের পরিবর্তে dblclick ব্যবহার করতে পছন্দ করি, যাইহোক ভাল সমাধান।
মোক্সেট খান

25

হ্যাঁ এটি বেশ সহজ। আমিও একই ধরণের সমস্যার মুখোমুখি হয়েছি। কেবল সিএসএস সম্পত্তি "পয়েন্টার-ইভেন্টস" ইফ্রেমে ডিভের সাথে যুক্ত করুন এবং এটি 'কিছুই নয়' তে সেট করুন ।

উদাহরণ: <iframe শৈলী = "পয়েন্টার-ইভেন্টস: কিছুই নয়" src = ........>

সাইডনোট: এই ফিক্সটি মানচিত্রে মাউসের অন্যান্য সমস্ত ইভেন্ট অক্ষম করবে। এটি আমার পক্ষে কাজ করেছে যেহেতু আমাদের মানচিত্রে কোনও ব্যবহারকারীর ইন্টারঅ্যাকশন প্রয়োজন হয়নি।


20
কেন শুধু তখনই একটি ছবি ব্যবহার করবেন না? আপনি কেবলমাত্র এটি সমস্ত অক্ষম করতে প্রচুর অতিরিক্ত সম্পদ লোড করছেন।
deweydb

2
হ্যাঁ তবে আমি উইজেটগুলিতে ক্লিক করতে পারছি না
জেফ্রি নিকলসন ক্যারি

1
দয়া করে নোট করুন যে এটি আইই 11 এ কাজ করবে না - caniuse.com/#search=pointer-events
নটলিজার্ডস

@ দেউইডিবি - এটা কি অবৈধ নয়?
ম্যাট স্যান্ডার্স 9

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

19
var mapOptions = {
   scrollwheel: false,
   center: latlng,
   mapTypeId: google.maps.MapTypeId.ROADMAP
};

13

কিছু গবেষণা করার পরে আপনার কাছে 2 টি বিকল্প রয়েছে। যেহেতু নতুন মানচিত্রগুলি এপিআইআর এম্বেড সহ এপিআই মাউসওয়েল অক্ষম করার পক্ষে সমর্থন করে না।

প্রথমে পুরানো গুগল ম্যাপ ( https://support.google.com/maps/answer/3045828?hl=en ) ব্যবহার করা হবে ।

দ্বিতীয়টি প্রতিটি মন্তব্যের জন্য একটি মানচিত্র এম্বেডিং সহজতর করার জন্য এবং পরামিতি ব্যবহার করে জাভাস্ক্রিপ্ট ফাংশন তৈরি করা হবে (এটি কেবলমাত্র সঠিক অবস্থান দেখায় না এমন অবস্থানকে নির্দেশ করার জন্য এটি নমুনা কোড)

function createMap(containerid, parameters) {
  var mymap = document.getElementById(containerid),
  map_options = {
    zoom: 13,
    scrollwheel: false,
    /* rest of options */
  },
  map = new google.maps.Map(mymap, map_options);

  /* 'rest of code' to take parameters into account */
}

8

একটি দুর্দান্ত এবং সহজ সমাধান আছে।

আপনার সিএসএসে আপনাকে একটি কাস্টম ক্লাস যুক্ত করতে হবে যা ক্যানভাসকে মানচিত্রের জন্য পয়েন্টার ইভেন্টগুলি সেট করে না:

.scrolloff{
   pointer-events: none;
}

তারপরে, jQuery এর সাহায্যে আপনি বিভিন্ন ইভেন্টের উপর ভিত্তি করে সেই শ্রেণিটি যুক্ত করতে বা মুছতে পারেন, উদাহরণস্বরূপ:

    $( document ).ready(function() {

    // you want to enable the pointer events only on click;

        $('#map_canvas').addClass('scrolloff'); // set the pointer events to none on doc ready
        $('#canvas').on('click', function() {
            $('#map_canvas').removeClass('scrolloff'); // set the pointer events true on click
        });

    // you want to disable pointer events when the mouse leave the canvas area;

     $( "#map_canvas" ).mouseleave(function() {
          $('#map_canvas').addClass('scrolloff'); // set the pointer events to none when mouse leaves the map area
     });    
});

আমি জেসফিডেলে একটি উদাহরণ তৈরি করেছি , আশা করি এটি সাহায্য করে!


1
এটি গুগল ম্যাপস এম্বেড এপিআইয়ের সাথেও কাজ করে - কেবল এম্বেড ইফ্রেমে ম্যাপ_ক্যানভাস প্রতিস্থাপন করে। লক্ষ্য করুন যে ক্লিক ইভেন্টটি বাইরের উপাদানটিতে রয়েছে, তবে স্ক্রোলফটি অভ্যন্তরীণ উপাদানটিতে রয়েছে (এটি উত্তর / জেসফিডেলে সঠিক, আপনি কেবল অনুলিপি / পেস্ট করার পরিবর্তে প্রতিলিপি করছেন)
Jxtps

8

আমি কেবল ডেভেলপার্স.কম.এমে একটি অ্যাকাউন্ট নিবন্ধভুক্ত করেছি এবং একটি মানচিত্র এপিআই কল করার জন্য একটি টোকেন পেয়েছি এবং কেবল এটির মতো অক্ষম করব (স্ক্রোলওহিল: মিথ্যা):

    var map;
    function initMap() {
        map = new google.maps.Map(document.getElementById('container_google_maps'), {
            center: {lat: -34.397, lng: 150.644},
            zoom: 8,
            scrollwheel: false
        });
    }

JQuery হ্যাক চেয়ে অনেক ভাল!
ডানিয়েল কিস-নাগি

7

এটি আমার পদ্ধতির আমি বিভিন্ন ওয়েবসাইটে কার্যকর করা এবং সর্বদা এটি ব্যবহার করা সহজ মনে করি

সিএসএস এবং জাভাস্ক্রিপ্ট:

<style type="text/css">
.scrolloff iframe   {
    pointer-events: none ;
}
</style>

<script type="text/javascript">
function scrollOn() {
    $('#map').removeClass('scrolloff'); // set the pointer events true on click

}

function scrollOff() {
    $('#map').addClass('scrolloff'); 

}
</script>

এইচটিএমএল এ, আপনি আইফ্রেমটি একটি ডিভিতে মুড়ে রাখতে চাইবেন। <div id="map" class="scrolloff" onclick="scrollOn()" onmouseleave="scrollOff()" >

function scrollOn() {
    $('#map').removeClass('scrolloff'); // set the pointer events true on click
   
}

function scrollOff() {
    $('#map').addClass('scrolloff'); // set the pointer events true on click
    
}
.scrolloff iframe   {
        pointer-events: none ;
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="map" class="scrolloff" onclick="scrollOn()" onmouseleave="scrollOff()" ><iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d23845.03946309692!2d-70.0451736316453!3d41.66373705082399!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x89fb159980380d21%3A0x78c040f807017e30!2sChatham+Tides!5e0!3m2!1sen!2sus!4v1452964723177" width="100%" height="450" frameborder="0" style="border:0" allowfullscreen></iframe></div>

আশা করি এটি সহজ সমাধানের সন্ধানে যে কাউকে সহায়তা করবে।


5

এখানে একটি সহজ সমাধান। মাউস স্ক্রোলটি অক্ষম pointer-events: noneকরতে কেবল সিএসএস সেট করুন <iframe>

<div id="gmap-holder">
    <iframe width="100%" height="400" frameborder="0" style="border:0; pointer-events:none"
            src="https://www.google.com/maps/embed/v1/place?q=XXX&key=YYY"></iframe>
</div>

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

$(function() {
    $('#gmap-holder').click(function(e) {
        $(this).find('iframe').css('pointer-events', 'all');
    }).mouseleave(function(e) {
        $(this).find('iframe').css('pointer-events', 'none');
    });
})

!!! এছাড়াও দ্রষ্টব্য, ইমো পয়েন্টার-ইভেন্টগুলি এই আইফ্রেমের জন্য ইভেন্টের সমস্ত ক্লিক অক্ষম করে
স্টেফানফ্রিডরিচ

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

এটি আমার জন্য দুর্দান্তভাবে কাজ করেছে! বেশিরভাগ সমাধানগুলি ওয়ার্ডপ্রেসের সাথে বেমানান ছিল: অনক্লিকটি স্ক্রাব করা হয় এবং কখনও কখনও আইফ্রেমের প্রস্থ সম্মানিত হয় না, তবে এটি একটি কবজির মতো কাজ করে worked জেএস কোডটি দূরে রাখার পরে, আইডি = "জিএমএপি-ধারক" উল্লেখ করার দরকার রয়েছে। পারফেক্ট। ধন্যবাদ মনীষ।
usonianhorizon

4

এম্বেড থাকা গুগল ম্যাপে মাউস স্ক্রোল হুইল জুম অক্ষম করতে, আপনাকে কেবল আইফ্রেমের সিএসএস সম্পত্তি পয়েন্টার-ইভেন্টগুলি সেট করতে হবে না:

<style>
#googlemap iframe {
    pointer-events:none;
}
</style>

সব কিছু .. খুব ঝরঝরে?

<div id="googlemap">
    <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3648.6714814904954!2d90.40069809681577!3d23.865796688563787!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3755c425897f1f09%3A0x2bdfa71343f07395!2sArcadia+Green+Point%2C+Rd+No.+16%2C+Dhaka+1230%2C+Bangladesh!5e0!3m2!1sen!2sin!4v1442184916780" width="400" height="300" frameborder="0" style="border:0" allowfullscreen></iframe>
</div>

2
এটি ডাবল ক্লিক জুম নিষ্ক্রিয় করবে :)
w3debugger

জুম-ইন, জুম-আউট, দিকনির্দেশ
ইত্যাদিকেও অক্ষম করে

4

হ্যাঁ, আমার পক্ষে সবচেয়ে ভাল সমাধানটি কেবল এটির মতো ব্যবহার করা ছিল:

এইচটিএমএল:

<div id="google-maps">
<iframe frameborder="0" height="450" src="***embed-map***"  width="100"</iframe>
</div>

সিএসএস:

#google-maps iframe { pointer-events:none; }

জাতীয়:

<script>
  $(function() {
    $('#google-maps').click(function(e) {
        $(this).find('iframe').css('pointer-events', 'auto');
    }).mouseleave(function(e) {
        $(this).find('iframe').css('pointer-events', 'none');
    });
  })
</script>

ফলাফল

বিবেচ্য বিষয়:

পাঠ্যের সাথে গা transparency় স্বচ্ছতার সাথে একটি ওভারলে যুক্ত করা ভাল: মাউস চাকাটি নিষ্ক্রিয় হয়ে গেলে " ব্রাউজ করতে ক্লিক করুন " তবে এটি সক্রিয় হয়ে গেলে (আপনি এটিতে ক্লিক করার পরে) পাঠ্যের সাথে স্বচ্ছতা অদৃশ্য হয়ে যায় এবং ব্যবহারকারী ব্রাউজ করতে পারে প্রত্যাশার মতো মানচিত্র কোনও ক্লু কীভাবে করব?


3

শৈলী যোগ করুন pointer-events:none;এই সূক্ষ্ম কাজ

<iframe style="pointer-events:none;" src=""></iframe>

3

এটি করার সহজ উপায় হ'ল সিউডো-এলিমেন্ট :beforeবা এর মতো ব্যবহার করা :after
এই পদ্ধতির জন্য কোনও অতিরিক্ত এইচটিএমএল উপাদান বা জ্যাকুরির প্রয়োজন হবে না।
যদি আমাদের উদাহরণস্বরূপ এই এইচটিএমএল কাঠামো থাকে:

<div class="map_wraper">

    <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d405689.7826944034!2d-122.04109805!3d37.40280355!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x808fb68ad0cfc739%3A0x7eb356b66bd4b50e!2sSilicon+Valley%2C+CA!5e0!3m2!1sen!2sro!4v1438864791455" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>

</div>

তারপরে আমাদের যা করতে হবে তা হ'ল স্ক্রোলিং প্রতিরোধের জন্য তৈরি করা ছদ্ম-উপাদানটির সাথে সম্পর্কিত মোড়ক তৈরি করা is

.map_wraper{
    position:relative;
}

এর পরে আমরা সিউডো-উপাদান তৈরি করব যা ম্যাপের উপরে অবস্থিত হবে যাতে স্ক্রোলিং প্রতিরোধ করতে হবে:

.map_wraper:after{
    background: none;
    content: " ";
    display: inline-block;
    font-size: 0;
    height: 100%;
    left: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 9;
}

এবং আপনি শেষ করেছেন, কোনও জেকোয়ারি নেই কোনও অতিরিক্ত এইচটিএমএল উপাদান! এখানে একটি কার্যনির্বাহী jsfizz উদাহরণ: http://jsfiddle.net/e6j4Lbe1/


চতুর ধারণা। তবে অন্যান্য উত্তরগুলির মতো এটিও মাউসহিলের ইভেন্টগুলি নয়, সমস্ত কিছু ক্যাপচার করে।
লাইক লাইক

আমি আপনাকে খুশি খুশি!
আন্ড্রেই

3

এখানে আমার সহজ সমাধান।

উদাহরণস্বরূপ "মানচিত্র" নামক শ্রেণীর সাথে একটি ডিভের মধ্যে আপনার আইফ্রেমে রাখুন।

এটি আপনার আইফ্রেমের জন্য সিএসএস হবে

.maps iframe { pointer-events: none }

এবং এখানে একটি সামান্য জাভাস্ক্রিপ্ট দেওয়া হয়েছে যা আপনি যখন কমপক্ষে 1 সেকেন্ডের জন্য ডিভ উপাদানটি নিয়ে যান তখন আইফ্রেমের পয়েন্টার-ইভেন্টস সম্পত্তিটি "অটো" তে সেট করবে (আমার জন্য সবচেয়ে ভাল কাজ করে - আপনার যা পছন্দ তাই সেট করে) এবং সময়সীমা / সাফ করে দেয় যখন মাউস উপাদানটি ছেড়ে যায় তখন এটি আবার "কিছুই নয়" এ সেট করুন।

var maptimer;

$(".maps").hover(function(){
    maptimer = setTimeout(function(){
        $(".maps").find("iframe").css("pointer-events", "auto");
    },1000);
},function(){
    clearTimeout(maptimer);
    $(".maps").find("iframe").css("pointer-events", "none");
});

চিয়ার্স।


3

সমস্যা সমাধানের জন্য I`ve একটি খুব সাধারণ jQuery প্লাগইন তৈরি করেছে। এ চেক করুন https://diazemiliano.github.io/googlemaps-scrollprevent

(function() {
  $(function() {
    $("#btn-start").click(function() {
      $("iframe[src*='google.com/maps']").scrollprevent({
        printLog: true
      }).start();
      return $("#btn-stop").click(function() {
        return $("iframe[src*='google.com/maps']").scrollprevent().stop();
      });
    });
    return $("#btn-start").trigger("click");
  });
}).call(this);
Edit in JSFiddle Result JavaScript HTML CSS .embed-container {
  position: relative !important;
  padding-bottom: 56.25% !important;
  height: 0 !important;
  overflow: hidden !important;
  max-width: 100% !important;
}
.embed-container iframe {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
}
.mapscroll-wrap {
  position: static !important;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://cdn.rawgit.com/diazemiliano/googlemaps-scrollprevent/v.0.6.5/dist/googlemaps-scrollprevent.min.js"></script>
<div class="embed-container">
  <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d12087.746318586604!2d-71.64614110000001!3d-40.76341959999999!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x9610bf42e48faa93%3A0x205ebc786470b636!2sVilla+la+Angostura%2C+Neuqu%C3%A9n!5e0!3m2!1ses-419!2sar!4v1425058155802"
  width="400" height="300" frameborder="0" style="border:0"></iframe>
</div>
<p><a id="btn-start" href="#">"Start Scroll Prevent"</a>  <a id="btn-stop" href="#">"Stop Scroll Prevent"</a>
</p>


2

@ নাথানিয়েলপেরেলস এর উত্তর ব্যবহার করে আমি আমার জন্য হোভার ফাংশন কারণ যুক্ত করেছি যখন ব্যবহারকারী আবার স্ক্রোলিং বন্ধ করতে মানচিত্রে ফোকাস হারায় তখন এটি আরও ভাল কাজ করে :)

$(function(){
    $('.mapa').hover(function(){
        stopScroll();},
                     function () {
    $('.mapa iframe').css("pointer-events", "none");
    });
});

function stopScroll(){
$('.mapa').click(function () {
    $('.mapa iframe').css("pointer-events", "auto");
});
}

বিষয়টি হ'ল আমরা নেভিগেট ফাংশনটি আলগা করি, মোবাইল ডিভাইসে আমার জন্য খুব গুরুত্বপূর্ণ। আমি একটি খুব সহজ jQuery প্লাগইন তৈরি করেছি যা আপনি চাইলে সংশোধন করতে পারেন। Github.com/diazemiliano/mapScrolOff
এমিলিয়ানো

2

একটি থিমের বিভিন্নতা: jQuery সহ একটি সহজ সমাধান, কোনও সিএসএস সম্পাদনা প্রয়োজন।

// make iframe active on click, disable on mouseleave
$('iframe.google_map').each( function(i, iframe) {
    $(iframe).parent().hover( // make inactive on hover
        function() { $(iframe).css('pointer-events', 'none');
    }).click( // activate on click
        function() { $(iframe).css('pointer-events', 'auto');
    }).trigger('mouseover'); // make it inactive by default as well
});

হোভার শ্রোতা প্যারেন্ট উপাদানটির সাথে সংযুক্ত রয়েছে, সুতরাং বর্তমান পিতামাতা যদি বড় হয় তবে আপনি কেবল 3 য় লাইনের আগে একটি ডিভ দিয়ে iframe মোড়ানো করতে পারেন।

আশা করি এটি কারওর জন্য কাজে লাগবে।


1

আমি নিজেকে এই সমস্যাটি উপর পদস্খলিত এবং এই প্রশ্নে দুই খুব দরকারী উত্তরের একটি ম্যাশআপ কিছু ব্যবহৃত: czerasz এর উত্তর এবং Massa এর উত্তর।

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

সুতরাং, আমার মার্কআপটি এর মতো দেখাচ্ছে:

<div class="map embed-container">
  <div id="map-notice" style="display: block;"> {Tell your users what to do!} </div>
  <div class="map-overlay" style="display: block;"></div>
  <iframe style="width:100%" src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d3785.684302567802!2d-66.15578327375803!3d18.40721382009222!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x8c036a35d02b013f%3A0x5962cad95b9ec7f8!2sPlaza+Del+Sol!5e0!3m2!1sen!2spr!4v1415284687548" width="633" height="461" frameborder="0"></iframe>
</div>

তারপরে শৈলীগুলি এর মতো:

.map.embed-container {
  position:relative;
}

.map.embed-container #map-notice{
  position:absolute;
  right:0;
  top:0;
  background-color:rgb(100,100,100);/*for old IE browsers with no support for rgba()*/
  background-color: rgba(0,0,0,.50);
  color: #ccc;
  padding: 8px;
}
.map.embed-container .map-overlay{
  height:100%;
  width:100%;
  position:absolute;
  z-index:9999;
  background-color:rgba(0,0,0,0.10);/*should be transparent but this will help you see where the overlay is going in relation with the markup*/
}

শেষ পর্যন্ত লিপি:

//using jquery...
var onMapMouseleaveHandler = function (event) {
  $('#map-notice').fadeIn(500);
  var elemento = $$(this);
  elemento.on('click', onMapClickHandler);
  elemento.off('mouseleave', onMapMouseleaveHandler);
  $('.map-overlay').fadeIn(500);
}

var onMapClickHandler = function (event) {
  $('#map-notice').fadeOut(500);
  var elemento = $$(this);
  elemento.off('click', onMapClickHandler);
  $('.map-overlay').fadeOut(500);
  elemento.on('mouseleave', onMapMouseleaveHandler);
}
$('.map.embed-container').on('click', onMapClickHandler);

আমি আমার পরীক্ষিত সমাধানটি একটি গিটহাবের টুকরোটিতে যোগ করেছি , যদি আপনি সেখান থেকে জিনিস পেতে চান ...


1

এটি সিএসএস এবং জাভাস্ক্রিপ্টের সাথে একটি সমাধান (যেমন। জ্যাকোয়ারি তবে খাঁটি জাভাস্ক্রিপ্টের সাথেও কাজ করে)। একই সাথে মানচিত্রটি প্রতিক্রিয়াশীল। স্ক্রোল করার সময় মানচিত্রটি জুম করতে এড়িয়ে চলুন, তবে এতে ক্লিক করে মানচিত্রটি সক্রিয় করা যেতে পারে।

এইচটিএমএল / জিকুয়ের জাভাস্ক্রিপ্ট

<div id="map" onclick="$('#googlemap').css('pointerEvents','auto'); return true;"> 
    <iframe id="googlemap" src="http://your-embed-url" height="350"></iframe>
</div>

সিএসএস

#map {
    position: relative; 
    padding-bottom: 36%; /* 16:9 ratio for responsive */ 
    height: 0; 
    overflow: hidden; 
    background:transparent; /* does the trick */
    z-index:98; /* does the trick */
}
#map iframe { 
    pointer-events:none; /* does the trick */
    position: absolute; 
    top: 0; 
    left: 0; 
    width: 100% !important; 
    height: 100% !important; 
    z-index:97; /* does the trick */
} 

আনন্দ কর !


1

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

// map is the google maps object, '#map' is the jquery selector
preventAccidentalZoom(map, '#map'); 

// Disables and enables scroll to zoom as appropriate. Also
// gives the user a UI cue as to when scrolling is enabled.
function preventAccidentalZoom(map, mapSelector){
  var mapElement = $(mapSelector);

  // Disable the scroll wheel by default
  map.setOptions({ scrollwheel: false })

  // Enable scroll to zoom when there is a mouse down on the map.
  // This allows for a click and drag to also enable the map
  mapElement.on('mousedown', function () {
    map.setOptions({ scrollwheel: true });
    mapElement.css('border', '1px solid blue')
  });

  // Disable scroll to zoom when the mouse leaves the map.
  mapElement.mouseleave(function () {
    map.setOptions({ scrollwheel: false })
    mapElement.css('border', 'none')
  });
};

1

এটি আপনাকে একটি প্রতিক্রিয়াশীল গুগল ম্যাপ দেবে যা আইফ্রেমে স্ক্রোলিং বন্ধ করবে, তবে একবার ক্লিক করলে আপনি জুম করতে পারবেন।

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

<style>
    .overlay {
    background:transparent;
    position:relative;
    width:100%; /* your iframe width */
    height:480px; /* your iframe height */
    top:480px; /* your iframe height */
    margin-top:-480px; /* your iframe height */
    }
</style>
<div class="overlay" onClick="style.pointerEvents='none'"></div>
<iframe src="https://mapsengine.google.com/map/embed?mid=some_map_id" width="100%" height="480"></iframe>

0

এখানে এই আমার পদ্ধতির হবে।

এটি আমার মেইন.জেস বা অনুরূপ ফাইলে পপ করুন:

// Create an array of styles.
var styles = [
                {
                    stylers: [
                        { saturation: -300 }

                    ]
                },{
                    featureType: 'road',
                    elementType: 'geometry',
                    stylers: [
                        { hue: "#16a085" },
                        { visibility: 'simplified' }
                    ]
                },{
                    featureType: 'road',
                    elementType: 'labels',
                    stylers: [
                        { visibility: 'off' }
                    ]
                }
              ],

                // Lagitute and longitude for your location goes here
               lat = -7.79722,
               lng = 110.36880,

              // Create a new StyledMapType object, passing it the array of styles,
              // as well as the name to be displayed on the map type control.
              customMap = new google.maps.StyledMapType(styles,
                  {name: 'Styled Map'}),

            // Create a map object, and include the MapTypeId to add
            // to the map type control.
              mapOptions = {
                  zoom: 12,
                scrollwheel: false,
                  center: new google.maps.LatLng( lat, lng ),
                  mapTypeControlOptions: {
                      mapTypeIds: [google.maps.MapTypeId.ROADMAP],

                  }
              },
              map = new google.maps.Map(document.getElementById('map'), mapOptions),
              myLatlng = new google.maps.LatLng( lat, lng ),

              marker = new google.maps.Marker({
                position: myLatlng,
                map: map,
                icon: "images/marker.png"
              });

              //Associate the styled map with the MapTypeId and set it to display.
              map.mapTypes.set('map_style', customMap);
              map.setMapTypeId('map_style');

তারপরে খালি ডিভটি সন্নিবেশ করুন যেখানে আপনি মানচিত্রটি আপনার পৃষ্ঠায় প্রদর্শিত হতে চান।

<div id="map"></div>

আপনাকে অবশ্যই গুগল ম্যাপস এপিআই তে কল করতে হবে। আমি কেবল ম্যাপি.জেএস নামে একটি ফাইল তৈরি করেছি এবং আমার / জেএস ফোল্ডারে ফেলে দিয়েছি। উপরের জাভাস্ক্রিপ্টের আগে এই ফাইলটি কল করা দরকার।

`window.google = window.google || {};
google.maps = google.maps || {};
(function() {

  function getScript(src) {
    document.write('<' + 'script src="' + src + '"' +
                   ' type="text/javascript"><' + '/script>');
  }

  var modules = google.maps.modules = {};
  google.maps.__gjsload__ = function(name, text) {
    modules[name] = text;
  };

  google.maps.Load = function(apiLoad) {
    delete google.maps.Load;
    apiLoad([0.009999999776482582,[[["http://mt0.googleapis.com/vt?lyrs=m@228000000\u0026src=api\u0026hl=en-US\u0026","http://mt1.googleapis.com/vt?lyrs=m@228000000\u0026src=api\u0026hl=en-US\u0026"],null,null,null,null,"m@228000000"],[["http://khm0.googleapis.com/kh?v=135\u0026hl=en-US\u0026","http://khm1.googleapis.com/kh?v=135\u0026hl=en-US\u0026"],null,null,null,1,"135"],[["http://mt0.googleapis.com/vt?lyrs=h@228000000\u0026src=api\u0026hl=en-US\u0026","http://mt1.googleapis.com/vt?lyrs=h@228000000\u0026src=api\u0026hl=en-US\u0026"],null,null,null,null,"h@228000000"],[["http://mt0.googleapis.com/vt?lyrs=t@131,r@228000000\u0026src=api\u0026hl=en-US\u0026","http://mt1.googleapis.com/vt?lyrs=t@131,r@228000000\u0026src=api\u0026hl=en-US\u0026"],null,null,null,null,"t@131,r@228000000"],null,null,[["http://cbk0.googleapis.com/cbk?","http://cbk1.googleapis.com/cbk?"]],[["http://khm0.googleapis.com/kh?v=80\u0026hl=en-US\u0026","http://khm1.googleapis.com/kh?v=80\u0026hl=en-US\u0026"],null,null,null,null,"80"],[["http://mt0.googleapis.com/mapslt?hl=en-US\u0026","http://mt1.googleapis.com/mapslt?hl=en-US\u0026"]],[["http://mt0.googleapis.com/mapslt/ft?hl=en-US\u0026","http://mt1.googleapis.com/mapslt/ft?hl=en-US\u0026"]],[["http://mt0.googleapis.com/vt?hl=en-US\u0026","http://mt1.googleapis.com/vt?hl=en-US\u0026"]],[["http://mt0.googleapis.com/mapslt/loom?hl=en-US\u0026","http://mt1.googleapis.com/mapslt/loom?hl=en-US\u0026"]],[["https://mts0.googleapis.com/mapslt?hl=en-US\u0026","https://mts1.googleapis.com/mapslt?hl=en-US\u0026"]],[["https://mts0.googleapis.com/mapslt/ft?hl=en-US\u0026","https://mts1.googleapis.com/mapslt/ft?hl=en-US\u0026"]]],["en-US","US",null,0,null,null,"http://maps.gstatic.com/mapfiles/","http://csi.gstatic.com","https://maps.googleapis.com","http://maps.googleapis.com"],["http://maps.gstatic.com/intl/en_us/mapfiles/api-3/14/0","3.14.0"],[2635921922],1,null,null,null,null,0,"",null,null,0,"http://khm.googleapis.com/mz?v=135\u0026",null,"https://earthbuilder.googleapis.com","https://earthbuilder.googleapis.com",null,"http://mt.googleapis.com/vt/icon",[["http://mt0.googleapis.com/vt","http://mt1.googleapis.com/vt"],["https://mts0.googleapis.com/vt","https://mts1.googleapis.com/vt"],[null,[[0,"m",228000000]],[null,"en-US","US",null,18,null,null,null,null,null,null,[[47],[37,[["smartmaps"]]]]],0],[null,[[0,"m",228000000]],[null,"en-US","US",null,18,null,null,null,null,null,null,[[47],[37,[["smartmaps"]]]]],3],[null,[[0,"h",228000000]],[null,"en-US","US",null,18,null,null,null,null,null,null,[[50],[37,[["smartmaps"]]]]],0],[null,[[0,"h",228000000]],[null,"en-US","US",null,18,null,null,null,null,null,null,[[50],[37,[["smartmaps"]]]]],3],[null,[[4,"t",131],[0,"r",131000000]],[null,"en-US","US",null,18,null,null,null,null,null,null,[[5],[37,[["smartmaps"]]]]],0],[null,[[4,"t",131],[0,"r",131000000]],[null,"en-US","US",null,18,null,null,null,null,null,null,[[5],[37,[["smartmaps"]]]]],3],[null,null,[null,"en-US","US",null,18],0],[null,null,[null,"en-US","US",null,18],3],[null,null,[null,"en-US","US",null,18],6],[null,null,[null,"en-US","US",null,18],0]]], loadScriptTime);
  };
  var loadScriptTime = (new Date).getTime();
  getScript("http://maps.gstatic.com/intl/en_us/mapfiles/api-3/14/0/main.js");
})();`

আপনি যখন mapi.js ফাইলটি কল করবেন তখন নিশ্চিত হয়ে নিন যে আপনি এটি সেন্সরটির মিথ্যা বৈশিষ্ট্যটি পাস করেছেন।

অর্থাৎ, <script type="text/javascript" src="js/mapi.js?sensor=false"></script>

এপিআই-এর নতুন সংস্করণ 3-এর কোনও কারণে সেন্সর অন্তর্ভুক্তি প্রয়োজন। আপনার মেইন.জেএস ফাইলের আগে আপনি mapi.js ফাইলটি অন্তর্ভুক্ত করেছেন তা নিশ্চিত করুন।


0

গুগল মানচিত্রের জন্য v2 - GMap2:

ar map = new GMap2(document.getElementById("google_map"));
map.disableScrollWheelZoom();

0

গুগল ম্যাপ এম্বেডেড এপিআই ব্যবহার করে যদি আপনার কাছে আইফ্রেম থাকে তবে:

 <iframe width="320" height="400" frameborder="0" src="https://www.google.com/maps/embed/v1/place?q=Cagli ... "></iframe>

আপনি এই সিএসএস শৈলীটি যুক্ত করতে পারেন: পয়েন্টার-ইভেন্ট: কিছুই নয়; এস।

<iframe width="320" height="400" frameborder="0" style="pointer-event:none;" src="https://www.google.com/maps/embed/v1/place?q=Cagli ... "></iframe>

0

@ চামস দ্বারা বর্ধিত @ নাথানিয়েল্পেরালস উত্তরটি এখানে আমার গ্রহণ, এখন আমার দ্বারা আবার বাড়ানো হয়েছে।

এইচটিএমএল

<div class='embed-container maps'>
    <iframe width='600' height='450' frameborder='0' src='http://foo.com'></iframe>
</div> 

jQuery এর

// we're doing so much with jQuery already, might as well set the initial state
$('.maps iframe').css("pointer-events", "none");

// as a safety, allow pointer events on click
$('.maps').click(function() {
  $(this).find('iframe').css("pointer-events", "auto");
});


$('.maps').mouseleave(function() {
  // set the default again on mouse out - disallow pointer events
  $(this).find('iframe').css("pointer-events", "none");
  // unset the comparison data so it doesn't effect things when you enter again
  $(this).removeData('oldmousepos');
});

$('.maps').bind('mousemove', function(e){
  $this = $(this);
  // check the current mouse X position
  $this.data('mousepos', e.pageX);
  // set the comparison data if it's null or undefined
  if ($this.data('oldmousepos') == null) {
    $this.data('oldmousepos', $this.data('mousepos'));
  }
  setTimeout(function(){
    // some left/right movement - allow pointer events
    if ($this.data('oldmousepos') != $this.data('mousepos')) {
      $this.find('iframe').css("pointer-events", "auto");
    }
    // set the compairison variable
    $this.data('oldmousepos', $this.data('mousepos'));
  }, 300);
  console.log($this.data('oldmousepos')+ ' ' + $this.data('mousepos'));
});

0

সবচেয়ে সহজ :

<div id="myIframe" style="width:640px; height:480px;">
   <div style="background:transparent; position:absolute; z-index:1; width:100%; height:100%; cursor:pointer;" onClick="style.pointerEvents='none'"></div>
   <iframe src="https://www.google.com/maps/d/embed?mid=XXXXXXXXXXXXXX" style="width:640px; height:480px;"></iframe>
</div>

0

এটি আপনার স্ক্রিপ্টে যুক্ত করুন:

function initMap() {
    var uluru = {lat: -25.363, lng: 131.044};
    var map = new google.maps.Map(document.getElementById('map'), {
        zoom: 12,
        center: uluru,
        scrollwheel: false,
        disableDefaultUI: true,
        disableDoubleClickZoom: true
    });
    var marker = new google.maps.Marker({
        position: uluru,
        map: map
});
}

2
প্রশ্নটি জাভাস্ক্রিপ্ট এপিআই নয়, এম্বেড এপিআইয়ের সাথে সম্পর্কিত (আইফ্রেমে ব্যবহার করে)।
গ্রেটব্লাকস

0

সমস্যাটির জন্য আমার সমাধানটি এখানে, আমি একটি ডাব্লুপি সাইট তৈরি করছিলাম, সুতরাং এখানে একটি পিএইচপি কোড রয়েছে। তবে কীটি scrollwheel: false,মানচিত্রের অবজেক্টে রয়েছে।

function initMap() {
        var uluru = {lat: <?php echo $latitude; ?>, lng: <?php echo $Longitude; ?>};
        var map = new google.maps.Map(document.getElementById('map'), {
            zoom: 18,
            scrollwheel: false,
            center: uluru
        });
        var marker = new google.maps.Marker({
            position: uluru,
            map: map
        });
    }

আশা করি এটি সাহায্য করবে। চিয়ার্স

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