Polymer 从网络加载图像后,铁名单与纸卡重叠
我正在使用聚合物Polymer 从网络加载图像后,铁名单与纸卡重叠,polymer,web-component,polymer-starter-kit,progressive-web-apps,Polymer,Web Component,Polymer Starter Kit,Progressive Web Apps,我正在使用聚合物铁制列表和纸质卡片,但问题是在改变设备方向之前,所有卡片都是重叠的。 在纸卡的图像加载后,如何调用铁艺列表的notifyResize() <iron-list items="[[data.data]]" as="item" scroll-target="document"> <template> <div style="margin-top: 20px"> <!
铁制列表
和纸质卡片,但问题是在改变设备方向之前,所有卡片都是重叠的。
在纸卡的图像加载后,如何调用铁艺列表的notifyResize()
<iron-list items="[[data.data]]" as="item" scroll-target="document">
<template>
<div style="margin-top: 20px">
<!--Card with header image-->
<paper-card heading="Emmental" image="http://placehold.it/350x150/FFC107/000000" alt="Emmental">
<div class="card-content">
<b>#[[index]] - [[item.category]]</b>
<p>[[item.heading]]</p>
</div>
<div class="card-actions">
<paper-button>Share</paper-button>
<paper-button>Explore!</paper-button>
</div>
</paper-card>
</div>
</template>
</iron-list>
#[[index]]-[[item.category]]
[[项目.标题]]
分享
探索!
您将在iron sort
元素本身上运行notifyResize()
方法
<iron-list items="[[data.data]]" as="item" scroll-target="document">
...
</iron-list>
document.querySelector('iron-list').notifyResize()
...
document.querySelector('iron-list').notifyResize()
您将在iron sort
元素本身上运行notifyResize()
方法
<iron-list items="[[data.data]]" as="item" scroll-target="document">
...
</iron-list>
document.querySelector('iron-list').notifyResize()
...
document.querySelector('iron-list').notifyResize()
我刚刚在开发我的应用程序时遇到了同样的问题,下面是我提出的解决方案,但是,根据你将什么样式应用到铁名单上,你的里程可能会有所不同
Polymer
({
is: "tt-itinerary-list",
properties:
{
list:
{
type: Array,
value:[]
}
},
init: function(data)
{
var instance = this;
instance.set("list", data);
instance.async(instance._monitorImageLoad, 200);
},
_monitorImageLoad: function()
{
var instance = this;
var images = instance.querySelectorAll("paper-card .header img");
for(var i = 0; i < images.length; ++i)
{
(function(image)
{
// if image is already loaded
if(image.complete)
{
instance._resizeList();
}
// wait for the image to load
else
{
image.addEventListener
(
"load",
instance._resizeList.bind(instance)
)
}
})(images[i]);
}
},
_resizeList: function()
{
var instance = this;
instance.$.list.fire("iron-resize");
}
});
聚合物
({
是:“tt行程表”,
特性:
{
名单:
{
类型:数组,
值:[]
}
},
init:函数(数据)
{
var实例=这个;
实例集(“列表”,数据);
异步(instance.\u monitorImageLoad,200);
},
_monitorImageLoad:函数()
{
var实例=这个;
var images=instance.queryselectoral(“纸卡.表头img”);
对于(变量i=0;i
基本上,当我们获得新数据时,我们调用init
函数。然后我们异步调用\u monitorImageLoad
函数,该函数迭代纸卡
标题中的所有图像,然后监视它们的加载过程。如果图像已经加载,我们只需通知需要调整大小的iron list
(通过iron resize
事件),否则我们会等待它加载后再通知。我刚刚在开发我的应用程序时遇到同样的问题,下面是我提出的解决方案,然而,根据你在铁名单上使用的风格,你的里程数可能会有所不同
Polymer
({
is: "tt-itinerary-list",
properties:
{
list:
{
type: Array,
value:[]
}
},
init: function(data)
{
var instance = this;
instance.set("list", data);
instance.async(instance._monitorImageLoad, 200);
},
_monitorImageLoad: function()
{
var instance = this;
var images = instance.querySelectorAll("paper-card .header img");
for(var i = 0; i < images.length; ++i)
{
(function(image)
{
// if image is already loaded
if(image.complete)
{
instance._resizeList();
}
// wait for the image to load
else
{
image.addEventListener
(
"load",
instance._resizeList.bind(instance)
)
}
})(images[i]);
}
},
_resizeList: function()
{
var instance = this;
instance.$.list.fire("iron-resize");
}
});
聚合物
({
是:“tt行程表”,
特性:
{
名单:
{
类型:数组,
值:[]
}
},
init:函数(数据)
{
var实例=这个;
实例集(“列表”,数据);
异步(instance.\u monitorImageLoad,200);
},
_monitorImageLoad:函数()
{
var实例=这个;
var images=instance.queryselectoral(“纸卡.表头img”);
对于(变量i=0;i
基本上,当我们获得新数据时,我们调用init
函数。然后我们异步调用\u monitorImageLoad
函数,该函数迭代纸卡
标题中的所有图像,然后监视它们的加载过程。如果图像已经加载,我们只需通知需要调整大小的iron list
(通过iron resize
事件),否则我们将等待加载后再通知