- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
最近我一直致力于为 Angular 构建 TreeView 组件库,如 ngx-tree .
在我弄清楚如何为这个库实现一个虚拟滚动功能以提高大数据集的性能,并让它在 Firefox 中正常运行后不久,我就被一种奇怪的滚动行为所困在 Blink - 包含浏览器(如 Chromium、Chrome、Opera)。
Here is the demo plunkr --
https://embed.plnkr.co/xMpmK5EBC46tDKpYFpw8see Update #1 below
scrollTop
属性)上下跳动,导致闪烁 TreeView 并分解虚拟滚动功能。在中国,有一些加壳浏览器源自Chromium项目(如360se、QQ浏览器、搜狗浏览器、UC浏览器),旧版本的V8和blink。而且它们没有那种奇怪的滚动行为。
是否是 Chromium 团队对滚动实现的一些优化(如平滑滚动)引起的?
希望得到一些指导!!! (≧﹏≦)
更新 #1
Demo link update with event log: https://embed.plnkr.co/GpQBZsguhZZOQWWbZnqI/
在打开 devtool 查看日志之前必须测试滚动
我必须多解释一下虚拟滚动的工作原理以及导致闪烁的原因。
首先,查看 design of Virtual Scrolling .
虚拟滚动的一个关键点是,我们创建了一个与没有虚拟滚动检测的区域大小相同的假滚动区域。因此,在最佳情况下,滚动区域的滚动条位置不应更改,直到某些预期事件触发其更改。对于滚动事件,我们为每个动画帧更新 View 。
在一个高度固定的滚动区域内,我们假设一个事实,即如果我们适本地模拟那些未渲染元素的高度(可能有 >动画帧内的计算精度有点偏差)。
但是,根据我的观察结果,blink 系列浏览器似乎执行不同的策略来更新可滚动元素的 scrollTop。它更新 scrollTop 的时间与非闪烁系列浏览器不同。到目前为止我已经弄清楚了。
我在这里制作了一些 gif 来显示 Chrome、Firefox 和 Edge 的输出。
最佳答案
您正在从 virtual-scroll-demo-branch
分支中拉取库:
'ngx-tree': 'https://rawgit.com/e-cloud/ngx-tree/virtual-scroll-demo-branch/src/lib',
该分支落后于 master 105 次提交。它在其中一个内部元素上错误地设置了 margin-top
。这是 fixed in newer versions .
编辑:开发人员实际上在他们的 commit message 中引用了这个 Stack Overflow 问题.
关于javascript - 最新包含 Blink 的浏览器(如 Chrome、Opera)中的奇怪滚动行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44995749/
我在显示带有顶部/底部边框和边框半径的 block 时遇到问题。不知道为什么边框内会出现内半径。请查看下面的屏幕截图和代码。 http://img703.imageshack.us/img703/30
前一段时间我为自己制作了一个小页面,我偶然发现了一个错误,此后一直无法回答。 打开时http://darngoodpictures.com/#showme您会在左侧和右侧看到导航箭头。这些完全是 CS
我们目前正在通过 https://addons.opera.com/developer/ 上传我们扩展的每个新版本 因为我们需要为 Chrome 和 Firefox 执行类似的任务,所以整个过程变得乏
我开发了一个 Opera 扩展。它工作正常。但是我需要在 Windows 注册表或 Windows 文件系统中安装我的扩展。我该怎么做? 最佳答案 NOTE: THIS QUESTION IS OPE
大多数专业网站都提到 Opera 用户代理都包含单词 《歌剧》 . This kinda old post一位 Opera 开发人员提到了字符串 'OPR' 反而。 重点是:我的网站定期收到来自“OP
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我在Dragonfly features page上看到除了稳定版之外,Dragonfly 还有实验版和前沿版。 当我在 Opera 中打开 Dragonfly 时,看起来正在使用稳定版本。如何让 O
Opera Unite (可以充当服务器的 Web 浏览器)刚刚发布,他们声称您可以构建 Web 服务,以便其他人可以访问您的浏览器。我有兴趣为该平台制作程序。 有人可以指点我一个关于如何为 Oper
我正在上传我的第一个 Opera 扩展。这很简单。它是一个启动弹出窗口的工具栏按钮。它在 Opera 开发者模式下运行良好。 Opera 不允许我成功上传它。它一直说缺少persona.ini 文件。
我正在使用 operatv 模拟器进行调试。我想知道是否存在远程调试,即我的应用程序在 Sony 上运行并在我的系统控制台上登录 最佳答案 如上所述: Download Opera and start
有什么方法可以使用 Opera 的用户 JavaScript 函数在特定的、开发人员定义的位置下载和存储文件吗? 谢谢。 最佳答案 事实上,只有小部件和 Opera 10 及更高版本才能实现纯 Jav
我用过this link并如前所述在本地安装了 Opera Dragonfly。但现在我无法加载 JavaScript 进行调试。附上错误截图。关于解决这个问题的任何想法? 我正在使用 Opera 1
是否有适用于 Opera 的 React 开发插件? Opera (DragonFly) 和 Chrome 开发工具看起来几乎相同。似乎没有支持 React 开发的 Opera 插件。考虑到它们几乎相
我正在尝试让 WebGL 与 Opera 12.0 (Mac OS X Lion) 一起运行。 Opera Website声明支持 WebGL,但如果我通过 WebGL check 检查它网站,Ope
是 WebKit 吗?急速? V8 引擎是专用于 Chrome 的吗? 最佳答案 WebKit 和 Presto 不是 Javascript 引擎,而是渲染引擎。 Opera 之前使用名为“Carak
我想知道 chrome.storage.sync 在 Opera 中是如何同步的。 文档谈到 Opera Sync,是 Opera Link 吗?是否有任何网页可以指导用户如何启用 chrome.st
我正在制作一个跨浏览器扩展,它覆盖了标准的“新标签”页面。 有一个manifest.json key ,称为 chrome_url_overrides : "chrome_url_overrides"
我正在为移动设备制作一个小部件,我想为我的小部件保存一些 xml 文件和图像文件,但是当我在 opera widget Mobile emulator for windows 中测试这段代码时,我没有
有人熟悉 CSS3 中的框阴影这个错误吗? 一开始它呈现正常。但是当上下滚动页面时(所以阴影进出可见区域)水平线的阴影会出错,需要重新加载才能正确渲染。我只在 Opera 中遇到过这种情况,在 IE(
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visi
我是一名优秀的程序员,十分优秀!