【问题标题】:Stretchy Headers in JavaScriptJavaScript 中的可伸缩标题
【发布时间】:2015-06-11 20:07:52
【问题描述】:

我想实现这个 GIF 中看到的 Stretchy Header 功能:

https://s3.amazonaws.com/nrjio/Stretchy-480.gif

目前,我在 iPhones WebView 上所做的是在滚动上调用 Scope 函数(尤其是关注橡皮筋滚动)并使用 CSS Calc 函数调整图像高度,如下所示:

查看:

/* Call a Function on Scroll to Enlarge, and on Release to Reset Header.  */

<ion-content on-scroll="onScroll()" on-release="onRelease()">


//Actual Image to be Scrolled when Rubberband Scrolling up, similarly to the GIF: 

<div id="header_image" ng-style="{'background' : url('someimage.jpg') center center', 'width' : '100%', 'height' : 'calc(40% + '+dynamic_height+'px)'}"></div>

控制器:

$scope.onScroll = function() {

 //Only do funny stuff when Overscrolling on iOS

 if ($ionicScrollDelegate.getScrollPosition().top < 0)
 {
   //Adjust Height of Header by Scrolled Value
   $scope.dynamic_height = ($ionicScrollDelegate.getScrollPosition().top*-1);
   $scope.$apply();
 }
};

(请注意,此设置使用 Ionic Framework 和 Angular JS。但这与此问题的一般解决方案没有太大关系)

我还没有实现应该运行的释放功能,当用户放开滚动,并将标题图像重置为初始高度(在本例中:40%+0px) .

此当前解决方案无法正常工作,因为每次我们过度滚动时,内容都会将滚动位置重置为 0,从而导致闪烁。我愿意设置一个 Codepen,但也许有人已经想出了一个现成的解决方案?

【问题讨论】:

    标签: javascript ios css angularjs ionic-framework


    【解决方案1】:

    是的,有人已经想出了一个可能的solution。
    header.style[ionic.CSS.TRANSFORM] = 'translate3d(0,'+translateAmt+'px,0) scale('+scaleAmt+','+scaleAmt+')';

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-26
      • 1970-01-01
      • 2019-11-24
      相关资源
      最近更新 更多