سؤال

النظر في رمز المثال التالي:http://code.google.com/apis/maps/documentation/javascript/examples/streetview-simple.html

أستطيع أن أفعل scrollwheel: false على mapoptions لتعطيل تكبير عجلة الماوس. لم يتم تنفيذ الميزة على شارع الشارع panoramaOptions.

في Chrome ، يمكنني تعطيل تكبير عجلة الماوس بأمان على StreetView ببساطة.

$('#pano *').bind('mousewheel', function(){
    return false;
});

لكن هذا لا يعمل في مكان آخر. الرجاء مساعدتي في العمل في أعلى متصفحات 3-5؟

هل كانت مفيدة؟

المحلول

يوجد الآن طلب ميزة مؤكد مع مشكلات API GMAPS http://code.google.com/p/gmaps-api-issues/issues/detail؟id=2557. دعونا نأمل أن يبحث مهندسو Google في الأمر عندما يحصلون على الأخطاء الأكثر أهمية. أكره أن أنفاسي ، لكنني سأوقف هذا الآن.

نصائح أخرى

وفقًا لـ subgurim.net ، هذه هي كيفية القيام بذلك ؛

  [powerscript -  other event]
CONSTANT integer WM_MOUSEWHEEL = 522
IF message.number = WM_MOUSEWHEEL AND & KeyDown (KeyControl!) THEN
   message.processed = TRUE
   RETURN 1
END IF

أدرك أنك تستخدم JavaScript ، وهذا مثال VB ، ولكن نأمل أن يساعد.

يمكنني استخدام الرمز أدناه لتجنب النقر المزدوج Zoom - متأكد تمامًا من أنه يمكن تكييفه لتمرير عجلة التكبير. التكبير: 1 كونه مرحلة التكبير المفضلة لدي هنا ، ولكن يمكن أن يكون أي شيء.

$("#panorama").dblclick( function(){

   panorama.setPov(  {
      heading: panorama.getPov().heading,
      pitch: panorama.getPov().pitch, zoom: 1 
   });

});

هناك حل بديل سهل: عن طريق إضافة طبقة قبل شارع StreetView مع مؤشر Z أعلى ، ستمنع وظيفة التكبير في StreetView.

<div id="panorama" style="position: absolute;left:0; top: 0;height: 100%; width: 100%; z-index: -1;opacity: 1"></div>
<div id="layerBeforePanorama" style="position: absolute;left:0; top: 0;height: 100%; width: 100%; z-index: 0;opacity: 1"></div>

<script>
var panoOptions = {
    position: latlng,
    pov: {
        heading: 0,
        pitch: 0
    }
  };
var pano = new google.maps.StreetViewPanorama(document.getElementById('panorama'), panoOptions);
</script>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top