如何获得滚动条缩略图的正确位置?

我正在尝试检测滚动条的正确位置。有人可以解释一下是否有可能。滚动条缩略图没有固定的宽度。我正在使用nw.js,ES6和jQuery库。

以下是我的代码的简化摘录。

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包装器,请参见此处(此处未显示初始化,因为它与问题无关)。

这是我最终使用的解决方案。尽管由于动态宽度(我还没有检测到计算方法),我还没有找到直接获取右侧滚动条位置的任何尺寸的方法,但实际上我已经能够解决问题; 通过确定总内容的宽度(即可见内容+溢出内容),并减去可见内容宽度并滚动到左侧内容宽度,我们可以确定可滚动内容在视口中的最右端位置,(忽略任何可能的边框宽度)等于scollbar-thumb的正确位置。

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();
        //..
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用CSS更改滚动条缩略图的大小

来自分类Dev

如何获得左右缩略图的空白?

来自分类Dev

相对于元素scrollwidth的JS自定义滚动条缩略图大小问题

来自分类Dev

如何获得位置:固定;滚动条的行为

来自分类Dev

如何正确显示各种尺寸的缩略图?

来自分类Dev

如何更改WooCommerce缩略图的裁剪位置?

来自分类Dev

dropzone.js-如何控制缩略图的显示位置

来自分类Dev

如何在大图中找到缩略图的位置?

来自分类Dev

如何显示缩略图?

来自分类Dev

如何获得AutoScroll滚动条的厚度?

来自分类Dev

我如何获得真正的滚动条?

来自分类Dev

Wordpress无法正确裁剪缩略图

来自分类Dev

android聊天缩略图位置

来自分类Dev

jssor滑块缩略图位置

来自分类Dev

android聊天缩略图位置

来自分类Dev

如何获得面板上的滚动条位置?WinForms C#

来自分类Dev

如何更改最近的App缩略图?

来自分类Dev

如何获取缩略图以进行缩放?

来自分类Dev

如何重置缩略图缓存?

来自分类Dev

如何获取完整尺寸的缩略图?

来自分类Dev

如何让django缩略图显示图像?

来自分类Dev

如何获取帖子缩略图网址

来自分类Dev

如何使“特色图片/缩略图”响应?

来自分类Dev

如何从文件获取缩略图

来自分类Dev

如何停止wordpress创建缩略图?

来自分类Dev

如何防止缩略图图像拉伸?

来自分类Dev

如何快速获取JPEG缩略图

来自分类Dev

如何获取完整尺寸的缩略图?

来自分类Dev

如何获取缩略图以进行缩放?