- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我见过一些例子,人们在 famo.us 中对 Surface
类进行子类化,并重写 deploy
函数。这是 famo.us 在渲染上需要的特殊函数吗?我有一个我正在构建的“控件”,它有一些我想在它变得可见时显示的动画,但我不希望它们在实例化对象时启动,我希望它们稍后在向用户显示时显示。这就是 deploy
函数的用途吗?
最佳答案
披露:我可能是您见过的许多覆盖部署示例的作者。
当我与 Famo.us 合作并需要将自己的属性添加到 native DOM 元素时,我想到了 Surface 中的部署功能。 Deploy 获取从管理 DOM 资源的 ElementAllocator 接收的目标元素。这是 Surface 有机会更改任何原始 DOM 元素的属性以适应提供给 Surface 的选项。
为了回答你的问题,只有当你需要在原始 DOM 元素显示在屏幕上之前访问它时,才需要重写部署函数。然而,您只需要设置元素的不透明度,并且可以使用“部署”事件上的表面来执行此操作。
这是使用事件的示例..
var Engine = require('famous/core/Engine');
var Surface = require('famous/core/Surface');
var StateModifier = require('famous/modifiers/StateModifier');
var context = Engine.createContext();
var surface = new Surface({
size:[200,200],
content:"Hello!",
properties: {
backgroundColor:'green',
color:'white',
textAlign:'center',
lineHeight:'200px'
}
})
surface.on('deploy',function(){
console.log("Deployed!");
surface.state.setOpacity(1);
})
surface.state = new StateModifier({ origin:[0.5,0.5]});
surface.state.setOpacity(0);
context.add(surface.state).add(surface);
在使用deploy事件时,你还可以看到一些非常有趣的东西。如果您通过 Web 控制台或 grunt 重新加载代码,并且 Famo.us 应用程序不是当前可见的选项卡,则不会调用部署函数。这是 requestAnimationFrame 的一个功能,允许它不花费周期更新不可见的屏幕。当您最终打开该选项卡时,您可以看到“已部署!”记录到控制台。
希望这有帮助!
关于famo.us:famo.us 中的 "deploy"函数的含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23768293/
我看到famo.us examples主要引用Modifier类,但是famo.us大学教程主要引用StateModifier类。 两者有何区别?哪种最适合? 最佳答案 目前,这些没有区别。 如果需要
例如,在基于 Bootstrap 的应用程序中,我可能会编写标记以使网格为大屏幕宽 8 列,小屏幕宽 2 列。 屏幕尺寸肯定会对屏幕设计产生影响,在我开始在 famo.us 中尝试之前,我想知道应该遵
我对 Famo.us 所呈现的“这是碎片,现在去做点什么”的方式没有意见,但如果能对我希望如何设置我的项目、结构、模块等有一些指导,那就太好了. 为什么没有实际网页的演示,而不是单屏 iPhone V
Famo.us Surfaces 有一个单一的方法来设置一个表面的大小。它们有一个“大小”属性,该属性采用 2 个数字组成的数组,这些数字直接对应于像素值。考虑到大量不同的屏幕尺寸,这在处理移动设备时
我在使用 Famo.us scrollview 的移动设备上遇到滚动性能不佳的问题。我正在使用 Famo.us/Angular。这是使用的代码:
创建 InputSurface 时,我无法使用各种属性,例如 autofocus 或 maxLength。 this.email = new InputSurface({ classe
有没有办法在现有的 DOM 结构中创建 famo.us 容器? 我的意思是创建一个 famo.us 上下文和生成的 .famous-container (?),并将其附加到现有元素。 最佳答案 当然。
我见过一些例子,人们在 famo.us 中对 Surface 类进行子类化,并重写 deploy 函数。这是 famo.us 在渲染上需要的特殊函数吗?我有一个我正在构建的“控件”,它有一些我想在它变
AFAIK,目前没有像 jsfiddle 或 codepen 这样的网站支持 Famo.us。是否有其他方法可以共享 Famo.us 的工作代码示例,这些示例足够永久以保证在 Stack Overfl
相关 this question about scrollview我对相反的感兴趣 - 如何从代码控制滚动并添加滚动条。只是想知道 famo.us 是否有任何预设方法可以做到这一点,或者我们是否必须手
我是“物理引擎世界”的新手。我决定使用 Famo.us 进行试验并尝试学习如何使用物理引擎。 如何让球在相互撞击时反弹?我设法添加了球并创建了墙壁。球撞到墙壁时会反弹,但相互撞击时不会反弹,它们只是穿
我想知道如何构建我的应用程序。我是否应该使用自定义视图和一个将对其进行控制的主视图。或者将我的观点保存在灯箱中更好。我发现的所有示例都在某种程度上受到功能的限制,并且仅显示一个或几个屏幕。什么是组织更
我正在构建一个需要物理引擎的站点。 使用过许多 SPA 应用程序后,我对此非常有信心。 不幸的是,我无法将碰撞检测和墙壁应用于著名的物理模拟。 您可以在此处查看可编辑示例。 https://stagi
我感觉好像缺少明显的东西,但是如何从渲染树中删除节点并正确销毁它们呢? 看起来我可以做mainCtx._node._child.splice(2,1)之类的事情,但这并不是在所有情况下都可行(Scro
谷歌的纸张/ Material 设计http://www.google.com/design/spec/material-design/introduction.html 是一个非常干净的外观,我认为
我想做类似的东西http://brm.io/gears-d3-js/基于 Famo.us,但查看 throw 物理模块我找不到多边形体。可以用另一种方式完成吗?或者可能还有其他带有多边形的 fork
我真的很努力地解决这个问题。但似乎没有任何作用。 我正在尝试在页面顶部创建一个菜单,该菜单仅在悬停时才可见。 现在非常简单的元素: topViewSurf = new Surface({ cl
我想监听创建表面时发出的事件。目的是在该表面包含的 div 内加载谷歌地图。 var surfaceMap = new Surface({ size: [400, 400], content:
我按照这个例子 http://famo.us/university/famous-102/input/5/ 它提到了多点触控,但没有示例 Famo.us also has support for mu
我试图用包含多个表面(甚至内部 View )的 View 制作一个 ScrollView ,但它不会滚动。它只是填充内容直到折叠,并且不会进一步向下滚动(不响应鼠标滚轮或触摸手势)。 View 类中创
我是一名优秀的程序员,十分优秀!