AngularJS+Ionic:标签取决于滚动位置
AngularJS + Ionic: Label depending on scroll position
我有一个ion-content
可滚动项目,其中有一些锚可以跳到特定位置。在ion-content
外面,我有一个按钮,可以跳到下一个位置。例如:
Jump to Position2
**Position1**
Text
Text
Text
Text
**Position2**
Text
Text
Text
快速解决方案是在滚动完成时将侦听器连接到:
<ion-content delegate-handle="scroll1" on-scroll-complete="setTextForScroll()">
然后根据控制器中的滚动位置设置标签
var settingsScroller = $ionicScrollDelegate.$getByHandle('scroll1');
var posXScroll = settingsScroller.getScrollPosition().top;
if posXScroll === xy ...
但这是一个快速的解决方法。它无法在不同的屏幕大小或动态变化的屏幕上工作样板
我的下一个想法是做一个属性指令,将所有以这种方式标记的元素和渲染滚动中的位置添加到一个数组中,并计算当前哪个元素最接近滚动位置。
但现在我在将渲染的DOM元素的位置获取到控制器AND时遇到了问题我想也许我的方法是复杂的:/。
想法呢?非常感谢您的帮助!!听起来有点简单。。。滚动->标签。完成:D
Cheers AucklandDB
如果你想定义一个可以滚动到的锚点,只需在你的文档中你想到达的位置放上这样的东西
<a name="anchor"></a>
你可以通过这种方式到达这个位置:
<a href="#anchor">Go to anchor!</a>
你可以用离子的方式来做,检查文档
在html:中
<ion-content delegate-handle="myPageDelegate">
<a ng-click="scrollTo('Contact')"></a>
<div id="Contact">
//some content goes here
</div>
然后在js:中
myApp.controller('MyCtrl', function ($scope,$ionicScrollDelegate,$location) {
$scope.scrollTo = function(target){
$location.hash(target); //set the location hash
var handle = $ionicScrollDelegate.$getByHandle('myPageDelegate');
handle.anchorScroll(true); // 'true' for animation
};
});
相关文章:
- 有没有一种方法可以直接从cordova获得滚动位置
- 根据滚动位置动态更改href
- 是否可以使用flexbox显示模型设置元素的滚动位置
- 浏览器持续滚动位置
- Sammy.js缓存和滚动位置时,返回历史
- PHP保持滚动位置
- 按下后退按钮时,如何保持可滚动区域的滚动位置
- 滚动位置 (scrollTop) 硬件是否在浏览器中加速
- 在 React 中创建滚动位置指标
- 关闭移动菜单后恢复滚动位置
- 检测可滚动元素内的滚动位置
- 如何在反应性呈现新帖子时保持滚动位置
- UI 路由器 - 在状态之间转换时记住滚动位置
- 单击下拉列表时保持滚动位置(javascript)
- 保留选项后的滚动位置(单击时)
- js-scrollToEl获取滚动位置
- Backbone.js路由和滚动位置
- 如何更改页眉'的底部边框颜色取决于滚动位置
- 如何精确地获得页面的最大滚动位置
- 导航栏固定底部位置,当到达滚动位置时切换到静态