打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
blink的SpatialNavigationEnabled会引起刷新区域过大

blink里的setting,有个SpatialNavigation,设置为true的话,在

EventHandler::handleMouseFocus -》 element->isMouseFocusable()里会判断这个settings,

> miniblink.dll!blink::ElementRuleCollector::collectMatchingRules  miniblink.dll!blink::StyleResolver::matchRuleSet  miniblink.dll!blink::StyleResolver::matchUARules  miniblink.dll!blink::StyleResolver::matchAllRules  miniblink.dll!blink::StyleResolver::styleForElement  miniblink.dll!blink::Element::originalStyleForLayoutObject  miniblink.dll!blink::Element::styleForLayoutObject  miniblink.dll!blink::Element::recalcOwnStyle  miniblink.dll!blink::Element::recalcStyle  miniblink.dll!blink::ContainerNode::recalc  miniblink.dll!blink::Element::recalcStyle  miniblink.dll!blink::ContainerNode::recalcChildStyle  miniblink.dll!blink::Element::recalcStyle  miniblink.dll!blink::ContainerNode::recalcChildStyle  miniblink.dll!blink::Element::recalcStyle  miniblink.dll!blink::ContainerNode::recalcChildStyle  miniblink.dll!blink::Element::recalcStyle  miniblink.dll!blink::ContainerNode::recalcChildStyle  miniblink.dll!blink::Element::recalcStyle  miniblink.dll!blink::ContainerNode::recalcChildStyle  miniblink.dll!blink::Element::recalcStyle  miniblink.dll!blink::Document::updateStyle  miniblink.dll!blink::Document::updateLayoutTree  miniblink.dll!blink::Document::updateLayoutTreeIfNeeded()  miniblink.dll!blink::Document::setFocusedElement  miniblink.dll!blink::FocusController::setFocusedElement  miniblink.dll!blink::EventHandler::handleMouseFocus

这样,如果SpatialNavigationEnabled为true,大部分元素都拥有了focusable的能力。而blink的默认样式有一句

:focus {    outline: auto 5px -webkit-focus-ring-color}

所以会让元素拥有一个焦点框。

而焦点框会在LayoutObject::paintInvalidationReason里,

走到这句

    if (styleRef().outlineStyleIsAuto())        return PaintInvalidationFocusRing;

返回一个

PaintInvalidationFocusRing

的刷新原因。

这个会导致整个layer被刷新。

如果网页很长,或者div很长的话,这个刷新有可能是全屏的。代价非常大。

搜了下这个settings,是为无障碍化设计的,貌似是用键盘上下左右键来控制焦点转移的。一般是默认关闭状态。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Miniblink 调用 Video.js 播放视频
教程:使用web.blink (miniblink) 嵌入瀏覽器控件
Delphi写ShellCode获取Kernel32.DLL的地址. | 武稀松(wr960204)的博客
由浅入深 恶意软件逃避检测的六个秘密之地
关机显示*.exe-DLL初始化失败
Delphi实现HTMLWebBrowser实现HTML界面
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服