一个内部使用的javascript库:geekpark.js

jopen 10年前

1.概述

一个团队内部使用的javascrip库,主要着重减轻前端工作量,提高组件复用性。目前处于初级开发阶段。

2.安装

  • 此插件依赖jQuery框架,请先引入jQuery
  • 下载geekpark.min.js到项目文件夹
  • 如果你需要使用gpalert等UI组件则还需要下载geekpark.min.css文件 


3.使用方法

  1. 「Grunt支持」运行grunt即可生成编译scss并生成压缩后的文件
  2. geekpark.min.js引入你的项目后,即可通过GeekPark.xxx调用其中组件/函数。GeekPark是暴露在window下的全局变量
  3. source map支持,如果你不想启用或者浏览器加载不上可在geekpark.css最底部删掉map引用

部分组件/函数列表

  1. slideToDom(dom, offset, callback):平滑滚动到某个DOM。
    • dom可为符合jQuery选择器的任何形式,eg:.title#titleh1.titleinput[type='test']
    • offset距离DOM的偏移,即滑动后距离浏览器顶部的边距
    • callback滑动完成后的回调函数
  2. isRetinaDisplay()检测是否为Retina屏幕,返回布尔值(定义retina的界限为1.3dpi)
  3. whichTransitionEvent()检测某元素css动画知否执行完毕。某些浏览器原生也有检测完毕,该例子只是为了兼容性

    var transitionEvent = GeekPark.whichTransitionEvent();    $('xxx').one(transitionEvent, function(event) {   // Do something when the transition ends  });
  4. alertTip()一个弹窗组件,用于美化浏览器自带alert(),兼容移动版
    • 参数说明: alertTip(title, tip, type)
    • title弹窗标题tip弹窗正文type(可选): error类型
    • 此例会使用到geekpark.css
  5. share对象,拥有openWindowrun方法,用于打开微博和推ter的分享。
    • window.GeekPark.share.run(type, options)
    • type ==> { weibo | 推ter }
    • options ==> {title: 'title', imageView: 'img url'}
  6. loadingBtn对象,目前拥有createNew方法
    • GeekPark.loadingBtn( jQueryObject, loadingGif图片地址 );
  7. isWechat()通过UA检测是否在微信浏览器内打开页面,返回布尔值
  8. stringTrim()剔除string两边的空格
    • GeekPark.stringTrim('geekpark ') => 'geekpark'
  9. arrayShuffle()打乱一个数组 var arr = [1,2,3,4,5]; GeekPark.arrayShuffle(arr); // [2,1,4,5,3] // [3,1,4,2,4] // ...
  10. changeWechatShare()用于更改微信分享到朋友圈发送给朋友标题描述以及缩略图 shareData = { title: xxx, // 可选 desc: xxx, // 可选 link: xxx, // 可选 img_url: xxx // 必须 } GeekPark.changeWechatShare(shareData);
    • 如果你是服务号并且还想增加在朋友圈中的来自xxx小尾巴,请看源码,在WeixinJSBridge.invoke('shareTimeline', {下的参数中增加`"appid" : 公众号原始ID"

项目主页:http://www.open-open.com/lib/view/home/1419575199546