📜  Foundation-JavaScript实用工具

📅  最后修改于: 2020-10-25 05:53:33             🧑  作者: Mango


 

Foundation包含用于添加常用功能的JavaScript实用程序。这是非常有用和易于使用的。可以在文件夹Your_folder_name / node_modules / foundation-sites / js中找到此JavaScript实用程序库

  • Foundation.Box库包含两种方法。
  • js / foundation.util.box.js是脚本文件名,可以在编写代码时将其包含在内。
  • jQuery对象或普通JavaScript元素都可以传递给这两种方法。
var dims = Foundation.Box.GetDimensions(element);

返回的对象将元素的尺寸指定为-

{
   height: 54,
   width: 521,
   offset: {
      left: 198,
      top: 1047
   },
   
   parentDims: {
      height: ...    //The same format is share for parentDims and windowDims as the element dimensions.
   },
   
   windowDims: {
      height: ...
   }
}
  • 包含功能ImNotTouchingYou
  • 基于传递的元素,返回一个布尔值,该布尔值与窗口边缘或可选元素或父元素冲突。
  • 在下面给出的行中指定的两个选项,即leftAndRightOnly,topAndBottomOnly,仅用于标识一个轴上的碰撞。
var clear = Foundation.Box.ImNotTouchingYou (
   element [, parent, leftAndRightOnly, topAndBottomOnly]);

键盘

  • Foundation.Keyboard中有许多方法,可帮助简化键盘事件的交互。
  • js / foundation.util.keyboard.js是脚本文件名,可以在编写代码时将其包含在内。
  • 对象Foundation.Keyboard.keys包含键/值对,这些键在框架中的使用频率更高。
  • 每当按下该键时,就会调用Foundation.Keyboard.parseKey以获取字符串。这有助于管理您自己的键盘输入。

以下代码用于查找给定$ element中的所有可聚焦元素。因此,您无需编写任何函数和选择器。

var focusable = Foundation.Keyboard.findFocusable($('#content'));
  • handleKey函数是该库的主要函数。
  • 此方法用于处理键盘事件。只要在实用程序中注册了任何插件,便可以调用它。
Foundation.Keyboard.register('pluginName', {
   'TAB': 'next'
});

...//in event callback
Foundation.Keyboard.handleKey(event, 'pluginName', {
   next: function(){
      //do stuff
   }
});

当您要使用自己的按键绑定时,可以调用Foundation.Keyboard.register函数。

媒体查询

  • MediaQuery库是所有响应式CSS技术的基础。
  • js / foundation.util.mediaQuery.js是脚本文件名,可以在编写代码时将其包含在内。
  • Foundation.MediaQuery.atLeast(‘large’)用于检查屏幕是否至少与断点一样宽。
  • Foundation.MediaQuery.get(‘medium’)获取断点的媒体查询。
  • Foundation.MediaQuery.queries是一组媒体查询,Foundation用于断点。
  • Foundation.MediaQuery.current是当前断点大小的字符串。
Foundation.MediaQuery.get('medium');
Foundation.MediaQuery.atLeast('large');
Foundation.MediaQuery.queries;
Foundation.MediaQuery.current;

以下代码在窗口上广播媒体查询更改。

$(window).on('changed.zf.mediaquery', function(event, newSize, oldSize){});

运动与移动

  • Foundation.Motion javascript与Motion UI库类似,该库包含在Foundation 6中。它用于创建自定义CSS过渡和动画。
  • js / foundation.util.motion.js是脚本文件名,可以在编写代码时将其包含在内。
  • Foundation.Move用于使CSS3支持的动画简单而优雅。
  • requestAnimationFrame();方法告诉浏览器执行动画;它要求在浏览器执行下一次重绘之前调用动画函数。
Foundation.Move(durationInMS, $element, function() {
   //animation logic
});

当完成动画,finished.zf.animate被激发。

计时器和图像已加载

Orbit同时使用函数计时器和加载的图像。 js / foundation.util.timerAndImageLoader.js是脚本文件名,可以在编写代码时将其包含在内。

var timer = new Foundation.Timer($element, {duration: ms, infinite: bool}, callback);

当图像完全加载后,图像加载的方法会在jQuery集合中运行回调函数。

Foundation.onImagesLoaded($images, callback);

触摸

  • 该方法用于添加伪拖动事件和向元素滑动。
  • js / foundation.util.touch.js是脚本文件名,可以在编写代码时将其包含在内。
  • addTouch方法用于将元素绑定到移动设备的Slider插件中的触摸事件。
  • spotSwipe方法将元素绑定到移动设备Orbit插件中的滑动事件。
$('selector').addTouch().on('mousemove', handleDrag);

$('selector').spotSwipe().on('swipeleft', handleLeftSwipe);

扳机

  • 它触发选定元素的指定事件。
  • js / foundation.util.triggers.js是脚本文件名,可以在编写代码时将其包含在内。
  • 在许多Foundation插件中都使用了触发器。
$('selector').on('open.zf.trigger', handleOpen);
$('selector').on('close.zf.trigger', handleClose);
$('selector').on('toggle.zf.trigger', handleToggle);

此库中使用以下两种方法,即调整大小和滚动。

  • 当发生大小调整事件时, resize()方法将触发大小调整事件。
  • 当发生滚动事件时, scroll()方法将触发滚动事件。
$('#someId').on('scrollme.zf.trigger', handleScroll);
$('#someId').on('resizeme.zf.trigger', handleResize);

  • Foundation在核心库中包含的功能很少,在许多地方都使用过。
  • js / foundation.core.js是脚本文件名,可以在编写代码时将其包含在内。
  • Foundation.GetYoDigits([number,namespace])返回一个随机的base-36 uid,带有命名空间。默认情况下,它返回的字符串长度为6个字符。
  • Foundation.getFnName(fn)返回JavaScript函数名称。
  • CSS转换完成后,将发生Foundation.transitionend