使用ion-slide可以实现图片轮播,但是如果在html中仅仅增加ion-slide是远远不够的,会出现两个问题:图片加载不出来和图片轮播至最后一个不轮播的问题

1、如何解决图片加载不出来的问题

ionic有一个很奇怪的现象:在使用本地json来获取图片的时候,图片时可以加载出来的,但是调用接口后图片的加载就有问题,有时候可以加载出来有时候加载不出来。解决这个问题的方法:
在controller中注入:$ionicSlideBoxDelegate,然后在相应的获取banner图片的接口方法处增加:
$ionicSlideBoxDelegate.update(); //解决图片加载不出来的问题

仅仅如此就可以了吗?no!no!no……我们会遇到第二个问题

  2、如何解决图片轮播至最后一个不轮播的问题

这样会出现一个新的现象:图片轮播至最后一个就不会轮播:网上有一个很不靠谱的解决办法,会出现图片轮播错误单可以重复轮播 :
$ionicSlideBoxDelegate.loop(true); //解决轮播至最后一个不轮播的问题
这种方式当然不推荐使用,因为本人自己已经深受其害,但是国内很多网站给出的解决方法都是这个,此处做个记录。
正确的方式是手动轮播图片,下面是手动轮播的代码:
           //手动轮播图片
function slideImage() {
vm.timerSlide1 = $timeout(slideImage, 4000);
if (vm.adListInfo && vm.adListInfo.length > 0) {
vm.slideImageIndex1 = vm.slideImageIndex1 === vm.adListInfo.length - 1 ? 0 : vm.slideImageIndex1 + 1;
vm.slideNumber = $ionicSlideBoxDelegate.$getByHandle("adListInfo").currentIndex();
if (vm.slideNumber + 1 != vm.slideImageIndex1 && vm.slideImageIndex1!=0) {
vm.slideImageIndex1 = vm.slideNumber;//手动滑动后和自动轮播保持一致
$ionicSlideBoxDelegate.$getByHandle("adListInfo").slide(vm.slideImageIndex1); //只有首页的banner轮播
} else {
$ionicSlideBoxDelegate.$getByHandle("adListInfo").slide(vm.slideImageIndex1); //只有首页的banner轮播
} }
}

如果轮播的页面cache!=false:

//轮播控制
function ionicViewEvents() {
$scope.$on('$ionicView.beforeEnter', function(event, data) {
if (vm.adListInfo) {
slideImage();
}
if (vm.goodsListBanner) {
slideGoodsListBanner();
} })
//当DOM元素从页面中被移除时,AngularJS将会在scope中触发$destory事件。这让我们可以有机会来cancel任何潜在的定时器
$scope.$on('$ionicView.beforeLeave', function(event, data) {
clearTimeoutPromise();
});
}
//清空计时器promise
function clearTimeoutPromise() {
$timeout.cancel(vm.timerSlide1);
$timeout.cancel(vm.timerSlide2);
vm.timerSlide2 = undefined;
vm.timerSlide1 = undefined;
}

3、一个页面有多个轮播的地方应该如何解决?

  • 给每个轮播的增加名字:
 <ion-slide-box delegate-handle="adBanner">
<ion-slide ng-repeat="item in homePage.adListInfo">
<div class="bannerImg1">
<img class="slideImg" ng-src="{{item.coverImage}}" ng-click="homePage.clickADBanner(item)"/>
</div>
</ion-slide>
</ion-slide-box>
  • 在controller中对每个轮播的模块进行相应的处理

