使用ionic中ion-slide-box实现移动app轮播特效

2023-10-27

H5混合式移动开发框架ionic,是使用angularJS的语法,加上大名鼎鼎的移动应用开发框架cordova的核心。它的特点是跨平台、入门简单、可以减少开发周期。实质上,ionic就是用制作网页的技术来开发移动app

下面使用ionicion-slide-box实现移动app轮播特效。

一、基本结构

其基本结构就是用ion-slide-box标签包含若干个<ion-slide>标签:

<ion-slide-box>

<ion-slide>

第一张图片

</ion-slide>

<ion-slide>

  第二张图片

</ion-slide>

<ion-slide>

第三张图片

</ion-slide>

  ……

</ion-slide-box>

二、ion-slide-boxAPI

属性

类型

详情

does-continue (可选)

布尔值

是否循环切换:幻灯页默认只能向左滑动,最后的幻灯页只能向右滑动。将does-continue属性值设为true,就可以让幻灯页组首尾连接起来,循环切换。

slide-interval (可选)

数字

自动播放的间隔时间,默认为4000毫秒。

show-pager (可选)

布尔值

否显示分页器分页器用来指示幻灯页的选中状态,位于幻灯片的底部,默认为黑色的实心小圆

pager-click (可选)

表达式

如果shou-pagertrue,当点击页面分页器时,触发该表达式,传递一个'索引'变量。

on-slide-changed (可选)

表达式

当幻灯页滑动时,触发该表达式。传递一个'索引'变量。

active-slide (可选)

表达式

根据下标值,指定选中的幻灯页。

auto-play(可选)

布尔值

是否自动播放幻灯页

三、$ionicSlideBoxDelegate介绍

可以使用$ionicSlideBoxDelegate控制所有的滑动框,常见方法如下:

方法名

参数/参数类型

详情

slide(to, [speed])

number

to:滑上指定的幻灯片的下标值

speed:滑动锁花费的时间,单位为毫秒

previous([speed])

number

speed:返回前一个幻灯片所花的时间,单位为毫秒。

next([speed])

number

speed:跳到下一个幻灯片所花的时间,单位为毫秒。

stop()

停止滑动

start()

开始滑动

currentIndex()

返回当前播放幻灯页的下标值。

slidesCount()

 

返回幻灯片总的片数

四、源码

<!DOCTYPE html>

<html ng-app="myApp">

    <head>

       <meta charset="UTF-8">

       <title>使用ionicion-slide-box实现移动app轮播特效</title>

       <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0,user-scalable=no,width=device-width" />

       <link rel="stylesheet" href="css/ionic.css" />

       <script type="text/javascript"src="js/ionic.bundle.min.js"></script>

       <style>

           img{

              max-width:100%;

           }

       </style>

    </head>

    <body ng-controller="myController">

       <ion-header-bar class="bar-positive">

           <ion-title>

              <h3>移动app轮播特效的制作</h3>

           </ion-title>

       </ion-header-bar>

       <ion-content>

           <ion-slide-box active-slide="model.activeIndex" does-continue="true" slide-interval="1000" auto-play="true" show-pager="true" pager-click="toSlideIndex(index)" on-tap="stopOrStart()">

              <ion-slide>         

                 <img src="img/1a.jpg" />       

              </ion-slide>

              <ion-slide>

                  <img src="img/2a.jpg" />

              </ion-slide>

              <ion-slide>

                  <img src="img/3a.jpg" />

              </ion-slide>

              <ion-slide>

                  <img src="img/4a.jpg" />

              </ion-slide>

              <ion-slide>

                  <img src="img/5a.jpg" />

              </ion-slide>

           </ion-slide-box>

       </ion-content>

       <ion-footer-bar class="bar-positive"></ion-footer-bar>

       <script>

           angular.module("myApp", ['ionic'])

                .controller("myController", function($scope, $ionicSlideBoxDelegate) {

                  $scope.model = {

                     activeIndex: "2",

                  };

                  /**

                   * 单击分页器,跳到指定的幻灯片

                   */

                  $scope.toSlideIndex = function(index) {

                     $scope.model.activeIndex = index;

                  };

                  /**

                   * 第一次轻击幻灯片,停止轮播

                   * 第二次轻击幻灯片,开始轮播

                   * 依次循环

                   */

                  $scope.even = 0;

                  $scope.stopOrStart = function() {

                     if($scope.even == 0) {

                         $ionicSlideBoxDelegate.stop();

                         $scope.even=1;

                     } else {

                         $ionicSlideBoxDelegate.start();

                         $scope.even=0;

                     }

 

                  }

              });

       </script>

    </body>

