You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Andres Zsogon (JIRA)" <ji...@apache.org> on 2016/08/05 01:00:32 UTC

[jira] [Commented] (CB-6231) Better approach for preventing rubberband in Windows Phone 8

    [ https://issues.apache.org/jira/browse/CB-6231?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15408721#comment-15408721 ] 

Andres Zsogon commented on CB-6231:
-----------------------------------

This solution, as explained, works partially because it fixes one of the scrolling issues (overscroll not caused by inertia). This is very good.

My question is, why this fix has not yet been implemented on Cordova 6.x? Using the DisallowOverscroll property on WP8, the scrolling process is completely absurd, because it is ignored until some ontouchend even fires. This inertia-based scrolling process is totally criminal and should by punished by law.

Please tell me if someone has come with a complete solution that really fixes the overscroll issue WITHOUT screwing up the normal, real-time scrolling method. Thanks.

> Better approach for preventing rubberband in Windows Phone 8
> ------------------------------------------------------------
>
>                 Key: CB-6231
>                 URL: https://issues.apache.org/jira/browse/CB-6231
>             Project: Apache Cordova
>          Issue Type: Improvement
>          Components: WP8 (deprecated)
>    Affects Versions: 3.4.0
>            Reporter: Dan Polivy
>            Assignee: Jesse MacFadyen
>            Priority: Minor
>              Labels: scrolling
>             Fix For: 3.7.0
>
>
> I've been looking for a good solution for the "DisallowOverscroll" setting that works on Windows Phone 8; I've tried the {{this.CordovaView.DisableBouncyScrolling}} setting, but it has the side effect of making "intended" scrolling feel really sluggish, because it only responds to swipes and doesn't track real-time under one's finger.
> Using [this approach|http://stackoverflow.com/questions/21652548/bouncing-when-overflow-set-to-auto-or-scroll-in-wp8-webbrowser-control], I came up with an alternate implementation that works in the same scenarios as {{DisableBouncyScrolling}}, but feels a lot nicer. Note that with _both_ implementations, if inertia causes the scrolling to hit the top or bottom, you still get a small bounce -- I don't think there's any way to avoid that on WP8 at the moment.
> I thought I'd share it here, in case you'd like to add it as another option in the WP8 Cordova implementation. I'm happy to attempt a pull request if you'd like (just not sure the best place for the JS code to live if it's part of the 'system').
> {code:title=BrowserMouseHelper.cs|borderStyle=solid}
>             // This goes in the Border_ManipulationDelta event handler
>             var preventScroll = _browser.InvokeScript("eval", new string[] { "(function(delta) { return isScrollingPrevented(delta); })(" + e.DeltaManipulation.Translation.Y.ToString() + ")" }) as string;
>             if (preventScroll == "true")
>             {
>                 e.Handled = true;
>             }
> {code}
> {code:title=.js file|borderStyle=solid}
> // This goes in a JS file that's part of the app; I'm using jQuery, but it can be written without that dependency
> isScrollingPrevented = function(delta) {
> 	var scrollTop = $(document).scrollTop(),
> 		top = scrollTop === 0,
> 		bottom = scrollTop + $(window).height() === $(document).height();
> 	return ((top && delta > 0) || (bottom && delta < 0)).toString();
> };
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org