2013-12-19 37 views
4

我有jQuery代碼,滾動頁面的方式,所選控件在屏幕中間。Chrome瀏覽器選擇選項列表滾動分離

$(document).ready(function() { 
$('.select').click(function() { 
    $('html, body').animate({ 
     scrollTop: 100 
    }, 100); 
    return false; 
}); 
}); 

不幸的是Chrome瀏覽器(版本31.0.1650.63)導致,如果文檔後滾動選擇其中擴展選項列表中被分離。在FF(25/26)和IE 10/11中工作正常。 Fiddle demo

+0

我覺得你將不得不爲防止點擊時打開選擇列表,請執行動畫,然後觸發列表再次打開。 –

回答

0

我能做的最好是這樣的:http://jsbin.com/ANiMacem/3/edit

添加此功能:

function openSelect(obj) { 

    var element = obj[0]; 
    if (document.createEvent) { // all browsers 
     var e = document.createEvent("MouseEvents"); 
     e.initMouseEvent("mousedown", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); 
     element.dispatchEvent(e); 
    } else 
    if (element.fireEvent) { // ie 
     element.fireEvent("onmousedown"); 
    } 
} 

您的代碼更改爲:

$(".select").on('click',function() { 

      $('html, body').animate({ 
      scrollTop: 100 
     }, 100); 

     setTimeout(function(){ openSelect($(".select")); 
           openSelect($(".select")); //yes twice. 
          },100); 


     return false; 
    }); 
+0

謝謝你的黑客Royi。任何想法的原因 - 鉻錯誤? – nmm

+0

嗯,我不知道,但如果它打擾你這麼多,只有在鉻,所以它可以使用一個黑客在ddl與鉻31 1滾動的罕見情況。一世 –

相關問題