一、ionic 图片轮播问题的更多相关文章

  1. ionic 图片轮播问题

    1.使用ion-slide可以实现图片轮播,但是如果在html中仅仅增加ion-slide是远远不够的,会出现两个问题: (注:使用的是angularjs.首先需要在,js文件中注入:$ionicSl ...

  2. ionic 图片轮播ion-slide-box问题

    1.使用ion-slide可以实现图片轮播,但是如果在html中仅仅增加ion-slide是远远不够的,会出现两个问题: (注:使用的是angularjs.首先需要在,js文件中注入:$ionicSl ...

  3. 基于ionic框架封装一个图片轮播指令的几点

    在这里我想在项目中封装一个图片轮播的指令 (本项目使用的是ionic框架) 1)定义指令 define(['app'],function(myapp){ myapp.directive('myslid ...

  4. H5如何做手机app(移动Web App)?图片轮播?ionic、MUI

    移动Web App 跨平台开发 用户不需要去卖场来下载安装App 任何时候都可以发布App只需要一个开发项目 可以使用HTML5,CSS3以及JavaScript以及服务器端语言来完成(PHP,Rub ...

  5. 原生js+css3实现图片自动切换,图片轮播

    运用CSS3transition及opacity属性 制作图片轮播动画 自己这两天根据用js来控制触发CSS3中transition属性,从而写出来的以CSS3动画为基础,js控制过程的图片轮播 运用 ...

  6. 纯javaScript、jQuery实现个性化图片轮播

    纯javaScript实现个性化图片轮播 轮播原理说明<如上图所示>: 1. 画布部分(可视区域)属性说明:overflow:hidden使得超出画布部分隐藏或说不可见.position: ...

  7. jQuery个性化图片轮播效果

    jQuery个性化图片轮播效果 购物产品展示:图片轮播器<效果如下所示> 思路说明: 每隔一段时间,实现图片的自动切换及选项卡选中效果,鼠标划入图片动画停止,划出或离开动画开始 两个区域: ...

  8. 原生JS实现"旋转木马"效果的图片轮播插件

    一.写在最前面 最近都忙一些杂七杂八的事情,复习软考.研读经典...好像都好久没写过博客了... 我自己写过三个图片轮播,一个是简单的原生JS实现的,没有什么动画效果的,一个是结合JQuery实现的, ...

  9. 基于面向对象的图片轮播(js原生代码)

    无论你想走多远,你都需要不断地走下去.前端最精华的便是原生的js,这也是我们前端工程师的技术分层的重要指标,也提现这你的代码能力,开发的水平.废话不多说,进入今天的主要分享————基于面向对象思想的图 ...

随机推荐

  1. Winform控件的问题汇总

    2014-01-19号 用户控件中的子控件(Btn控件),想要暴露到用户控件之外,以供其它其他控件使用的解决方法 1.在用户控件中定义一个委托和这个委托的事件. public delegate voi ...

  2. Jira 6.0.5的详细安装及汉化授权

    第一步:安装jdk-6u24-windows-i586.exe (1)下载到oracle官网下装安装 jdk-6u24-windows-i586.exe,http://www.oracle.com/t ...

  3. 创建.NET Core程序的Nuget Package

    最近在看ASP.NET Core MVC的教材,几乎每章开始都要重复从Empty project开始创建一个ASP.NET Core的项目,然后手动修改project.json,增加经典三目录(Mod ...

  4. 记一次接口调用耗时服务端PHP-FPM配置调优

    最近测试人员不时有反馈,APP首页打开会出现除了基本的页面布局,需要展示数据的地方都是空白. 想着最近首页接口有过调整,新增数据.会不会是接口改动导致的?? 但APP首页接口都是读取redis的,应该 ...

  5. 让图片在div中居中

    详情看:https://www.cnblogs.com/yyh1/p/5999152.html

  6. android FrameLayout

    FrameLayout:帧布局,可以显示图片的动画效果 前景图像: 永远处于帧布局最顶的,直接面对用户的图像,,就是不会被覆盖的图片 常用属性: android:foreground:设置该帧布局容器 ...

  7. jvm工具及命令大全

      虚拟机栈 栈桢大小缺省为1M,可用参数 –Xss调整大小,例如-Xss256k 堆 -Xms:堆的最小值: -Xmx:堆的最大值: -Xmn:新生代的大小: -XX:NewSize:新生代最小值: ...

  8. mysql 中显示 table 的基本信息

    mysql> show table status like 'j_position' \G . row *************************** Name: j_position ...

  9. Redis-Map

    Redis Map 存储K-V键值对.(跟Java的Map类比) 哈希表结构: typedef struct dictht { dictEntry **table;  //哈希表数组 unsigned ...

  10. Jquery获取radio选中的值

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...