滚动时,Chrome选择选项列表会分离

时间:2013-12-19 21:32:31

标签: javascript jquery google-chrome

我有jQuery代码,它以所选控件位于屏幕中间的方式滚动页面。

$(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

1 个答案:

答案 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;
    });