</html>

五、提升

  1、修改样式

运行代码,在浏览器中点击F12,查看具体的样式,找到对应的样式名,重写ionic项目中的css就可以了,比如可以把分页器的小圆心变为白色的。

  2、异步加载

如果网页中的图片地址是从数据库获取的,建议使用ajax,在ionic中,可以使用$http.get()方法异步加载图片,如果存在跨域问题,则可以使用$http.jsonp()方法。然后遍历即可:

<ion-slide ng-repeat="m in imgs">         

                 <img src="img/{{m.imgUrl}}" /> 

              </ion-slide>

有时候会出现图片无法加载出来,可以在在相应的controller文件增加 $ionicSlideBoxDelegate.update()$ionicSlideBoxDelegate.update(); 就是当容器尺寸发生变化时,需要调用update()方法重绘幻灯片,更新滑动框;另外一种解决方案就是用ng-if判断遍历的数组是否为空,不为空时再用repeat遍历该数组即可:

<ion-slide-box active-slide="model.activeIndex" does-continue="true" auto-play="true" ng-if="imgs">

              <ion-slide ng-repeat="m in imgs"

                 <img src="img/{{m.imgUrl}}" /> 

              </ion-slide>

           </ion-slide-box>

如果轮播至最后一个不轮播,可以在相应的controller文件增加 $ionicSlideBoxDelegate.loop(true)

 

  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用ionic中ion-slide-box实现移动app轮播特效 的相关文章

