使用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. 【运维】centos7+confluence5.6.6破解

    一.安装mysql数据库 centos7自带mariadb数据库,因为无法下载完整安装包,最终选择将其完全卸载,然后全新安装mysql数据库 1.卸载mariadb rpm -qa | grep ma ...

  2. 一段关于Unix、Linux和Windows的暗黑史

    "SCO在言语上变得越来越好斗,而且还拒绝展示有关诉讼的任何证据,一切都似乎在表明,SCO只不过是在那里拉虎皮做大旗地狂言乱语.但是,微软 决不会轻易放弃这么可以一个利用这些狂言乱语的好机会 ...

  3. (转)CentOS7安装KVM虚拟机详解

    原文:https://github.com/jaywcjlove/handbook/blob/master/CentOS/CentOS7%E5%AE%89%E8%A3%85KVM%E8%99%9A%E ...

  4. Types的Type访问模式

    在Types类中定义的访问都类如下: 1.MapVisitor类 2.SimpleVisitor 3.UnaryVisitor 4.TypeRelation

  5. 数据库分库分表(一)常见分布式主键ID生成策略

    主键生成策略 系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,下面介绍一些常见的ID生成策略. Sequence ID UUID GUID COMB Snowflake 最开始的自增ID为了实 ...

  6. FocusBI:租房分析&星型模型

    微信公众号:FocusBI关注可了解更多的商业智能.数据仓库.数据库开发.爬虫知识及沪深股市数据推送.问题或建议,请关注公众号发送消息留言;如果你觉得FocusBI对你有帮助,欢迎转发朋友圈或在文章末 ...

  7. 【转】一点一点学ASP.NET之基础概念——HttpModule

    概述 HttpHandler是一个HTTP请求的真正处理中心,也正是在这个HttpHandler容器中,ASP.NET Framework才真正地对客户端请求的服务器页面做出编译和执行,并将处理过后的 ...

  8. 周记6——css实现类似朋友圈九宫格缩略图完美展示

    公司有在做一个类似qq空间的开发,发表说说避免不了的要有图片展示. 产品提出的空间缩略图的展示类似*信朋友圈那种效果--图片不变形.能看到中间部分. 这里给出3种解决方案(jsbin地址失效时可复制代 ...

  9. ajax从零基础到实战

    一. 什么是AJAX? ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 二. 在项目中怎么运用AJAX? 项目主要文件夹目录有img文件夹,css文件夹,js文件夹,如果你要运 ...

  10. python模块学习第 0000 题

    将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果: 好可爱>%<! 题目来源:https://github.com/Yixiao ...