gpt4 book ai didi

Polymer 1.0 - 纸张波纹遍布整个屏幕,而不是适合元素

转载 作者:行者123 更新时间:2023-12-04 13:59:25 25 4
gpt4 key购买 nike

我正在尝试在可点击的项目列表上使用涟漪效应,但是当我将该列表封装到自定义元素中时,我面临的问题是涟漪效应遍布整个屏幕。如果我将它放在我的 index.html 中效果很好,但是当我创建包含在那里的自定义元素时会失败。查看问题的图片:

enter image description here

我一直在阅读类似的问题,答案是使容器相对,这应该已经完成​​。所以我想知道在使用自定义元素的波纹效果时是否需要在主机中设置任何特殊属性。

我的示例代码如下。

索引.html

<!doctype html>
<html lang="">

<head>
<meta charset="utf-8">
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>List test</title>
<script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="elements/elements.html">
<style>
paper-icon-item {
position: relative;
height: 48px;
}
</style>
</head>
<body unresolved class="fullbleed layout vertical">
<template is="dom-bind" id="app">
<my-list></my-list>
</template>
<script src="scripts/app.js"></script>
</body>
</html>

我的列表.html
<dom-module id="my-list">
<style>
paper-icon-item {
position: relative;
height: 48px;
}
</style>
<template>
<section>
<div class="menu">
<paper-icon-item>
<div class="label" fit>Mark as unread</div>
<paper-ripple></paper-ripple>
</paper-icon-item>
<paper-icon-item>
<div class="label" fit>Mark as important</div>
<paper-ripple></paper-ripple>
</paper-icon-item>
<paper-icon-item>
<div class="label" fit>Add to Tasks</div>
<paper-ripple></paper-ripple>
</paper-icon-item>
<paper-icon-item>
<div class="label" fit>Create event</div>
<paper-ripple></paper-ripple>
</paper-icon-item>
</div>
</section>
</template>

</dom-module>
<script>
(function () {
Polymer({
is: 'my-list'
});
})();
</script>

将 index.html 中的 替换为 my-list.html 的部分标记内容(包括部分标记)时,涟漪效果可以正常工作。波纹中的 fit 属性也没有解决问题。我在自定义组件中缺少什么?

最佳答案

注意:如果您在 paper-ripple 的最新版本中遇到此行为或类似行为,此答案解决的问题很可能不是您遇到的问题(请参阅下面的更新)。
paper-ripple具有以下 CSS(仅显示相关行):

:host {
display: block;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}

如果 paper-ripple的父元素没有 position: relative设置,这将导致波纹填充第一个 position: relative它找到的父级(可能不是其直接父级)或整个文档,以先到者为准。

要解决此问题,请确保您使用的元素 paper-ripple在有 position: relative在它的 CSS 中。

更新 (2015 年 6 月 15 日) : paper-ripple 1.0.1 于 2015 年 6 月 11 日发布,其中包括 the PR fixing this problem ,进行此答案中推荐的修复 过时的。 只需更新 bower.json绑定(bind)到 PolymerElements/paper-ripple#^1.0.1 .

此问题是由 a current issue with paper-ripple 引起的.正在发生的事情是 paper-ripple元素的目标是 my-list元素而不是其父 paper-icon-item元素。

目前有两种方法可以解决此问题:
  • 同时,创建一个具有 paper-ripple 的自定义元素阴影/阴影 DOM 中的元素,并调整其大小以适合您的元素。

    例如:


  • <dom-module id="ripple-wrapper">
    <style is="custom-style">
    :host {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    }
    </style>
    <template>
    <paper-ripple></paper-ripple>
    </template>
    </dom-module>
    <script>
    Polymer({ is: 'ripple-wrapper' });
    </script>
  • 我已提交 pull request到包含此问题修复程序的存储库。但是,目前它尚未合并。现在,您可以告诉 bower 安装 paper-ripple 的修补副本。通过设置 paper-ripple 的版本在您的 bower.json文件到 vsimonian/paper-ripple#containment-fix .

    如果您这样做,我强烈建议您密切关注 issuepull request以便您可以恢复 bower.json 中的临时更改当不再需要它们时。
  • 关于Polymer 1.0 - 纸张波纹遍布整个屏幕,而不是适合元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30631617/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com