本文整理汇总了C++中ContainerNode::computedStyle方法的典型用法代码示例。如果您正苦于以下问题:C++ ContainerNode::computedStyle方法的具体用法?C++ ContainerNode::computedStyle怎么用?C++ ContainerNode::computedStyle使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ContainerNode
的用法示例。
在下文中一共展示了ContainerNode::computedStyle方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ASSERT
Vector<double> SnapCoordinator::snapOffsets(const ContainerNode& element,
ScrollbarOrientation orientation) {
const ComputedStyle* style = element.computedStyle();
const LayoutBox* snapContainer = element.layoutBox();
ASSERT(style);
ASSERT(snapContainer);
Vector<double> result;
if (style->getScrollSnapType() == ScrollSnapTypeNone)
return result;
const ScrollSnapPoints& snapPoints = (orientation == HorizontalScrollbar)
? style->scrollSnapPointsX()
: style->scrollSnapPointsY();
LayoutUnit clientSize = (orientation == HorizontalScrollbar)
? snapContainer->clientWidth()
: snapContainer->clientHeight();
LayoutUnit scrollSize = (orientation == HorizontalScrollbar)
? snapContainer->scrollWidth()
: snapContainer->scrollHeight();
if (snapPoints.hasRepeat) {
LayoutUnit repeat = valueForLength(snapPoints.repeatOffset, clientSize);
// calc() values may be negative or zero in which case we clamp them to 1px.
// See: https://lists.w3.org/Archives/Public/www-style/2015Jul/0075.html
repeat = std::max<LayoutUnit>(repeat, LayoutUnit(1));
for (LayoutUnit offset = repeat; offset <= (scrollSize - clientSize);
offset += repeat) {
result.append(offset.toFloat());
}
}
// Compute element-based snap points by mapping the snap coordinates from
// snap areas to snap container.
bool didAddSnapAreaOffset = false;
if (SnapAreaSet* snapAreas = snapContainer->snapAreas()) {
for (auto& snapArea : *snapAreas) {
Vector<FloatPoint> snapCoordinates =
localToContainerSnapCoordinates(*snapContainer, *snapArea);
for (const FloatPoint& snapCoordinate : snapCoordinates) {
float snapOffset = (orientation == HorizontalScrollbar)
? snapCoordinate.x()
: snapCoordinate.y();
if (snapOffset > scrollSize - clientSize)
continue;
result.append(snapOffset);
didAddSnapAreaOffset = true;
}
}
}
if (didAddSnapAreaOffset)
std::sort(result.begin(), result.end());
return result;
}