使用jQuery mCustomScrollbar并链接到锚点

时间:2013-09-02 13:00:06

标签: javascript jquery anchor

我正在使用jQuery mCustomScrollbar脚本使用id="scroll_box"在一列中滚动内容元素。我还有几个图像(在其他列中),它们具有"scroll_box"中元素的锚点链接。链接具有以下语法:http://www.example.com/index.php?id=17#c33

我在点击锚点后使用该脚本移动:

function scrollTo(hash) {
    location.hash = "#" + hash;
}

这段代码工作正常,但只有当我禁用mCustomScrollbar脚本时 - 所以我没有“好看”和工作滚动条。当它打开时,滚动条看起来工作正常,但锚链接不起作用......

我的mCustomScrollbar代码:

(function($){
$(window).load(function(){
    $("#scroll_box").mCustomScrollbar({
                callbacks:{
                    onScroll:function(){
                        onScrollCallback();
                    },
                    onTotalScroll:function(){
                        onTotalScrollCallback();
                    },
                    onTotalScrollOffset:40,
                    onTotalScrollBack:function(){
                        onTotalScrollBackCallback();
                    },
                    onTotalScrollBackOffset:20
                }
            });
    });
})(jQuery); 

是否可以将这两个脚本合并为一个?

1 个答案:

答案 0 :(得分:0)

实际上这个插件有很多疯狂的问题!这让我放弃了!我只是自定义我的自动滚动条,并出于同样的原因从我的项目中删除此插件。

但是我使用此解决方案修复滚动到锚点

$(document).ready(function() {

$("a").click(function() {
if($(this).attr('href') == "#top"){
//this bit is for wordpress, where top is default: .entry-title
var elID=".entry-title";
$(".jsoverflow").mCustomScrollbar("scrollTo",elID);
}else{ 
if ($(this).attr('href').indexOf("#") >= 0){
//this bit is for any other anchor
$(".jsoverflow").mCustomScrollbar("scrollTo",$(this).attr('href'));

}

}

});
});

它为我100%工作,我从Get-Hub得到它。