贰三三
贰三三
  • 发布:2019-12-16 20:11
  • 更新:2021-04-30 11:51
  • 阅读:4526

nvue 能否使用 css 动画或其他的方式实现动画?

分类:uni-app

nvue 能否使用 css 动画或其他的方式实现动画?

2019-12-16 20:11 负责人:无 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

nvue支持css动画。看weex的文档里的css部分。
也可以用bindingx做动画。

  • 贰三三 (作者)

    好的,谢谢

    2019-12-17 09:39

  • 贰三三 (作者)

    内个,请问,


    在 compilerVersion = 3 下,nvue 页面貌似无法使用 weex.requireModule() ?


    试了下


    const modal = weex.requireModule('modal')

    modal.toast({

    message: 'hello world'

    })



    const animation = weex.requireModule('animation')

    animation.transition(...)


    在真机调试下和打包下都没有效果诶,没有报错但也没有效果(


    hbuilderx 版本 2.4.7.20191216-alpha

    2019-12-17 11:43

  • c***@163.com

    app不生效

    2021-03-21 17:48

DCloud_uni-ad_HDX

DCloud_uni-ad_HDX

测试正常

<template>  
    <view class="page">  
        <list ref="list1" class="list">  
            <cell v-for="(item, index) in dataList" :key="item.id">  
                <view class="list-item">  
                    <text>{{item.name}}</text>  
                </view>  
            </cell>  
        </list>  
        <view ref="block" class="block"></view>  
    </view>  
</template>  

<script>  

    export default {  
        data() {  
            return {  
                dataList: []  
            }  
        },  
        onReady() {  
            for (var i = 0; i < 30; i++) {  
                this.dataList.push({  
                    id: i,  
                    name: i  
                });  
            }  

            const modal = weex.requireModule('modal')  

            modal.toast({  
                message: 'hello world'  
            })  

            setTimeout(() => {  
                this.bind();  
            }, 300)  
        },  
        methods: {  
            bind(e) {  
                const Binding = weex.requireModule('bindingx');  

                Binding.bind({  
                    eventType: 'scroll',  
                    anchor: this.getEl(this.$refs.list1),  
                    props: [{  
                            element: this.getEl(this.$refs.block), //动画元素  
                            property: 'opacity', //动画属性  
                            expression: '1-y/400' //表达式 说明了y从0-400,对应的值是1-0    
                        },  
                        {  
                            element: this.getEl(this.$refs.block), //动画元素  
                            property: 'transform.scale', //动画属性  
                            expression: 'y<200?1+y/200:2-(y-200)/200' //说明了y从0-200,对应的值是1-2  
                        }  
                    ]  
                });  
            },  
            getEl(e) {  
                return e.ref;  
            }  
        }  
    }  
</script>  

<style>  
    .page {  
        flex: 1;  
        flex-direction: column;  
    }  

    .list {  
        flex: 1;  
        background-color: lime;  
    }  

    .list-item {  
        padding: 20px;  
        border-width: 1px;  
        border-style: solid;  
        border-color: #007AFF;  
    }  

    .block {  
        position: fixed;  
        left: 0;  
        top: 0;  
        width: 100px;  
        height: 100px;  
        background-color: red;  
    }  
</style>  
  • 1062274569

    为什么我试了一下没效果呢

    2020-04-21 09:20

wzl_amateur

wzl_amateur - 编程爱好者

只能在app端显示

该问题目前已经被锁定, 无法添加新回复