bootstrap标签页与模板引擎

标签页

与h5排他一样第一个ul中的a标签中href值一定与下面id值对应

<div>
  <!-- Nav tabs -->
  <ul class="nav nav-tabs">
    <li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>
    <li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Profile</a></li>
    <li role="presentation"><a href="#messages" aria-controls="messages" role="tab" data-toggle="tab">Messages</a></li>
    <li role="presentation"><a href="#settings" aria-controls="settings" role="tab" data-toggle="tab">Settings</a></li>
  </ul>

  <!-- Tab panes -->
  <div class="tab-content">
    <div role="tabpanel" class="tab-pane active" id="home">...</div>
    <div role="tabpanel" class="tab-pane" id="profile">...</div>
    <div role="tabpanel" class="tab-pane" id="messages">...</div>
    <div role="tabpanel" class="tab-pane" id="settings">...</div>
  </div>

</div>

禁止触摸事件

document.querySelector('.nav-tabs-father').addEventListener('touchmove',function (e) {
        e.preventDefault();
    });

 

Ischia插件:区域滑动效果(子容器给大于父容器的宽度)

安装插件   iscroll.js

   //区域滑动
    new IScroll($('.nav-tabs-father')[0],{
        scrollX:true,
        scrollY:false
            //这个插件会默认吧点击事件禁用,你需要手动开启,

    });

工具提示(一定要初始化)

<button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="left" title="Tooltip on left">Tooltip on left</button>

<button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="top" title="Tooltip on top">Tooltip on top</button>

<button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="bottom" title="Tooltip on bottom">Tooltip on bottom</button>

<button type="button" class="btn btn-default" data-toggle="tooltip" data-placement="right" title="Tooltip on right">Tooltip on right</button>
$(function () {
  $('[data-toggle="tooltip"]').tooltip()
})

编写模板

第一步:在html中导入插件

第二步:使用一个type="text/html"的script标签存放模板:


<script id="test" type="text/html">
<h1>{{title}}</h1>
<ul>
    {{each list as value i}}
        <li>索引 {{i + 1}} :{{value}}</li>
    {{/each}}
</ul>
</script>

第三步在js中通过ajax动态的传入数据到html中

3.1通过getData防止每次调用访问一次服务器,所以进行判断,如果有数据,就不用ajax传输,直接自调用,否则ajax传输并且将数据缓存下来,要用window.data = data全局变量

3.2缓存数据之后渲染到页面

通过template("id",data)这里的id与上面html中对应

再通过jQuery  $(''").html()

 var getData = function (callback) {
                        if (window.data) {           
                            callback && callback(window.data);
                        } else {
                            $.ajax({
                                type: 'get', /*获取方式*/
                                url: 'js/data.json', /*相对于html的相对路径*/
                                dataType: 'json',//强制转换后台返回数据为json,强制转换不成功报错,执行error
                                data: '',   //传输数据
                                success: function (data) {
                                    window.data = data;    //数据缓存
                                    callback && callback(window.data);
                                },
                                error:function () {
                                    console.log("数据没找到");
                                }
                            });
                }
            };

            //渲染业务
            var render = function() {
                getData(function (data) {
                    //根据数据动态渲染,根据设备   屏幕判断
                    var isMobile = $(window).width() < 768 ? true : false;
                    // console.log(isMobile);
                    // 准备数据   把数据转换为html
                    // 使用模板引擎   点,图片
                    //添加数据
                    // artTemplate('id',data)_,模板放在html里面不容易丢失
                    var pointHtml = template('pointTemplate', {list: data});
                    /*data为数组所以要转换*/
                    // console.log(pointHtml);
                    var imageHtml = template('imageTemplate', {list:data,isMobile: isMobile});
                    console.log(imageHtml);
                    $('.carousel-indicators').html(pointHtml);
                    $('.carousel-inner').html(imageHtml);
                });
            };

上面需要注意的是我们传入的数据暂时用json代替,但是在ajax   url: 'js/data.json', /*相对于html的相对路径*/  哪怕是js与json在同一个文件夹路径也要把路径写成上面格式,相对于html,是在html引入的

在使用bootstrap时

1.拷贝源码的模块样式:准确定位到所有元素的选择器并且能保证优先级比源码高
2.针对功能进行覆盖:更改模块名称
3.但是有一些没有用到的选择器 代码的冗余
4. 删除:降低代码量 
5. 保留:利于维护,方便产品跟新的时候不用再去修改代码
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Stencil 是一个 CodeIgniter 的模板引擎,通过简单可靠的方式来渲染 HTML 面。 控制器: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Home extends CI_Controller {     public function __construct()     {         parent::__construct();         $this->stencil->layout('home_layout');         $this->stencil->slice('header');         $this->stencil->slice('footer');     }     public function index()     {         $this->stencil->title('Home Page');         $this->stencil->js('some-plugin');         $this->stencil->js('home-slider');         $this->stencil->css('home-slider');         $this->stencil->meta(array(             'author' => 'Nicholas Cerminara',             'description' => 'This is the home page of my website!',             'keywords' => 'stencil, example, fun stuff'         ));         $data['welcome_message'] = 'Welcome to my website using Stencil!';         $this->stencil->paint('home_view', $data);     } } /* End of file home.php */ /* Location: ./application/controllers/home.php */ 模板: <!doctype html> <html> <head>     <!-- robot speak -->         <meta charset="utf-8">     <title><?php echo $title; ?> | My Stencil Website</title>     <?php echo chrome_frame(); ?>     <?php echo view_port(); ?>     <?php echo apple_mobile('black-translucent'); ?>     <?php echo $meta; ?><!-- //loads data from $this->stencil->meta($args) in controller -->     <!-- icons and icons and icons and icons and icons -->     <?php echo favicons(); ?>     <!-- crayons and paint -->       <?php echo add_css(array('bootstrap', 'style')); ?>     <?php echo $css; ?><!-- //loads data from $this->stencil->css($args) in controller -->     <!-- magical wizardry -->     <?php echo jquery('1.9.1'); ?>     <?php echo shiv(); ?>     <?php echo add_js(array('bootstrap.min', 'scripts')); ?>     <?php echo $js; ?><!--  //loads page specific $this->stencil->js($args) from Controller (see docs) --> </head> <!-- $body_class will always be the class name --> <body class="<?php echo $body_class; ?>">     <header>         <?php echo $header; ?>     </header>     <h1><?php echo $welcome_message; ?></h1>     <section class="content">         <?php echo $content; ?><!-- This loads home_view -->     </section>     <footer>         <?php echo $footer; ?>     </footer> </body> </html> 标签:Stencil

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值