elfFrame.js

elfFrame.js是一套独立的前端WEB开发框架,不依赖其它任何框架,并集成常用组件、字体、图标等,学习成本低,可简单快速地搭建出精彩酷炫的网站.

为什么选择elfFrame
  • 01、使用动态参照布局 (发明专利),自主研发,可以减少页面布局痛点(了解动态参照布局更多...);
  • 02、反编译,由于使用headLoader.js加载引擎,程序代码不会暴露在外,很大程度上防止了反编译的可能(了解headLoader更多...)。
  • 03、"0成本"的网站加速,由于使用了浏览器的IndexedDB数据库存取模块,从而极大地降低了对服务器性能地依赖;
  • 04、实现离线页面,框架可将所有子页面的JS/CSS/HTML文件全部缓存,另外还支持图片、字体库等二进制文件,因此可以开发离线页面。
  • 05、自主字库,elf_round字体是自主设计并开发的,各字母、数字间强化区别,美观大方容易识别(了解elf_round字体更多...);
  • 06、自主图标库,所有图标都是自主设计并开发的,拥有版权,放心使用(了解图标库...);
  • 07、自主开发的丰富组件集成(了解UI精灵组件更多...);
  • 08、无学习成本,所有组件都具有通用方法initData、getValue、setValue等,不必记忆过多的命令,前端开发工程师可直接上手;
  • 09、转场动画特效,既页面间的切换采用动画方式可供选择,方式多样仅需修改参数即可;
  • 10、提供常用的JS库,越过重复繁琐的基础开发过程直奔项目主题;
  • 11、内置自动化测试工具,轻松找到bug;
  • 12、系统化管理,提供config.js配置文件,配置灵活简单;
  • 13、自研工程化工具——local-site(了解local-site更多...),可实现web服务,接口代理服务,文件自动关联服务,代码压缩丑化服务等功能。
框架预览
如何安装
  • github或者npm都可以获取项目代码;

    方法1:通过github获取代码,克隆地址:

    https://github.com/baiyukey/elfFrame.git

    方法2:如果您的电脑已经安装npm环境,可通过如下命令获取代码:

    npm i elf-frame
                  //或者
             npm i https://github.com/baiyukey/elfFrame.git
如何建立框架页

框架页也可以叫入口页面,例如想要建立一个newIndex.html的页面,方法如下:

  • 在newIndex.html页面中嵌入JS,方法如下:
    
                  <script type="text/javascript" data-dir="/media/" data-js="libs/jquery.min,libs/elfFrame.min" src="/media/js.min/utils/headLoader.min.js?v=2025-07-07"></script>
                
  • 在newIndex.html页面中加入标准的HTML元素
    <article id="elfFramePages" data-file="/subPage/home.html" ></article>
    <!--框架子页面容器(可选),
         id必须为"elfFramePages",所有子页最终都在"#elfFramePages"元素中展现;
         data-file属性必选,用于设置欢迎页,标签类型用div,section也可以.-->
    <div data-file="/componentSubpage/inc/leftMenu.inc.html" id="leftMenu"></div>
    <!--加载框架页面HTML代码的容器(可选),例如页头,页脚,菜单等等,
         data-file属性必选,用于指定加载哪个页面的HTML代码,
         id属性可选,标签类型用div,section什么的也可以.-->

    当页面中同时存在"#elfFramePages"和"#leftMenu"两个元素时,会激活动态参照布局功能(还需要加载elfLayout.js)

  • 在newIndex.html页面中加入img元素
    <img data-file="/images/pic.jpg" style="width:100px;height:100px"  ></img>
    <!--data-file属性必选,elfFrame会根据图片路径自动加载并缓存以便下次快速载入-->
如何创建子页面

项目中的test/subPage/目录下全部为框架子页面,可以为您提供参考; 具体方法如下:

  • 在框架中任何位置(包括子页面)添加子页链接:
    <a data-href="/test/xxx.html">在#elfFramePages容器中打开</a>;
  • 不论是框架页还是子页都需要3个同名文件组成,xxx.html, xxx.css, xxx.js,所置目录如下:
    html/test/xxx.html
    /media/css/test/xxx.css
    /media/js/test/xxx.css

    使用工程化工具local-site可实现创建HTML文件时自动创建关联的文件

框架页切换
  • 通过点击链接切换子页面,只要给链接添加"data-href"属性即可,链接可以在框架下的任何位置,包括子页,例如:
    <a data-href="/512.html">打开“/512.html”这个页面</a>
  • 鼠标经过链接切换页面,在链接的上层元素中加入"autoClick"类可以使鼠标划入时自动点击(这个方法适合于左栏菜单场景),例如:
    <div class="autoClick">
                  <a data-href="/512.html">在框架页中打开这个链接</a>
                  <a data-href="/110.html">"autoClick"类包含的链接,在鼠标经过自动触发</a>
                  </div>
  • 使用JS语句切换页面
    
                  window.top.elfFrame.href(`/512.html`)
                
注意事项
  • 不论是框架页还是子页,在编辑完页面相关的JS,CSS文件后,需要进行压缩,因为线上环境只会加载压缩文件.
    /elfFrame/index.html对应的CSS,JS文件
    /media/css/elfFrame/index.css需要压缩成/media/css.min/elfFrame/index.min.css
    /media/js/elfFrame/index.js需要压缩成/media/js.min/elfFrame/default.min.js
  • 为了减少代码压缩给您带来的额外工作,这里提供一个开源免费的工程化工具local-site,您可以利用它在开发阶段创建一个本地服务,同时在您创建,删除或更改代码时自动完成代码压缩并关联到指定目录等工作.
JS库

elfFrame为开发者提供了一些常用的JS库(elf.js),例如子页面所属框架窗口尺寸自适应函数elf.iframeResize,自定义AJAX函数elf.myAjax,数据转码,正则判断等等...(了解更多)

代码下载

https://github.com/baiyukey/elfFrame

责任声明
  • 个人用户免费使用,捐赠请扫页面左栏下方的二维码,您的支持是对知识产权最大的尊重;
  • 营利机构,政府部门或者商业用户,您需要联系作者(baiyukey@qq.com)申请一个授权(*推广期酌情免费授权)
  • 作者保留一切法律权力,并对于侵权或者非法使用行为,有权追究一切法律责任;
  • UI精灵目前的域名仅有uielf.cn,而且暂未和任何第三方合作,对于冒名合作开发的机构作者保留追究其法律责任的权利。
关于我
我是一名网站前端工程师,江湖道义称一声宇哥,追求前端技术和艺术20余载,自由职业。
UI精灵网站及技术成果全部由我研发,如果想拥有和我一样的网站,或者需要我的技术支持,欢迎与我洽谈合作。点此发送邮件
如果我的成果能够帮您节省宝贵的时间。不妨点击我的头像请我喝杯咖啡。并诚邀来github关注我的开源项目。