在WebView UWP中平滑滚动

时间:2017-02-09 22:57:51

标签: c# webview uwp smooth-scrolling

WebView UWP中的scrollTo可以通过以下方式实现:

private string ScrollToTopString = @"window.scrollTo(0,0);";
private async void ButtonClick(object sender, RoutedEventArgs e)
{
    await WebViewTest.InvokeScriptAsync("eval", new string[] { ScrollToTopString });
}

但是WebView UWP中的动画/平滑滚动怎么样?在官方或通过变体实现的Android中(例如,使用android.animation.ObjectAnimator),而在UWP中,只有ScrollViewer似乎支持它,据我所知。 Example 1 Example 2

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您无法为WebView设置动画,因为WebView本身并非实际滚动,就像您的浏览器实际上没有滚动一样;它是"窗口"滚动的元素。

但是,如果我理解您的想法,请将ScrollToTopString替换为:

var ScrollToTopString = @"var int = setInterval(function() { 
window.scrollBy(0, -5);

if( window.pageYOffset === 0 )
    clearInterval(int);
}, 1);";

这将滚动"窗口"我提到过的元素。您可以提高间隔的速度(我将其设置为1)以减慢动画速度,或降低scrollBy的值以使其更快。