AmazeUI(妹子UI)中CSS组件、JS插件、Web组件的区别
CSS组件顾名思义就是仅使用CSS渲染而成的组件,而JS插件也很容易理解,就是由CSS渲染和JS来控制行为的组件。
比较不好理解就是Web组件,好像跟JS插件意思差不多,都是CSS和JS组成的。它们到底区别在哪?我们重点来讲这个。
我们通过学习如何调用Web组件(其中的手风琴组件)来一步一步了解其与JS插件的区别。
<section data-am-widget="accordion" class="am-accordion am-accordion-default">
<!-- 这里面还有代码,本例的大概意思就是不写JS代码,直接调用Web组件。 -->
</section>
示例02.Web组件-通过模板来调用-示例1 (请下载附件查看示例)
<!-- handlebars.js 是一个开源的js库,用于在网页上实现语义模板。 -->
<script src="assets/js/handlebars.min.js"></script>
<!-- 妹子UI调用 handlebars 的辅助类 -->
<script src="assets/js/amazeui.widgets.helper.js"></script>
示例中关键代码2(定义一个模板)(话说这个模板也没啥实际意义,但官方的demo就是这么写的,我只是移植了一下):
<script type="text/x-handlebars-template" id="my-tpl">
{{>accordion accordionData}}
</script>
示例中关键代码3(调用JS代码使其工作):
var $tpl = $('#my-tpl'); //得到原始模板
var template = Handlebars.compile($tpl.text()), //得到编译后的模板
//...这里定义了数据...代码较多...略...
var html = template(data); //传入数据,运行模板,得到结果
var $tpl.before(html); //显示结果
var template = Handlebars.compile('{{>accordion}}'), //得到编译后的模板 (字符串就算是原始模板了)
var html = template(data.accordionData); //传入数据,运行模板,得到结果
$("#div1").before(html); //显示结果
<!-- 自定义原始模板 -->
<script type="text/x-handlebars-template" id="demo-template">
//这里还有很多代码,因为不关键就省略了...
<!-- 关键代码:添加图标 icon 属性 -->
{{#if icon}}<img src="{{icon}}" style="width:20px;" />{{/if}}
//这里还有很多代码,因为不关键就省略了...
</script>
示例中关键代码3(调用JS使其工作):
var demoData = { //定义数据
"content": [..省略.., {
"title": "标题二",
"content": "内容二",
"icon": "assets/i/favicon.png" //关键:多出一个icon属性
}, ..省略..]
};
var demoTemplate = Handlebars.compile($("#demo-template").html()); //得到编译后的模板
var demoHtml = demoTemplate(demoData); //传入数据,运行模板,得到结果
$("#div1").html(demoHtml); //显示结果
//注册一个新组件,名叫:hr-accordion
hbs.registerPartial('hr-accordion', '\
{{#this}}\
<section data-am-widget="accordion" class="am-accordion {{#if theme}}am-accordion-{{theme}}{{else}}am-accordion-default{{/if}}{{#if widgetId}} {{widgetId}}{{/if}}{{#if className}} {{className}}{{/if}}" {{#if id}} id="{{id}}" {{/if}} data-am-accordion=\'{ {{#if options.multiple}}"multiple": true{{/if}} }\'>\
{{#each content}}\
<dl class="am-accordion-item{{#if active}} am-active{{/if}}{{#if disabled}} am-disabled{{/if}}">\
<dt class="am-accordion-title" style="color:#0094ff;">\
<!-- 添加图标的关键代码 -->\
{{#if icon}}<img src="{{icon}}" style="width:20px;" />{{/if}}\
{{{title}}}\
</dt>\
<dd class="am-accordion-bd am-collapse {{#if active}}am-in{{/if}}">\
<div class="am-accordion-content">\
{{{content}}}\
</div>\
</dd>\
</dl>\
{{/each}}\
</section>\
{{/this}}');
示例中关键代码2(引用相关js文件):
<!-- handlebars.js 是一个开源的js库,用于在网页上实现语义模板。 -->
<script src="assets/js/handlebars.min.js"></script>
<!-- 华瑞手风琴组件,调用 handlebars.js 的辅助类 -->
<script src="assets/js/huarui.accordion.helper.js"></script>
示例中关键代码3(调用JS使其工作):
var demoData = { //定义数据
"content": [..略.., {
"title": "标题二",
"content": "内容二",
"icon": "assets/i/favicon.png" //关键:多出一个icon属性
}, ..略..]
};
//得到编译后的模板,传入数据,运行模板,得到结果
var demoHtml = Handlebars.compile('{{>hr-accordion}}')(demoData);
$("#div1").html(demoHtml); //显示结果
AmazeUI(妹子UI)中CSS组件、JS插件、Web组件的区别的更多相关文章
- 20170305深圳Meetup Rails中CSS,JS引用关系分析
新手上路,若有错误请及时提醒 Rails中CSS,JS引用关系分析 一.Rails静态文件存放位置 二.Rails中CSS引用方式 三.Rails中JS引用方式与CSS类似 四.上面都是默认引用app ...
- HTML中css和js链接中的版本号
背景 在搜索引擎中搜索关键字.htaccess 缓存,你可以搜索到很多关于设置网站文件缓存的教程,通过设置可以将css.js等不太经常更新的文件缓存在浏览器端,这样访客每次访问你的网站的时候, 浏览器 ...
- struts2中css,js等资源无效 非路径问题(新手问题)
一个小小的Strust2例子 然后发现css,js,图片用不了,debugger下发现无法访问这些资源(404错误),妈的,那个例子明明可以的,起码从书上的图片看. 发现是web.xml中的过滤器的问 ...
- RSuite 一个基于 React.js 的 Web 组件库
RSuite http://rsuite.github.io RSuite 是一个基于 React.js 开发的 Web 组件库,参考 Bootstrap 设计,提供其中常用组件,支持响应式布局. 我 ...
- vue中使用laydate.js插件
1.到官网下载laydate.js https://www.layui.com/laydate/ 2.下载好后,将包解压好放在index.html同级的地方.我是在public中建立个statick文 ...
- 在MUI框架中使用video.js插件,并在暂停的时候利用Asp.net将观看时长保存到sqlserver数据库
本次保存数据的情况有三种: 在视频播放的时候点击暂停,将本视频的进度保存到数据库 利用mui内部的控件,返回上一页操作时,进行保存 安卓手机触发返回键的时候,进行保存 示例一: 在video标签上面添 ...
- 在Asp.Net MVC 中如何用JS访问Web.Config中appSettings的值
应用场景: 很多时候我们要在Web.Config中添加appSettings的键值对来标识一些全局的信息,比如:调用service的domain,跳转其他网站页面的url 等等: 那么此时就涉及到了一 ...
- amazeui中内置的web组件有哪些且如何用
amazeui中内置的web组件有哪些且如何用 一.总结 一句话总结: 1.组件还是jquery.js+amazeui.js,和插件一样,准确的说是amazeui.css+jquery.js+amaz ...
- amazeui中css组件、js组件、web组件的区别
amazeui中css组件.js组件.web组件的区别 一.总结 一句话总结: 1.可直接像调用js插件那样调用:在AmazeUI(妹子UI)中,Web组件可以不编写模板而直接使用,若如此,则与JS插 ...
随机推荐
- CVE-2017-8464远程命令执行漏洞(震网漏洞)复现
前言 2017年6月13日,微软官方发布编号为CVE-2017-8464的漏洞公告,官方介绍Windows系统在解析快捷方式时存在远程执行任意代码的高危漏洞,黑客可以通过U盘.网络共享等途径触发漏洞, ...
- IIS虚拟目录与UNC路径权限初探
最近在一个项目中涉及到了虚拟目录与UNC路径的问题,总结出来分享给大家. 问题描述 某客户定制化项目(官网),有一个图片上传的功能.客户的Web机器有10台,通过F5负载均衡分摊请求. 假设这10台机 ...
- python 标准库 -- glob
glob glob.glob() import glob l = glob.glob("/root/*") # 返回列表 print l # 输出如下 ['/root/databa ...
- Java基础语法实例(2)——实习第二天
来到广州实习的第二天,广州好潮湿,这就是我的感觉,手表里面都开始产生了水雾,这就尴尬了...每天不断的雨.好吧,尽管我很喜欢这里的树,但是我以后应该也不会再来广州了,其实也说不准.想起了<谁动了 ...
- PHPCMS V9 为今天或几天前文章加new
今天内发布: {pc:content action="lists" catid="13" order="listorder DESC" nu ...
- 门(door)
门(door) 时间限制: 1 Sec 内存限制: 128 MB 题目描述 输入 第一行是一个正整数n,表示原始字符串的长度.第二行是一个字符串,长度为n.字符串由大小写字母,数字,符号,空格构成. ...
- memcache常用命令
一.memcached的基本命令(安装.卸载.启动.配置相关): -p 监听的端口 -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起m ...
- 如何在前端模版引擎开发中避免使用eval函数
前段时间,想着自己写一个简单的模版引擎,便于自己平时开发demo时使用.于是根据自己对模版引擎的理解,定义自己的模版格式,然后,根据自己定义的格式,编写处理函数,将模版标签中的字符串,解析成可执行的字 ...
- 【JavaScript学习】-JS内置对象3-String对象
定义: 定义字符串的方法就是直接赋值,例如:var mystr="Javascript is good!"; 访问字符串的属性: length属性 eg:var myl=mystr ...
- Kafka 源代码分析之log框架介绍
这里主要介绍log管理,读写相关的类的调用关系的介绍. 在围绕log的实际处理上.有很多层的封装和调用.这里主要介绍一下调用结构和顺序. 首先从LogManager开始. 调用关系简单如下:LogMa ...