Durandal在android上的转换速度较慢
Durandal transition slow on android
我将使用Phonegap+Durandal开发一个混合应用程序。到目前为止,我正在开发一款经典的Web应用程序,并计划在对该应用程序的功能集感到满意后立即切换到混合应用程序。
到目前为止,我意识到在使用Nexus 4或Nexus 7平板电脑时,Durandal在从一个视图切换到另一个视图时执行的转换非常草率且不流畅。
有人知道如何加快速度吗?最后的选择是转换,但这将是非常可悲的=(
更新:Ok发现,例如entrance.js似乎使用Javascript动画而不是CSS3动画。猜测这是从哪里开始修复
我确实使用了这个库:css3传输比默认快得多
并更改入口.js(可能你需要适应,但这对我有效)
define(['../system'], function(system) {
var fadeOutDuration = 100;
var entrance = function(parent, newChild, settings) {
return system.defer(function(dfd) {
function endTransition() {
dfd.resolve();
}
function scrollIfNeeded() {
if (!settings.keepScrollPosition) {
$(document).scrollTop(0);
}
}
if (!newChild) {
scrollIfNeeded();
if (settings.activeView) {
$(settings.activeView).transition({
opacity: 1,
scale: 0.3,
duration: duration,
easing: 'in',
complete: function(){
$(settings.activeView).css('display' ,'none');
if (!settings.cacheViews) {
ko.virtualElements.emptyNode(parent);
}
endTransition();
}
});
} else {
if (!settings.cacheViews) {
ko.virtualElements.emptyNode(parent);
}
endTransition();
}
} else {
var $previousView = $(settings.activeView);
var duration = settings.duration || 500;
function startTransition() {
scrollIfNeeded();
if (settings.cacheViews) {
if (settings.composingNewView) {
ko.virtualElements.prepend(parent, newChild);
}
} else {
ko.virtualElements.emptyNode(parent);
ko.virtualElements.prepend(parent, newChild);
}
var startValues = {
//marginLeft: '90%',
//marginRight: '-20px',
opacity: 0,
scale: 0.3,
display: 'block'
};
var endValues = {
//marginRight: 0,
//marginLeft: 0,
opacity: 1,
scale: 1
};
$(newChild).page();
$(newChild).trigger('create');
$(newChild).css(startValues);
$(newChild).transition(
{
marginRight: 0,
marginLeft: 0,
opacity: 1,
scale: 1,
duration: duration,
easing: 'in',
complete: endTransition
});
//startValues,500, 'ease');
//$(newChild).transition(endValues, duration, 'swing', endTransition);
//$(newChild).transition({ opacity: 0.1, scale: 0.3 }, 500, 'in', function() {..});
//endTransition();
}
if ($previousView.length) {
$previousView.transition({
opacity: 0,
scale: 0.3,
duration: 500,
easing: 'in',
complete: function(){
$previousView.css('display' ,'none');
startTransition();
}
});
//$('.news').css('display','none');
//$previousView.fadeOut(fadeOutDuration, startTransition);
} else {
startTransition();
}
}
}).promise();
};
return entrance;
});
抱歉我英语不好。
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- 如何在Javascript中将JSon对象转换为数组
- 使用JS将数组转换为json对象
- 如何使用json将对象列表从java转换为javascript
- 偶尔结结巴巴地说“;堆叠的”;translate()上的转换(v4.0.0-alpha40)
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 在Javascript中转换对象数组
- 将数字转换为一定数量的硬币
- 将纯文本URL转换为可单击链接
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 字符串到整数的转换速度快,反之亦然
- 有没有办法在鼠标悬停时设置转换速度
- 如何以交互方式降低(或停止)jquery转盘转换速度
- Durandal在android上的转换速度较慢
- 如何提高NavigatorIOS的转换速度
- Remysharp's js Inview插件两次启动速度转换
- CSS3运行时的转换速度
- 如何将速度数组[x,y,z]转换为要存储在数据库中的字符串
- Jquery循环-不同速度转换的幻灯片