jqgrid顶部标题不使用左侧滚动,当使用mCustomScrol(v3.1.5)
问题描述:
我想在jqgrid(4.9.2)上使用mCustomScrollbar。滚动条的设计正在改变,但是当水平滚动时,顶部标题不会像通常那样移动。 我正在尝试使用的示例是可折叠网格。 并为mCustomScrolljqgrid顶部标题不使用左侧滚动,当使用mCustomScrol(v3.1.5)
$(".ui-jqgrid-bdiv").mCustomScrollbar({
axis:"yx",
});
是没可能在所有使用的jqGrid上的任何自定义滚动条?
答
我已经做了一些自定义的修改jqgr所以迁移到另一个版本将会是一个艰巨的任务,所以取而代之的是,我做的mcustomscrollbar和发布答案的变化,所以如果任何其他人在同样的问题来了这将是有益的。 所以有方法_tweetTo,这被称为用于在其上滚动,通过在初始化分配为
$(".ui-jqgrid-bdiv").mCustomScrollbar({
axis:"yx",
});
现在
只是方法调用_tweenTo(线#2131为经过V容器:3.1 0.5)插入以下代码
if ($(".ui-jqgrid-hdiv").length > 0) {
$(".ui-jqgrid-view").css("overflow", "hidden");
$(".ui-jqgrid-hdiv").css("width", $("#grid1").width() + "px"); // grid1 is the id of your gridcontainer/table
_tweenTo($(".ui-jqgrid-hdiv")[0], property, Math.round(scrollTo[0]), dur[0], options.scrollEasing, options.overwrite, {
onStart: function() {
if (options.callbacks && options.onStart && !d.tweenRunning) {
/* callbacks: onScrollStart */
if (_cb("onScrollStart")) { _mcs(); o.callbacks.onScrollStart.call(el[0]); }
d.tweenRunning = true;
_onDragClasses(mCSB_dragger);
d.cbOffsets = _cbOffsets();
}
}, onUpdate: function() {
if (options.callbacks && options.onUpdate) {
/* callbacks: whileScrolling */
if (_cb("whileScrolling")) { _mcs(); o.callbacks.whileScrolling.call(el[0]); }
}
}, onComplete: function() {
if (options.callbacks && options.onComplete) {
if (o.axis === "yx") { clearTimeout(mCSB_container[0].onCompleteTimeout); }
var t = mCSB_container[0].idleTimer || 0;
mCSB_container[0].onCompleteTimeout = setTimeout(function() {
/* callbacks: onScroll, onTotalScroll, onTotalScrollBack */
if (_cb("onScroll")) { _mcs(); o.callbacks.onScroll.call(el[0]); }
if (_cb("onTotalScroll") && scrollTo[1] >= limit[1] - totalScrollOffset && d.cbOffsets[0]) { _mcs(); o.callbacks.onTotalScroll.call(el[0]); }
if (_cb("onTotalScrollBack") && scrollTo[1] <= totalScrollBackOffset && d.cbOffsets[1]) { _mcs(); o.callbacks.onTotalScrollBack.call(el[0]); }
d.tweenRunning = false;
mCSB_container[0].idleTimer = 0;
_onDragClasses(mCSB_dragger, "hide");
}, t);
}
}
});
}
和_tweenTo的方法定义还有另一种方法_tween 更新该方法
function _tween() {
// added condition so the top headers remains fixed
if (el.classList.contains("ui-jqgrid-hdiv") && prop == "top") {
return;
}
//ends here
if (duration > 0) {
tobj.currVal = _ease(tobj.time, from, diff, duration, easing);
elStyle[prop] = Math.round(tobj.currVal) + "px";
} else {
elStyle[prop] = to + "px";
}
onUpdate.call();
}
和滚动条是启动和运行.. !!
你不应该使用任何产品的复古版本。 [免费jqGrid](https://github.com/free-jqgrid/jqGrid)4.9.2已经两岁了。我在4.9.2之后发布了14个更新的版本。请使用已发布的4.14.1或GitHub的最新代码(初始代码4.15.0)。此外,只有当你能够重现你所报告的问题时,你才能够帮助你。因此,严格地建议包括演示(例如在jsfiddle中),这会再现问题。您可以从[页面](https://free-jqgrid.github.io/getting-started/index.html)获取演示文稿作为基础并对其进行修改。 – Oleg