【问题标题】:Smooth scrollTo in WebView UWPWebView UWP 中的平滑滚动到
【发布时间】:2017-02-09 22:57:51
【问题描述】:

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.animation.ObjectAnimator)实现的 Android 中,据我所知,在 UWP 中似乎只有 ScrollViewer 支持它。 Example 1Example 2

有什么想法吗?

【问题讨论】:

    标签: c# webview uwp smooth-scrolling


    【解决方案1】:

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

    但是,如果我正确理解您的需求,只需将您的 ScrollToTopString 替换为:

    var ScrollToTopString = @"var int = setInterval(function() { 
    window.scrollBy(0, -5);
    
    if( window.pageYOffset === 0 )
        clearInterval(int);
    }, 1);";
    

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

    【讨论】:

    • 完美。非常感谢您澄清条款并帮助我。都是关于"window" object
    猜你喜欢
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    • 1970-01-01
    相关资源
    最近更新 更多