zoukankan      html  css  js  c++  java
  • Angularjs中ng-repeat与移动端滑动插件iScroll的冲突

    滑动不正常原因:
    1.在ng-repeat未将列表循环展示出来时,iScroll便被启动了,导致滑动异常,因此需要确保ng-repeat循环完毕后再初始化iScroll
    2.在动态的向ng-repeat循环列表中添加内容后,需要重新设置滑动区域#scroller的宽度,然后重新初始化一下iScroll插件

    <!DOCTYPE html>

    <html lang="en" ng-app="myApp">

    <head>

        <meta charset="UTF-8">

        <title>Title</title>

        <script src="https://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>

        <script src="https://cdn.bootcss.com/iScroll/5.2.0/iscroll.min.js"></script>

        <script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>

        <style>

            * {

                margin: 0;

                padding: 0;

            }

            #wrapper {

                position: absolute;

                z-index: 1;

                 100%;

                height: 100px;

                top:0;

                left:0;

            }

            #scroller {

                position: absolute;

                z-index: 1;

                 500px;

                height: 100%;

            }

            ul {

                 100%;

                height: 100%;

                text-align: center;

            }

            li {

                display: block;

                float: left;

                 100px;

                height: 100%;

                line-height: 100px;

            }

        </style>

    </head>

    <body ng-controller="myCtrl">

    <div>

        <div id="wrapper">

            <div id="scroller">

                <ul>

                    <li ng-repeat="item in names track by $index">

                        {{item}}

                    </li>

                </ul>

            </div>

        </div>

        <button ng-click="addItem()" style="margin-top: 350px">add</button>

    </div>

    <script>

        var app = angular.module('myApp', []);

        app.controller('myCtrl', ['$scope', function ($scope) {

            $scope.names = [1, 2, 3, 4, 5];

            $scope.count = 6;

            $scope.addItem = function () {

                $('#scroller').css('width', $scope.count * 100 + 'px');

                $scope.names.push($scope.count++);

                loaded();

            };

            var myScroll;

            window.onload = function () {

                loaded();

            };

            function loaded() {

                myScroll = new IScroll('#wrapper', {

                    scrollX: true,

                    scrollY: false,

                    mouseWheel: true

                });

            }

        }]);

    </script>

    </body>

    </html>

    你要的学习资料到了-WEB前端互动交流群04

    本裙会一直开放,欢迎喜欢交流的小伙伴们加入!

     

  • 相关阅读:
    基于 HTML5 WebGL 的 3D 仓储管理系统
    基于 HTML5 WebGL 的 3D “弹力”布局
    基于HTML5 Canvas 实现地铁站监控
    基于HTML5的WebGL经典3D虚拟机房漫游动画
    根据矩阵变化实现基于 HTML5 的 WebGL 3D 自动布局
    玩转 HTML5 下 WebGL 的 3D 模型交并补
    基于HTML5 Canvas WebGL制作分离摩托车
    基于HTML5 Canvas的3D动态Chart图表
    基于HTML5 Canvas的工控SCADA模拟飞机飞行
    [iOS]过渡动画之高级模仿 airbnb
  • 原文地址:https://www.cnblogs.com/xsns/p/6811723.html
Copyright © 2011-2022 走看看