分享HTML5实现弹出框的效果示例


当前第2页 返回上一页

除了func属性外,还可以设置value属性作为默认值,如果对应的func取得的值为undefined或者null时,则会采用value属性定义的默认值,详情可见HT for Web数据绑定手册(http://www.hightopo.com/guide/guide/core/datamodel/ht-datamodel-guide.html)。例如,在这里,'tips1.json'文件中对阳光值进行数据绑定的结果如下:

1

2

3

4

"text": {

        "func": "attr@sunshine",

        "value": "阳光值"

      },

 下面贴上layout()函数的源代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

function layout(node, pos, type){

                node.s('2d.visible',true);

                node.setImage(type);                 

                if(type == 'tips1'){

                    node.setPosition(pos.x + node.getWidth()/2, pos.y - node.getHeight()/2);

                    node.a({

                        'sunshine'  :   '阳光值   :     '+ (pos.x/1000).toFixed(2),

                        'rain'  :   '雨露值   :     '+ (pos.y/1000).toFixed(2),

                        'love'  :   '爱心值   :    ***'

                    });

                } else if(type == 'tips2'){

                    node.setPosition(pos.x , pos.y - node.getHeight()/2);

                    node.a({

                        'temp'  :   '温度   :     30',

                        'humidity'  :   '湿度   :     '+Math.round(pos.x/100)+'%'

                    });

                } else if(type == 'tips3'){

                    node.setPosition(pos.x - node.getWidth()/2, pos.y - node.getHeight()/2);

                    node.a({

                        'hight'  :   '海拔   :    ' + Math.round(pos.y)+'米',

                        'landscapes'  :   '地貌   :    喀斯特'

                    });

                }

            }

云移动

最后,我们的Demo还有个云移动的动画效果,在HT的数据模型驱动的图形组件的设计架构下,动画可理解为将某些属性由起始值逐渐变为目标值的过程,HT提供了ht.Default.startAnim的动画函数,ht.Default.startAnim支持Frame-Based和Time-Based两种方式的动画:

Frame-Based方式用户通过指定frames动画帧数,以及interval动画帧间隔参数控制动画效果;

Time-Based方式用户只需要指定duration的动画周期的毫秒数即可,HT将在指定的时间周期内完成动画。

详情见HT for Web。

在这里我们用的是Time-Based方式,源码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

var cloud = dataModel.getDataByTag('cloud');

parent = dataModel.getDataByTag('mountain');

round1 = parent.getPosition().x - parent.getWidth()/2 + cloud.getWidth()/2;

round2 = parent.getPosition().x + parent.getWidth()/2 - cloud.getWidth()/2;

end = round1;

//云运动动画

var animParam = {

    duration: 10000,

    finishFunc: function() {

         end = (end == round1) ? round2 : round1;

         ht.Default.startAnim(animParam);

    },

    action: function(v, t) {

         var p = cloud.getPosition();

         cloud.setPosition(p.x + (end - p.x) * v , p.y);

     }

};

ht.Default.startAnim(animParam);

以上就是分享HTML5实现弹出框的效果示例的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

h5编辑器核心思想的实例分析

详细介绍h5弹性盒布局的使用(父容器属性)

如何使用HTML5的page visibility api来实现获取焦点js事件

h5的地理定位怎样使用

HTML5 dialog是什么?怎么使用HTML5中的dialog来实现模拟弹窗?

canvas波浪效果的实现代码

HTML5的集合

HTML5调用百度地图api获取当前位置并直接导航目的地的方法

HTML5的地理定位如何使用

HTML5的63行代码实现贪吃蛇游戏

更多相关阅读请进入《HTML5》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...