Based on our feedback,
In the meantime, while you continue to troubleshoot the issue, consider experimenting with Iscroll 5 for horizontal scrolling of the cards within the App to see if it functions properly.
I have personally utilized Iscroll 5 for my own App, implementing both horizontal and vertical scrolls with hundreds of items without experiencing any performance issues on Polymer. To optimize performance further, I disabled bounce in the Iscroll options using ,bounce: false
If your Cards require Click events, make sure to include ,click:true
in the Iscroll options
You can find a guide for Iscroll 5 here
The demo illustrates how Iscroll is created for each row when users scroll horizontally to conserve resources. The original demo featured in my comments was designed for the JQM framework which includes built-in Swipe detection.
While version 0.5 of Polymer offers integrated Touch functionality, I am uncertain about version 1's features as I have not yet utilized it https://www.polymer-project.org/0.5/docs/polymer/touch.html
I have also developed another Demo specifically for Polymer that employs JavaScript Touch events to detect only horizontal movements, eliminating the need for additional Touch gesture plugins in the App
Demonstration: I have set a 5-second delay for the code initialization. A majority of the code pertains to managing touch events. Within the function slide(x) {
section, you will find around 10 lines dedicated to Iscroll integration
http://codepen.io/anon/pen/pJRmLo
Code
var slides = 17; //number of items per row
var totalwidth = slides * 80; //total width calculation based on item width
$(".scroller").css("width", totalwidth+"px"); //setting the overall width of the horizontal wrapper
// touch function
var startPos;
var handlingTouch = false;
var itemis;
setTimeout(function() {
// touch event listeners
function slide(x) {
//implementation details for Iscroll
}
var swipeOrigin, x, itempos;
function onSwipeStart(e) {
// determining the touched element
itemis = $(e.target).closest("div");
swipeOrigin = e.touches[0].clientX;
}
function onSwipeMove(e) {
x = e.touches[0].clientX - swipeOrigin;
}
function onSwipeEnd(e) {
//determining direction of swipe and triggering actions accordingly
if (x > 35) {
slide(0);
}
else {
slide(0);
}
}
}, 5000);
The touch function outlined above was initially used for moving list items via touch gestures, similar to the Gmail App, for both JQM and Polymer list items. It can be applied horizontally in scenarios where Iscroll is not conventionally utilized, essentially activating Iscroll for a row upon horizontal touch movement.
Feel free to explore my alternative use of the function in the provided Link.
jQuery touchSwipe event on element prevents scroll