aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 14185|回复: 2

研究HTMLayout界面中用CSSS!实现动画移动并变形遇到问题

[复制链接]

75

主题

767

回帖

5045

积分

六级会员

The only one

积分
5045
发表于 2012-8-24 09:49:41 | 显示全部楼层 |阅读模式
本帖最后由 look 于 2012-8-24 09:52 编辑

import win.ui;
/*DSG{{*/
var winform = ..win.form( right=789;bottom=523;parent=...;text="HTMLayout 自定义控件";border="none" )
winform.add(  )
/*}}*/

import console;
import web.layout;
var wbLayout = web.layout(winform );

import web.layout.debug;
wbLayout.attachEventHandler( web.layout.debug );
wbLayout.html =
/***
<body>
    <div id="big" >变大移动</div>  
    <div id="small" >变小移动</div>
    <div id="close" >关闭窗口</div>
</body>
***/


wbLayout.css =
/**
body{
    margin:0px;
    font:system;
    width:500px;
    height:600px;
    background-color:blue;  
}
div{
    color:#ffffff;
}

#big
{
    active-on!:self.start-animation( 0.4s );
    //动画事件
    animation-step!:
        $(body)::background-color= blue,
        $(body)::width=morph("cubic-out", 150px, 500px ),
        $(body)::height=morph("cubic-in-out", 150px, 500px ),
        $(body)::transition=background-color(timing-function:linear, duration:0.7s, delay:0.2s);
}
#small
{
    active-on!:self.start-animation( 0.4s );
    //动画事件
    animation-step!:
        $(body)::background-color= red,
        $(body)::width=morph("cubic-out", 500px, 150px ),
        $(body)::height=morph("cubic-in-out", 500px, 150px ),
        $(body)::transition=background-color(timing-function:linear, duration:0.7s, delay:0.2s);
}
**/

var body=wbLayout.queryEle("body")

body.onSize =
function (ltEle) {
   
var rcEle=ltEle.getRect();
   
var rc=winform.getRect()
    rc.bottom=rcEle.bottom+rc.top;
    rc.right=rcEle.right+rc.left;
    winform.setRect(rc)
}
body.attachEventHandler();

var closeEle=wbLayout.getEle("close");
closeEle.onMouseClick  =
function (ltTarget,ltEle,reason,behaviorParams) {
    winform.close()
}
closeEle.attachEventHandler();

var changeBiger=wbLayout.getEle("big");
changeBiger.onMouseClick  =
function (ltTarget,ltEle,reason,behaviorParams) {

}
changeBiger.attachEventHandler();

var changeSmaller=wbLayout.getEle("small");
changeSmaller.onMouseClick  =
function (ltTarget,ltEle,reason,behaviorParams) {

}
changeSmaller.attachEventHandler();


winform.show()
win.loopMessage();
想实现动画过渡移动主窗体,并变形,还是分不清CSS属性中transition的渐变和CSSS!用morph函数实现动画的用法,以上尝试代码,出错,请指点
变形前:

变形前

变形前



变形后:

变形后

变形后



4

主题

852

回帖

4689

积分

荣誉会员

积分
4689
发表于 2012-8-24 10:17:40 | 显示全部楼层
CSSS!并不是一门编程语言,即使是脚本语言也算不上,这在官方网站有说明,
所以你不要用编程语言的思维习惯去理解他。

他充其量只是多了一些功能的CSS而已。
有很多属性并不能在CSSS!脚本里访问,而且写法也很怪异。

你看范例里,正确的方法应当是按标准CSS来写,
在CSSS!里切换他们的状态或CSS类名,从而间接触发这些CSS.

75

主题

767

回帖

5045

积分

六级会员

The only one

积分
5045
 楼主| 发表于 2012-8-24 10:29:56 | 显示全部楼层
不争 发表于 2012-8-24 10:17
CSSS!并不是一门编程语言,即使是脚本语言也算不上,这在官方网站有说明,
所以你不要用编程语言的思维习惯 ...

多谢指点,我再试试!
窗体移动动画过渡,我打算主窗体最大,body下放一个浮动div,全部界面放到这个这个浮动div,这样用transition实现动画过渡移动,思路可行吗?
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2024-9-9 12:26 , Processed in 0.062302 second(s), 25 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表