ปิดการใช้งาน Ctrl + เลื่อนเพื่อซูมแผนที่ Google


98

มีใครรู้วิธีปิดการใช้งานCTRL+ Scrollหรือไม่?

ขั้นแรกเมื่อเลื่อนวงล้อของเมาส์แผนที่จะซูมเข้า / ออก แต่ตอนนี้มันขอให้กดCTRL+ Mouse Wheel Scroll เพื่อซูมเข้า / ออก

เราจะปิดการใช้งานคุณสมบัตินี้ได้อย่างไร? ฉันไม่พบสิ่งใดในเอกสาร:

https://developers.google.com/maps/documentation/javascript/controls#ControlOptions

ป้อนคำอธิบายภาพที่นี่


ลิงค์นี้อาจช่วยให้คุณstackoverflow.com/questions/21992498/…
Brajesh Kanungo

@BrajeshKanungo ที่ไม่เกี่ยวข้องกับฟีเจอร์ข้างต้น - เป็นฟีเจอร์ใหม่ที่ Google Maps แนะนำ - ฉันต้องการปิดการใช้งาน
Dawood Awan

โอเคบอกหน่อยได้ไหมว่าใช้ API เวอร์ชันไหน
Brajesh Kanungo

เวอร์ชันล่าสุด - maps.googleapis.com/maps/api/js?v=3.exp
Dawood Awan

สิ่งนี้เพิ่งปรากฏบนเว็บไซต์ของเราเช่นกันดังนั้นอาจมีการอัปเดตเกี่ยวกับ googles API
ทอม

คำตอบ:


157

คุณต้องผ่านgestureHandling: 'greedy'ไปยังตัวเลือกแผนที่ของคุณ

เอกสารประกอบ: https://developers.google.com/maps/documentation/javascript/interaction#gestureHandling

ตัวอย่างเช่น:

const map = new google.maps.Map(mapElement, {
  center: { 0, 0 },
  zoom: 4,
  gestureHandling: 'greedy'
});

อัพเดท! เนื่องจาก Google Maps 3.35.6คุณจำเป็นต้องใส่คุณสมบัติลงในกระดาษห่อหุ้มตัวเลือก:

const map = new google.maps.Map(mapElement, {
  center: { 0, 0 },
  zoom: 4,
  options: {
    gestureHandling: 'greedy'
  }
});

ขอบคุณealfonsoสำหรับข้อมูลใหม่


@DiegoAndrade ฉันไม่ทราบรายละเอียด บางทีมันอาจจะไม่ถูกนำมาใช้ในตอนนั้น แต่มีอยู่ในเวอร์ชัน3.29(แช่แข็ง) 3.30(รีลีส) และสูงกว่า ( 3.expทดลอง)
kano

ใช่ @Kano ในเอกสารเหล่านี้ยังคงมีคุณลักษณะนี้อยู่ แต่ในการทดสอบของฉันที่นี่มันไม่ทำงาน ฉันไม่รู้จริงๆว่าทำไมพวกเขาถึงลบสิ่งนี้ :(
Diego Andrade

1
ฉันรู้ว่ามันมีอยู่ นั่นคือประเด็น เริ่มต้นด้วย3.30มันไม่ทำงาน ฉันทดสอบเวอร์ชันเหล่านี้ทั้งหมด อย่างไรก็ตามตอนนี้มันใช้งานได้กับ3.26.
Diego Andrade

3
ในที่สุดคำตอบที่ถูกต้อง ฉันใช้เวลานานในการ Googling สำหรับสิ่งนี้ ทำไม Google ถึงไม่ตั้งค่าเริ่มต้นให้เป็นค่าเริ่มต้นเลย
woens

2
บิงโกนี่คือทางออกที่สมบูรณ์แบบ
N Khan

17

หากคุณพอใจกับการปิดใช้งานการเลื่อนเพื่อซูมทั้งหมดคุณสามารถscrollwheel: falseใช้ได้ ผู้ใช้จะยังคงสามารถซูมแผนที่ได้โดยคลิกปุ่มซูมหากคุณให้ตัวควบคุมการซูม ( zoomControl: true)

เอกสารประกอบ: https://developers.google.com/maps/documentation/javascript/reference (ค้นหาหน้า "scrollwheel")

const map = new google.maps.Map(mapElement, {
  center: { 0, 0 },
  zoom: 4,
  scrollwheel: false,
  zoomControl: true
});

7

หากคุณต้องการซ่อนเฉพาะภาพซ้อนทับ แต่ยังคงปิดความสามารถในการเลื่อนและซูม (เหมือนก่อนหน้านี้) คุณสามารถใช้ CSS เพื่อซ่อนภาพซ้อนทับได้:

.gm-style-pbc {
opacity: 0 !important;
}

โปรดทราบว่าสิ่งนี้จะซ่อนไว้สำหรับมือถือเช่นกันเพื่อให้คุณสามารถใช้สิ่งนี้เพื่อให้แน่ใจว่า "ใช้สองนิ้วเพื่อย้ายแผนที่":

@media only screen and ( min-width: 980px ) {
.gm-style-pbc {
opacity: 0 !important;
}
}

ขอขอบคุณ. ฉันแปลกใจที่หลายคนไม่ต้องการสิ่งนี้ มันเป็นข้อความซ้อนทับที่กวนใจมากซึ่งแทบจะทำลายประสบการณ์บนแผนที่สำหรับฉัน
BaseZen

5

การซ้อนgestureHandlingภายในoptionsพร็อพเพอร์ตี้ใช้ได้ผลกับฉันในเวอร์ชัน "3.35.6"

map = new google.maps.Map(document.getElementById('map'), {
        zoom: 12,
        options:{
            gestureHandling: 'greedy'
        }
    });

4

ฉันไม่สามารถgestureHandling: 'greedy'แก้ไขให้ใช้งานได้เนื่องจากฉันมีภาพซ้อนทับบนแผนที่ ฉันตรวจพบmousewheelเหตุการณ์และตั้งค่าctrlคุณสมบัติเป็นจริง

// Load maps and attach event listener to scroll event.
var $map = $('.map');
$map[0].addEventListener('wheel', wheelEvent, true);         

function wheelEvent(event) {
    // Set the ctrlKey property to true to avoid having to press ctrl to zoom in/out.
    Object.defineProperty(event, 'ctrlKey', { value: true });
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.