首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎么才能得到滚动条缩略图的正确位置?

问我怎么才能得到滚动条缩略图的正确位置?
EN

Stack Overflow用户
提问于 2017-02-03 15:12:07
回答 1查看 131关注 0票数 0

我在试着找出滚动条拇指的正确位置。有谁能解释一下这是否可能。滚动条缩略图没有固定的宽度。我正在使用nw.js、ES6和jQuery库。

下面是我的代码的简化提取。

代码语言:javascript
复制
class C {
    constructor() {
        win.on('resize', this._resize.bind(this));
        $('#divId').on('scroll', this._scroll.bind(this));
    }

    _getXScrollbarThumbPos() {
        let lpos = $('#divId').scrollLeft();
        let rpos = lpos + SCROLLBAR_THUMBNAIL_WIDTH; // FIXME how can I get the scrollbarThumbnailWidth
        return rpos;
    }

    _resize() {
        let x = this._getXScrollbarThumbPos();
        //..
    }

    _scroll() {
        let x = this._getXScrollbarThumbPos();
        //..
    }
}

调整大小和滚动监听器工作正常,唯一的瓶颈是如何确定滚动条的宽度-缩略图。win是DOM窗口的nw.js包装器,参见这里 (这里没有显示初始化,因为它与问题无关)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-04 19:20:41

这就是我最终使用的解决方案。虽然由于动态宽度(也没有检测到计算方法),我还没有找到直接获得右滚动条-拇指位置的任何维度的方法,但实际上我已经解决了这个问题;通过确定总内容的宽度(即可视+溢出内容)的宽度,并减去可视内容的宽度和滚动到左侧的内容宽度,我们可以确定可滚动内容的最右边位置,在视图端口内(忽略任何可能的边框宽度)等于scollbar的正确位置。

代码语言:javascript
复制
class C {
    constructor() {
        win.on('resize', this._resize.bind(this));
        $('#divId').on('scroll', this._scroll.bind(this));
    }

    _getXScrollbarThumbPos() {
        // width of the content + overflow
        let totalWidth = $('#divId').scrollWidth;
        // width of the visible (non overflowing) content
        let viewWidth = $('#divId').width();
        // the amount of pixels that the content has been scrolled to the left
        let lpx = document.getElementById('#divId').scrollLeft;
        // the amount of pixels that are hidden to right area of the view
        let rpx = totalWidth - viewWidth - lpx;
        // represents the right position of the scrollbar-thumb
        console.log(rpx);
        return rpx;
    }

    _resize() {
        let x = this._getXScrollbarThumbPos();
        //..
    }

    _scroll() {
        let x = this._getXScrollbarThumbPos();
        //..
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42027354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档