导航跟随滚动条置顶移动


#topmenu{position:absolute;top:100px;background:#4b4a4a;width:100%;margin:0 auto;clear:both;overflow:hidden;z-index:998;left:0}


<script type="text/javascript">

    jQuery(document).ready(function() {
        var topmenu = jQuery("#topmenu");
        var topmenu_top = topmenu.offset().top;
        reset_topmenu_top(topmenu, topmenu_top);
        jQuery(window).scroll(function() {
            reset_topmenu_top(topmenu, topmenu_top);
        });
    });
function reset_topmenu_top(topmenu, topmenu_top) {
    var document_scroll_top = jQuery(document).scrollTop();
    if (document_scroll_top > topmenu_top) {
        topmenu.css('top', document_scroll_top);
    }
    if (document_scroll_top <= topmenu_top) {
        topmenu.css('top', topmenu_top);
    }
}

</script>

效果图如下:


在Qt中,要创建一个滚动条(QScrollBar)跟随鼠标指针移动,通常是在处理窗口或控件的鼠标滚轮事件(QWheelEvent)时动态更新滚动条的位置。以下是一个简单的例子,展示了如何在一个窗口中做到这一点: ```cpp #include <QApplication> #include <QWidget> #include <QVBoxLayout> #include <QScrollBar> #include <QWheelEvent> class ScrollableWindow : public QWidget { public: ScrollableWindow(QWidget *parent = nullptr) : QWidget(parent), scrollBar(new QScrollBar(Qt::Horizontal)) { QVBoxLayout* layout = new QVBoxLayout(); setLayout(layout); // 设置初始滚动范围 scrollBar->setRange(0, 100); // 当鼠标滚轮被按下时,开始跟踪 connect(scrollBar, &QScrollBar::valueChanged, this, &ScrollableWindow::scrollBarValueChanged); connect(this, &ScrollableWindow::wheelEvent, this, &ScrollableWindow::handleWheelEvent); layout->addWidget(scrollBar); } private slots: void scrollbarValueChanged(int value) { // 更新窗口内部视图的滚动位置,根据scrollBar的变化 // 这里只是一个占位,你需要根据实际情况替换为更新视图的部分 int viewScrollPosition = ...; // 根据value计算视图滚动位置 // 设置窗口视图的新位置 updateViewScroll(viewScrollPosition); } void handleWheelEvent(QWheelEvent *event) { if (event->delta() > 0) { // 如果向上滚 // 增加滚动条值,模拟更多滚动 scrollBar->setValue(scrollBar->value() + 5); // 可以调整步长 } else if (event->delta() < 0) { // 如果向下滚 scrollBar->setValue(scrollBar->value() - 5); // 反之亦然 } } // 这个方法需要根据视图的具体实现来实现,比如QListView、QTableView等 virtual void updateViewScroll(int position) {} }; int main(int argc, char *argv[]) { QApplication app(argc, argv); ScrollableWindow window; window.show(); return app.exec(); } ``` 在这个示例中,`scrollBarValueChanged`槽函数会在滚动条滑动时被调用,而`handleWheelEvent`则在接收到鼠标滚轮事件时增加或减少滚动条的值。`updateViewScroll`方法是你需要根据你的具体视图类型来实现的,它负责更新视图的实际滚动
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值