这是我第一次问问题,所以我会尽力做到最好。
在我的javafx应用程序中,我有一个tabpane,我想反转这个tabpane的滚动方向。目前,当我向上滚动时,它向左滚动,当我向下滚动时,它向右滚动。我希望这被逆转。
我试着捣乱TabPaneSkin类,但我做不到。
似乎这段来自 TabPaneSkin.java 的代码正在设置此行为:
// support for mouse scroll of header area (for when the tabs exceed
// the available space).
// Scrolling the mouse wheel downwards results in the tabs scrolling left (i.e. exposing the right-most tabs)
// Scrolling the mouse wheel upwards results in the tabs scrolling right (i.e. exposing th left-most tabs)
addEventHandler(ScrollEvent.SCROLL, (ScrollEvent e) -> {
Side side = getSkinnable().getSide();
side = side == null ? Side.TOP : side;
switch (side) {
default:
case TOP:
case BOTTOM:
setScrollOffset(scrollOffset + e.getDeltaY());
break;
case LEFT:
case RIGHT:
setScrollOffset(scrollOffset - e.getDeltaY());
break;
}
});
很明显,我们需要改变那里的正负号,但具体是怎么改变的?看起来没有办法访问方法(它在TabPaneHeader实例中,该实例对于to getter方法是私有的)。
对此有什么想法吗?谢了。
我这样做解决了这个问题:(我听从了Slaw的建议)
public static void reverseTabPaneScrollingDirection(TabPane tabPane) {
EventDispatcher originalDispatcher = tabPane.getEventDispatcher();
tabPane.setEventDispatcher(new EventDispatcher() {
@Override
public Event dispatchEvent(Event event, EventDispatchChain tail) {
if (event instanceof ScrollEvent) {
ScrollEvent e = (ScrollEvent) event;
ScrollEvent reversedEvent = new ScrollEvent(
e.getEventType(), e.getX(), e.getY(), e.getScreenX(),
e.getScreenY(), e.isShiftDown(), e.isControlDown(), e.isAltDown(),
e.isMetaDown(), e.isDirect(), e.isInertia(), e.getDeltaX(),
-e.getDeltaY(), // reverse it
e.getTotalDeltaX(),
-e.getTotalDeltaY(), // reverse it
e.getMultiplierX(), e.getMultiplierY(), e.getTextDeltaXUnits(),
e.getTextDeltaX(), e.getTextDeltaYUnits(), e.getTextDeltaY(),
e.getTouchCount(), e.getPickResult()
);
return originalDispatcher.dispatchEvent(reversedEvent, tail);
}
return originalDispatcher.dispatchEvent(event, tail);
}
});
}
我想看看你对我的解决方案的看法。:)这也是我第一次直接使用EventDispatchers,所以我想知道我是否做错了什么。它似乎运行良好,但问:)也无妨
问题内容: 我在寻找解决方案时遇到了麻烦。我正在尝试使用JS(或其他库)来制作它,以便当用户在鼠标滚轮上向下滚动时,页面以与通常相反的方式滚动。 基本上,我希望页面的底部首先显示,并且随着用户滚动,我希望屏幕的顶部向下显示。我能够找到的唯一示例是http://conduit.com/的右列。 我已经建立了一个JSFiddle并提供了一个示例来帮助对其进行可视化。我知道这可能与以下内容有关: 但老实
我想在这里做三件事: 在选定项目或其他内容之前,禁止滚动到下一个屏幕 阻止滚动到上一个屏幕(部分实现) 向用户提供反馈,以显示滚动被禁用,就像Android用渐变显示顶部和底部屏幕的方式一样。
最近,当按下新的ViewController时,我的应用程序开始进行滚动跳跃,如下所示: 我尝试过不同的答案,但似乎没有任何效果。我已经了解到,我的应用程序设置负偏移到后,我设置: } 我试图找到什么是设置偏移量,我已经了解到setContentOffset它是从调用:
问题内容: 因此,我正在尝试使用JavaScript 调用函数。但是我想知道是否可以在不使用jQuery的情况下检测滚动方向。如果没有,那么有什么解决方法吗? 我本来只是想放一个“置顶”按钮,但我想避免这种情况。 我现在刚刚尝试使用此代码,但是没有用: 问题答案: 可以通过存储先前的scrollTop值并将其与当前scrollTop值进行比较来检测到它。 JS:
问题内容: 我正在尝试进行反向无限滚动。我有,我收到了近10篇最近的评论,并希望用户能够滚动评论列表 最多 检索下一个10 -类似FB它显示了最近的评论的“获取前”链接,而是通过滚动事件,而不是链接。 我从http://jsfiddle.net/vojtajina/U7Bz9/开始,尝试将其修改为反向无限滚动,并很快以如下形式结束了: http://jsfiddle.net/digger69/Fw
问题内容: 我想构建一个聊天系统,并在进入窗口和收到新消息时自动滚动到底部。如何在React中自动滚动到容器的底部? 问题答案: 正如Tushar所提到的,您可以在聊天的底部保留一个虚拟div: 然后在组件更新时滚动到它(即,随着添加新消息而更新状态): 我在这里使用标准的Element.scrollIntoView方法。
问题内容: 每次(第一次除外),我在JEditorPane中设置的文本滚动条都会跳到JEditorPane的底部。有什么办法可以避免这种情况?我尝试的一种方法是在setText()之后使用setCaretPosition(0)。它可以工作,但这并不是我真正需要的。滚动条向下跳然后向上跳。有没有一种方法可以避免settext()上滚动条的任何移动? 我的代码: 问题答案: 有不同的方法可以做到这一点
本文向大家介绍js实现无缝滚动图(可控制当前滚动的方向),包括了js实现无缝滚动图(可控制当前滚动的方向)的使用技巧和注意事项,需要的朋友参考一下 这个版本可以控制左右滚动,鼠标点击对应的广告会自动滑动把广告完全展示出来。还实现了记录当前滚动的方向,当鼠标离开,接着继续滚动!!! 效果图: 代码如下: 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持呐