0

我添加了2個EventListener(s)以控制滾動並使其在Chrome(特別是)上流暢且平滑,默認情況下它具有可怕的行爲。當鼠標懸停Google地圖時禁用鼠標EventListener

if (window.addEventListener) window.addEventListener('DOMMouseScroll', wheel, false); 
window.onmousewheel = document.onmousewheel = wheel; 

var time = 1300; 
var distance = 270; 

function wheel(event) { 
    if (event.wheelDelta) delta = event.wheelDelta/120; 
    else if (event.detail) delta = -event.detail/3; 

    handle(); 
    if (event.preventDefault) event.preventDefault(); 
    event.returnValue = false; 
} 

function handle() { 

    $('html, body').stop().animate({ 
     scrollTop: $(window).scrollTop() - (distance * delta) 
    }, time); 
} 


$(document).keydown(function (e) { 

    switch (e.which) { 
     //up 
     case 38: 
      $('html, body').stop().animate({ 
       scrollTop: $(window).scrollTop() - distance 
      }, time); 
      break; 

      //down 
     case 40: 
      $('html, body').stop().animate({ 
       scrollTop: $(window).scrollTop() + distance 
      }, time); 
      break; 
    } 
}); 

除了我需要添加Google Maps API v3地圖之外,一切都很完美。當鼠標懸停地圖並使用鼠標滾輪時,它還有另一個EventListener放大和縮小。鼠標懸停地圖時如何禁用腳本?這裏的鏈接我的網頁(你可以看到的行爲),住:http://www.rendezvousroma.it/new/contatti.php

+0

將'scrollwheel'屬性的地圖設置爲'false' –

+0

但我想使用它。在懸停地圖時不能禁用「我的」腳本嗎? – MultiformeIngegno

+0

對不起,我誤解了這個問題 –

回答

0

(我不知道如果我理解正確的問題)

對我來說,你的劇本完全不工作的時候鼠標在地圖上。當我在地圖上使用鼠標滾輪時,地圖將被縮放,但頁面不會滾動(我想這就是所需的行爲)

只有當前正在運行的動畫的隊列會在您在地圖上。如果這是你想要避免的東西,觀察mouseover -event地圖,並停止動畫:

google.maps.event.addListener(map,'mouseover',function(e){ 
    $('html, body').stop(); 
    }); 

爲了阻止該網頁在Firefox滾動添加此太:

google.maps.event.addDomListener(map.getDiv(),'DOMMouseScroll',function(e){ 
    e.stopPropagation(); 
    }); 

它應該防止事件冒泡到文檔中。

+0

嗯,這正是我面對的問題(至少在Firefox中)。當我懸停地圖並使用鼠標滾輪地圖的縮放功能被激活時,頁面會滾動。我會盡快試試這個片段:) – MultiformeIngegno

+0

這真的很奇怪!我嘗試使用Internet Explorer,但沒有發生。用Firefox代替它..嘗試訪問該問題的鏈接... :( – MultiformeIngegno

+0

我更新了頁面(http://www.rendezvousroma.it/new/contatti.php)與第二個片段,但Firefox仍然是一個屁股..:P 編輯:我添加了G地圖功能的片段,如果我添加右上方google.maps.event.addDomListener(窗口,'加載',初始化);地圖不再加載 – MultiformeIngegno