2012-08-23 29 views
0

我正在嘗試使用此功能解決移動和桌面問題。有沒有辦法讓我使用這個腳本懸停,併爲Modernizr添加一個or運算符來查看它是否檢測到觸摸功能,如果沒有,請使用懸停?希望有人能幫我澄清一下。Modernizr - touch ||懸停圖片鏈接

$(function() { 
     $('ul.recent-widget li').hover(function(){ 
      $(this).find('img').animate({top:'182px'},{duration:500}); 
     }, function(){ 
      $(this).find('img').animate({top:'0px'},{duration:500}); 
     }); 
    }); 

這裏如果桌面http://jsfiddle.net/chris_s/dcq2F

+0

只有在兩個平臺上懸停代碼有什麼問題?在移動設備上它永遠不會運行,因爲如果沒有恆定的光標,就不可能「懸停」。 – TheZ

+0

所以字面上運行兩次,但移動功能'if(Modernizr.touch){...}'?這段代碼是否不會在桌面上運行兩次,使其效率不高? –

+0

'Modernizr.touch'會在桌面上成爲'true'嗎?如果不是,問題是什麼?如果是這樣的話......呵? – sgroves

回答

1

使用Modernizr的工作,你當然可以設置一個條件的一個例子,如你在上面的意見,這將只運行一個函數或其他推斷:

if (Modernizr.touch) { 
    // click or bind to touchstart, touchmove, etc 
} else { 
    // hover (like your animation example) 
} 

至於性能,您也可以考慮使用默認的CSS過渡或動畫,然後利用!Modernizr.csstransitions,上懸停功能,例如。

當然,隨着移動被這樣一個移動的目標,therearecaveats與任何一個解決方案。也許在幾個標準(屏幕尺寸,特徵檢測,polyfill等)上進行組合測試,並根據您的情況進行最適合的測試。