同时使用jquery滚动2个滚动条

时间:2011-03-22 09:38:08

标签: javascript jquery html css

是否可以使用一个滚动条滚动2个滚动条?

4 个答案:

答案 0 :(得分:27)

您只需使用与scrollTop事件相关联的函数将一个元素的scrollTop属性与另一个元素的scroll绑定即可。

有些事情:

$('.linked').scroll(function(){
    $('.linked').scrollTop($(this).scrollTop());    
})

使用该函数,只要您使用其中一个的滚动条,所有具有linked类的元素都将滚动。 (我假设垂直滚动,如果你想要水平,请使用scrollLeft

执行相同操作

有关上述内容的工作示例,请参阅http://jsfiddle.net/g8Krz/510/

答案 1 :(得分:5)

(追加beeglebug):

对于水平“链接”滚动使用:

$('.linked').scroll(function(){
    $('.linked').scrollLeft($(this).scrollLeft());
});

答案 2 :(得分:2)

我想对beeglebug的解决方案进行一些改进(已经完成了近乎完美的工作)。

如果您在某些浏览器(例如OPERA)上使用 MOUSEWHEEL 发现非常慢的滚动,请尝试使用DIV的唯一ID而不是类:

$('#master').scroll(function(){
$('#slave').scrollTop($(this).scrollTop());
}); 

我遇到了这个问题并尝试了很多解决方案,但最后这个问题最容易解决。粗略猜测,我会声称OPERA在滚动时一直按类识别DIV时会遇到一些性能问题。 (只是注意到在使用类作为标识符时CPU使用量大幅增加)

答案 3 :(得分:2)

如果您在使用beeglebug解决方案链接滚动条时使用鼠标滚轮时遇到慢滚动,则可以通过以下方法解决此问题。

很酷的是,它有点紧凑,它不使用任何id,仅限类,更具可持续性。

IEnumerator UploadToPage(byte[] screenshot) {

    var wwwForm = new WWWForm();
    wwwForm.AddField("message", "herp derp.  I did a thing!  Did I do this right?");
    wwwForm.AddBinaryData("image", screenshot, "Test.png");

    string url = "https" + "://graph.facebook.com/"+ PageID + "/photos";
    url += "?access_token=" + PageAccessToken;

    using (UnityWebRequest www = UnityWebRequest.Post(url, wwwForm))

    {
        yield return www.Send();

        if (www.isError)
        {
            Debug.Log(www.error);
        }
        else
        {
            Debug.Log("Form upload complete!");
        }
    }

    Debug.Log(url);
}

这是显示该错误和修复的jsfiddle