随机推荐

  • C/C++中判断某一文件或目录是否存在

    C C 中判断某一文件或目录是否存在 1 C 很简单的一种办法 include lt iostream gt include lt fstream gt using namespace std define FILENAME stat da
  • stm32 DMA2D使用中断LVGL,提高LVGL帧率

    我看了很多DMA2D教程都是用阻塞方式来刷新屏 这样就消耗了性能 相当于没用DMA 所以我使用DMA2D中断来传输数据 测试平台 stm32f429 正点原子7寸1024x600液晶屏 45MHZ刷新率 LVGL 公有条件 LTDC刷新率4
  • 2023年清洁能源与智能电网国际会议(CCESG 2023)

    会议简介 Brief Introduction 2023年清洁能源与智能电网国际会议 CCESG 2023 会议时间 2023年 召开地点 中国南宁 大会官网 CCESG 2023 2023 International Joint Conf
  • T+0交易与结算

    T 0交易 T 0交易制度 是指 投资者当天卖出股票获得的资金在当天就可以买入股票 当天买入的股票在当天就可以卖出 的一种证券交易机制 实际上 T 0交易是我国证券市场参与者之间的一种通俗叫法 正式名称为 当日回转交易 在 上海证券交易所交
  • ssm109基于jsp的网上手机商城+jsp

    文章仅展示部分内容 详细的毕设论文和演示视频可以私信我的扣扣 毕业设计 论文 网上手机商城 学 院 专 业 班 级 学 号 用户姓名 指导教师 完成日期 年 月 日 摘 要 随着科学技术的飞速发展 各行各业都在努力与现代先进技术接轨 通过科
  • 封神台——BurpSuite入门(改包、爆破)

    点击传送门进来看到的就是一个很简陋的网站 我们来到一个网站就先注册一下 感受一下全面的服务 一个假网做的还挺完备 点击一个产品 看到他的设计如此之烂 什么也没有居然要价5400 很多购物网站都存在着支付漏洞 于是我们抓个包试试看 首先打开B
  • 毕业设计-基于计算机视觉技术的指针式仪表智能识别系统

    目录 前言 课题背景和意义 实现技术思路 一 方法设计 二 表盘定位方法 二 表盘定位方法 三 CTPN CRNN网络读取数值与位置 四 示数识别模块 五 实验与分析 六 总结 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一
  • 异步查询如何做节流(只查询时间段最后一次)

    要实现异步查询的节流 只查询时间范围内的最后一次 可以使用一个定时器来延迟执行查询操作 并在每次触发查询时取消之前的定时器 这样 只有在一定时间内没有新的查询请求时 才会执行最后一次查询 以下是一个示例的JavaScript代码实现 let
  • msq安装及其密码修改

    mysql 8 0安装与使用 不需要配置my ini 1 去官网下载mysql 8 0 https dev mysql com downloads mysql 8 0 html 解压版mysql 2 直接解压 配置path路径 配置系统环境
  • 常用邮箱服务器(SMTP,POP3)地址

    常用邮箱SMTP服务器地址大全 谷歌邮箱 google com POP3服务器地址 pop gmail com SSL启用端口 995 SMTP服务器地址 smtp gmail com SSL启用端口 587 新浪邮箱 sina com P
  • JUC(java中的多线程)

    JUC 介绍 JUC是jdk中java util concurrent包的简称 该包提供了并发编程中常用的工具类 概括地说 JUC的就 是java并发编程工具包 目前juc泛指Java多线程开发技术 线程和进程 进程 运行中的程序 一个进程
  • 计算机把C盘无法扩展,c盘不能扩展卷【解决教程】

    喜欢使用电脑的小伙伴们一般都会遇到win7系统c盘不能扩展卷的问题 突然遇到win7系统c盘不能扩展卷的问题就不知道该怎么办了 其实win7系统c盘不能扩展卷的解决方法非常简单 按照 1 打开计算机页面选择计算机使用鼠标右键单击弹出下拉菜单
  • 目前身体现状

    突出特点 易疲劳 走路易累 高度怕冷 畏寒 易头昏 睡觉后无精神感 久睡有濒死感 记忆力有减退现象 只是感觉 久坐腰背痛 尤其坐长途车 年轻时不会
  • 手把手带你修复老照片

    你家里是否有很多带着故事的老照片呢 随着时间的流逝 这些照片难免会变模糊 或者有了划痕 今天给大家介绍一种使用程序修复老照片的方法 教程面向小白 对于有基础的人过程可能略显繁琐 修复效果如下图所示 我们需要在电脑中下载安装程序运行环境 修复
  • 【学习笔记】电机学

    电枢的感生电动势 E a C e n
  • C++Primer(第五版 )第十一章 关联容器 章节编程练习答案

    11 1 描述map和vector的不同 答 map 是关联容器 vector 是顺序容器 11 2 分别给出最适合使用list vector deque map以及set的例子 答 list 双向链表 适合频繁插入删除元素的场景 vect
  • 关于 0.1+0.2 == 0.3 不成立的一些细节

    很早之前看到一关于js的问题 如下 实际上 0 1 0 2 0 3 这个问题不是js特有 来看一段java代码 Test public strictfp void test System out println 0 1f 0 2f 0 3f
  • 记random的几个函数用法及区别:random(),randint(),randrange(),uniform()

    1 random random 作用 生成 0 0 1 0 之间的随机小数 注意 不包含1 0 参数 无 gt gt gt from random import gt gt gt seed 10 gt gt gt random 0 5714
  • 三款好用的软件代码检测工具

    Fortify 是一款由 Hewlett Packard Enterprise HPE 公司开发的源代码检测工具 Fortify可以检测代码中的安全漏洞和缺陷共900多种 它通过对应用程序的源代码进行静态分析 自动检测安全性漏洞及缺陷 Fo
  • 使用ionic中ion-slide-box实现移动app轮播特效

    H5混合式移动开发框架ionic 是使用angularJS的语法 加上大名鼎鼎的移动应用开发框架cordova的核心 它的特点是跨平台 入门简单 可以减少开发周期 实质上 ionic就是用制作网页的技术来开发移动app 下面使用ionic中