uniapp中实现走马灯的效果

本文将介绍如何在uniapp中创建走马灯效果,通过结合HTML、CSS及uniapp的特性和组件,详细讲解布局设计、动画实现以及交互逻辑,助你轻松打造动态轮播展示。
<template>
    <view class="roulette-container">
        <view class="roulette-container-open"></view>
        <view class="item-case-goods">
            <view class="item-small-case" v-for="item in itemImgs" :key="item.id">
                <image :src="item.url" class="item-img"></image>
            </view>
        </view>
    </view>
    
     

</template>
<script>
    export default{
        data(){
            return{
                itemImgs: [{
                      id: 1,
                      url:'../../static/gd/1.jpg'
                    }, {
                      id: 2,
                      url:'../../static/gd/2.jpg'
                    }, {
                      id: 3,
                      url:'../../static/gd/3.jpg'
                    }, {
                      id: 4,
                      url:'../../static/gd/4.jpg'
                    }, {
                      id: 5,
                      url:'../../static/gd/5.jpg'
                    }, {
                      id: 6,
                      url:'../../static/gd/6.jpg'
                    }, {
                      id: 7,
                      url:'../../static/gd/7.jpg'
                    }, {
                      id: 8,
                      url:'../../static/gd/8.jpg'
                    }, {
                      id: 9,
                      url:'../../static/gd/9.jpg'
                },{
                      id: 1,
                      url:'../../static/gd/1.jpg'
                    }, {
                      id: 2,
                      url:'../../static/gd/2.jpg'
                    }, {
                      id: 3,
                      url:'../../static/gd/3.jpg'
                    }, {
                      id: 4,
                      url:'../../static/gd/4.jpg'
                    }, {
                      id: 5,
                      url:'../../static/gd/5.jpg'
                    }, ]
            }
        },
    }
</script>
<style lang="scss">
    .roulette-container{
        position: relative;
        margin-top:100px; 
        height: 100px;
        .roulette-container-open{
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%,-50%);
            border: 2px solid red;
            width: 75px;
            height: 100px;
            z-index: 2;
        }
        .item-case-goods{
            position: relative;
            display: flex;
            flex-wrap: nowrap;
            height: 100px;
            animation: mymove 2s 2 linear;
            .item-small-case{
                flex-shrink: 0;
                width: 75px;
                height: 100%;
                .item-img{
                    width: 100%;
                    height: 100%;
                }
            }
        }
        
        .btn{
            margin-top: 50px;
        }
        @-webkit-keyframes mymove {
            from {
                left: 0px;
            }
            to {
                transform: translate(-675px) // 总共14张图片,只让其移动9张图片
            }
        }
        
    }

        
</style>
### 如何在 UniApp实现走马灯效果 #### 实现方式概述 为了实现UniApp 中创建具有跑马灯效果的功能,可以采用多种技术手段来达成这一目标。一种常见的做法是利用 `CSS` 动画属性配合 JavaScript 来控制文本的移动[^1]。 #### 利用 CSSHTML 结合的方式 通过定义特定样式的类名并将其应用于包含待滚动内容的容器标签内,能够轻松构建出基础版本的文字跑马灯效果。下面是一个简单的例子: ```html <template> <div class="marquee-container"> <span>{{ message }}</span> </div> </template> <script> export default { data() { return { message: '这是一条正在滚动的消息...' } } } </script> <style scoped> .marquee-container span { display: inline-block; white-space: nowrap; animation: scroll-left 10s linear infinite; } @keyframes scroll-left { from { transform: translateX(100%); } to { transform: translateX(-100%); } } </style> ``` 此代码片段展示了如何设置一个无限循环向左平移的效果,其中的关键在于设置了 `white-space:nowrap;` 防止文字折行,并且使用了自定义动画 `scroll-left` 控制位移变化过程。 对于更复杂的需求比如调整滚动速度或是处理多行文本的情况,则可以根据具体场景进一步优化样式表中的参数配置。 #### 整合到实际项目中 如果是在类似于鸿蒙这样的框架下工作,考虑到其特有的工程结构与模块划分模式,在视图文件夹下的相应页面组件里引入上述逻辑会更加合理[^2]。例如可以在 `view/Marquee.ets` 文件中编写类似的模板和脚本部分,而样式则放置于同一目录下的 `.css` 或者 `<style>` 标签内部。 另外值得注意的是,当涉及到较为复杂的交互操作或者是希望获得更好的性能表现时,可能还需要借助额外的技术支持,如某些情况下 GPU 加速可能会带来显著的好处[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值