zoukankan      html  css  js  c++  java
  • AUI前端框架总结

    AUI 是Apicloud 的手机端UI第三方,需要引入Apicloud和AUI中的css样式和js框架

     **首先:手机项目必须配置config.xml文件 Apicloud官网有详解 

    ** 
    其次:程序会默认进入index.html页面,开始程序的加载显示


    具体代码如下:


    1.  
      1、<meta charset="utf-8">和<meta http-equiv="content-type" content="text/html; charset="utf-8">
    2.  
       
    3.  
      解释:在HTML5,他们是等价的。使用更短,更容易记住和类型。浏览器支持很好,因为它是设计用来向后兼容的。
    4.  
       
    5.  
      2、<meta meta http-equiv="X-UA-Compatible" content="IE=edge">
    6.  
      详解:  http://www.cnblogs.com/jinling/p/4719114.html
    7.  
       
    8.  
      3、需要引入aui的css样式 在头文件中
    9.  
      例如:外联引入< link rel="stylesheet" type="text/css" href="../css/aui.css">
    10.  
      css 可以在head中引入 :<style type="text/css">
    11.  
       
    12.  
      4、修改aui中css的样式必须要!important 
    13.  
      例如: .aui-iconfont {
    14.  
      font-size: 22px !important;
    15.  
      }
    16.  
       
    17.  
      5、设置手机的导航视图:使用盒子div包裹起来
    18.  
      例如:<div class="aui-bar aui-bar-nav aui-bar-warning" id="aui-header"></div>
    19.  
      aui-bar:头部的样式
    20.  
      aui-bar-nav:导航样式
    21.  
      aui-header:js使用
    22.  
       
    23.  
      6、引入js框架,调用对应的js方法,获取页面元素位置和内容等,打开和关闭窗口
    24.  
       
    25.  
      例如:<script type="text/javascript" src="./script/api.js">
    26.  
       
    27.  
      apiready = function() :和js中ready()方法意思差不多,等html加载完执行该方法
    28.  
       
    29.  
      api.parseTapmode();  :解析元素 tapmode 属性,优化点击事件处理 ,默认页面加载完成后,引擎会对 dom 里面的元素进行 tapmode 属性解析,若是之后用代码创建的 dom 元素,则需要调用该方法后 tapmode 属性才会生效
    30.  
       
    31.  
      var header = $api.byId('aui-header');:通过id选择dom
    32.  
       
    33.  
      $api.fixIos7Bar(header);* :适配系统ios7 导航和状态栏的20px
    34.  
       
    35.  
      var headerPos = $api.offset(header);:描述:获取元素在页面中的位置与宽高,(此为距离页面左侧及顶端的位置,并非距离窗口的位置)
    36.  
       
    37.  
      用法:. offset (el)
    38.  
      参数:el(类型:Element):DOM元素
    39.  
      返回值:该元素的位置(left,top)
    40.  
      及宽高(width,height),返回值是json类型的,
    41.  
      包括l,t,w,h属性
    42.  
       
    43.  
      var body_h = $api.offset($api.dom('body')).h;
    44.  
      描述:选择首个匹配的DOM元素
    45.  
      用法:
    46.  
      .dom(el, selector)
    47.  
      从el元素开始查找
    48.  
      参数:
    49.  
      el (类型:Element):DOM元素
    50.  
      selector (类型:Selector):CSS 选择器
    51.  
      返回值: 返回首个匹配的DOM元素
    52.  
       
    53.  
      api.openFrame({
    54.  
      name: 'main',
    55.  
      url: 'html/main.html',
    56.  
      rect: {
    57.  
      x:0,
    58.  
      y:headerPos.h,
    59.  
      w:'auto',
    60.  
      h:'auto'
    61.  
      }
    62.  
      bounces: false,
    63.  
      });
    64.  
       
    65.  
      注释:打开新的窗口  1、窗口名字  2、窗口路径  3、窗口位置  4、是否可以回弹,类似IOS scroll的回弹效果,默认yes
    66.  
       
    67.  
      7、引导页详解
    68.  
       
    69.  
      7.1 样式总结:
    70.  
      /*设置首页的图片 样式*/
    71.  
      img.logo {
    72.  
      /*设置宽度*/
    73.  
      30%;
    74.  
      /*圆角*/
    75.  
      border-radius: 10px;
    76.  
      /*下边距*/
    77.  
      margin-bottom: 15px;
    78.  
      }
    79.  
      /*设置后面几张图片 的样式*/
    80.  
      img.icon {
    81.  
      50%;
    82.  
      border-radius: 10px;
    83.  
      }
    84.  
      /*设置 文本的整体样式*/
    85.  
      strong {
    86.  
      /*字体大小*/
    87.  
      font-size: 2em;
    88.  
      /*设置 字体 粗度*/
    89.  
      font-weight: 400;
    90.  
      }
    91.  
      /*第二页的背景颜色*/
    92.  
      .bg1 {
    93.  
      **/*background: #d9e2e5 !important;*/**
    94.  
      **background:#C0392B !important;**
    95.  
      **}**
    96.  
      /*第三个页面的背景颜色 必须引入*/
    97.  
      **.bg2 {**
    98.  
      **/*background: #eee9e0 !important;*/**
    99.  
      **background:#0062CC !important;**
    100.  
      **}**
    101.  
      /*webkit 浏览器的兼容*/
    102.  
      **@-webkit-keyframes fadeInTop {**
    103.  
      **from {**
    104.  
      **opacity: 0.2;**
    105.  
      **-webkit-transform: translate3d(0, -50px, 0);**
    106.  
      **transform: translate3d(0, -50px, 0);**
    107.  
      **}**
    108.  
      **to {**
    109.  
      **opacity: 1;**
    110.  
      **-webkit-transform: none;**
    111.  
      **transform: none;**
    112.  
      **}**
    113.  
      **}**
    114.  
      **/*设置返回按钮的样式*/**
    115.  
      **.close {**
    116.  
      /*设置背景颜色 透明度*/
    117.  
      **background: rgba(0,0,0,0.6);**
    118.  
      /*设置内间距*/
    119.  
      **padding: 4px 10px;**
    120.  
      /*设置边框的圆角*/
    121.  
      **border-radius: 30px;**
    122.  
      /*字体的颜色*/
    123.  
      **color: #fff;**
    124.  
      /*字体的大小*/
    125.  
      **font-size: 0.75em;**
    126.  
      /*绝对位置 类似float的浮动 */
    127.  
      **position: absolute;**
    128.  
      /*绝对位置的 右侧距离*/
    129.  
      **right: 10px;**
    130.  
      /*绝对位置的左侧 距离*/
    131.  
      **top: 30px;**
    132.  
      /*在z轴的位置 数字越大距离自己越近*/
    133.  
      **z-index: 999;**
    134.  
      }
    135.  
      **7.2 body内容总结**
    136.  
      ****
    137.  
      **<div class="close" tapmode onclick="closeWin()">关闭</div>**
    138.  
      注释:**tapmode 用户加速 按钮的响应事件  **
    139.  
      ****onclick 指定响应的事件****
    140.  
      **<div id="aui-slide">**
    141.  
      **    <div class="aui-slide-wrap" >**
    142.  
      **          <div class="aui-slide-node aui-slide-node-middle aui-                       slide-node-center">**
    143.  
      **                        <div class="aui-content aui-padded-15 aui-text-                                    center aui-hide">**
    144.  
      **                                  <img src="../image/aui-icon.png"                                                                 class="logo" />**
    145.  
      **                                         **
    146.  
      **                         </div>**
    147.  
      **           </div>**
    148.  
      **   </div>**
    149.  
      **</div>**
    150.  
      **注释:**aui-slide : 设置滚动样式****
    151.  
      ******aui-slide-wrap : 承载滚动内容的容器******
    152.  
      ********aui-slide-node : 设置节点样式********
    153.  
      **********aui-slide-node-middle: 设置节点居中**********
    154.  
      ************aui-slide-node-center:设置节点内容居中************
    155.  
      **************aui-content : 内容样式**************
    156.  
      ****************aui-padded-15:内间距15px****************
    157.  
      ******************aui-text-center:文本居中******************
    158.  
      ********************aui-hide:隐藏超出div的部分********************
    159.  
      ********************aui-text-primary:设置字体的样式********************
    160.  
      **<strong> :强调  加粗字体**
    161.  
      ****************************************
    162.  
      ******************7.3 js事件总结******************
    163.  
      ******************首先:要先引入aui的js框架******************
    164.  
      ******************例如:script type="text/javascript" src="../script/aui-slide.js"******************
    165.  
      ******************其次:js代码写在<script type="text/javascript"></******************script******************>中具体代码如下:******************
    166.  
      ******************//声明一个类似类 的对象 是  aui-js框架 中的一个函数******************
    167.  
      var slide = new auiSlide({
    168.  
      //获取aui-slide这个id的元素对象dom
    169.  
      container:document.getElementById("aui-slide"),
    170.  
      // "width":300,
    171.  
      //高度为窗口高度
    172.  
      "height":window.innerHeight,
    173.  
      //滚动速度 300
    174.  
      "speed":300,
    175.  
      //显示页面
    176.  
      "pageShow":true,
    177.  
      //页面风格用点展示
    178.  
      "pageStyle":'dot',
    179.  
      //不是循环
    180.  
      "loop":false,
    181.  
      //点的位置居中
    182.  
      'dotPosition':'center',
    183.  
      //设置当前页数的获取函数,aui-js框架会自动调用currentFun这个函数,所以本类中要有currentFun(index)这个函数
    184.  
      currentPage:currentFun
    185.  
      })
    186.  
      // 获取总页数
    187.  
      var pageCount = slide.pageCount();
    188.  
      //获取当前页数的函数  aui会自动调用这个函数
    189.  
      function currentFun(index) {
    190.  
      //查询.aui-slide-node类的dom数组对象
    191.  
      var slideList = document.querySelectorAll(".aui-slide-node");
    192.  
      // document.write('对象:'+slide+'页数'+pageCount + '列表' + slideList + '当前页数' + index)
    193.  
      //循环遍历
    194.  
      for (var i = 0; i < slideList.length; i++) {
    195.  
      //判断当前页数
    196.  
      if(index == i){
    197.  
      //获取子dom对象中的div数组
    198.  
      var thisDiv = slideList[i].querySelector("div");
    199.  
      //延时执行函数,0.3秒后调用function()函数
    200.  
      setTimeout(function(){
    201.  
      if(thisDiv.classList.contains("aui-hide")){
    202.  
      thisDiv.classList.remove("aui-hide");
    203.  
      }
    204.  
      thisDiv.querySelector("img").classList.add("fadeInTop");
    205.  
      thisDiv.querySelector(".desc").classList.add("fadeInBottom");
    206.  
      }, 300)
    207.  
      }
    208.  
      }
    209.  
      }
    210.  
      console.log(slide.pageCount());
    211.  
      function closeWin(){
    212.  
      api.closeWin({
    213.  
      name: 'lanuch_win'
    214.  
      });
    215.  
      }
    216.  
       
    217.  
      8、[aui-icon 图片的使用](http://www.auicss.com/?m=Home&c=Document#tubiao)
    218.  
      AUI为用户提供了100个线型字体图标,使用字体图标的好处就是大小和颜色可以自由控制,同时还能方便的增加背景等效果。使用图标是请确保字体文件和css文件在同一目录下。
    219.  
      使用方法: 
    220.  
       
    221.  
      <span class="aui-iconfont aui-icon-menu"></span>
    222.  
       
    223.  
      图标的对应可以使用参考演示app的图标模块,在图标名称下方都有对应的名称,修改.aui-icon-*
    224.  
      即可。
    225.  
      同时AUI也是支持自定义图标的,但是需要避免名称的重复。
       
       
       
       

      Aui 下拉刷新 :使用
      css 样式引入
      1、

      2、

      aui-js引入
      1、 
      2、创建一个类

      代码如下:
      // auiPullToRefresh aui中刷新的类
      var pullRefresh = new auiPullToRefresh({
      // 执行刷新 检测的方法函数 函数名字随便写
      callback: loadingCallback,
      //文字
      textDown:'下拉刷新'
      })

      //auiPullToRefresh 会自动监听执行上面函数的具体内容
      function loadingCallback(state){

      if(state == 'success'){
      // 是window的一个函数 ,作用:延时 1.5秒执行函数
      setTimeout(function(){
      //根据id获取元素 必须。指定一个或多个匹配元素的 CSS 选择器。 可以使用它们的 id, 类, 类型, 属性, 属性值等来选取元素。对于多个选择器,使用逗号隔开,返回一个匹配的元素。
      var wrap = document.getElementById('list')
      // document.write(wrap)
      //**注意:** querySelector() 方法仅仅返回匹配指定选择器的第一个元素。如果你需要返回所有的元素,请使用 querySelectorAll() 方法替代。
      var lis = wrap.querySelectorAll('li')
      // document.write(lis)
      //循环当前所有元素
      for(var i = lis.length, length = i +10; i < length; i++){
      // 创建一个cell 的html代码
      var html = '<li class="aui-list-view-cell"> 下拉刷新加载' + (i+1) +'</li>'
      // 在当前元素中插入 html代码
      wrap.insertAdjacentHTML('afterbegin',html)
      }

      pullRefresh.cancelLoading();//刷新成功后调用此方法隐藏

      },1500)
      // document.write(state)
      }
      }

  • 相关阅读:
    生成随机数的范围的公式
    正则匹配<img src="xxxxxx" alt="" />标签的相关写法
    js 日常问题记录
    css 三角实例
    /users/products.:format 这种写法的其对应解析字符写法
    package.json 的语法解释
    replace 全局替换 和 数组去空
    js checkbox获取选中的值
    JavaScript基础知识一
    移动 Web 设计
  • 原文地址:https://www.cnblogs.com/lsongyang/p/10149361.html
Copyright © 2011-2022 走看看