当前位置: 首页 > news >正文

原生微信小程序 动态(横向,纵向)公告(广告)栏

先看一下动态效果

Y轴滚动公告的原理是swiper组件在页面中的Y轴滚动,属性vertical,其余属性也设置一下autoplay circular interval="3000"

X轴滚动的原理是,利用动画效果,将内容从右往左过渡过去

wxml:

<!-- Y轴滚动公告 -->
<view class="wrapY"><swiperclass="swiper_wrap"verticalautoplaycircularinterval="3000"><block class="block_wrap" wx:for="{{items}}"><swiper-item><view class="itemCon">{{item.title}}</view></swiper-item></block></swiper>
</view>
<!-- X轴滚动公告 -->
<view class='wrapX'><view class="wrapOut"><view class="wrapInner"><view class="contant">{{notice}}</view></view></view>
</view>

wxss:

view,
swiper,
swiper-item,
navigator {padding: 0;margin: 0;box-sizing: border-box;
}
.wrapY {padding: 20rpx;
}
.wrapY .swiper_wrap {width: 95vw;height: 60rpx;background-color: #FFEBDA;border-radius: 30rpx;padding-left: 40rpx;padding-right: 30rpx;
}
.wrapY .swiper_wrap .itemCon {overflow: hidden;white-space: nowrap;text-overflow: ellipsis;line-height: 60rpx;
}
.wrapX {padding: 20rpx;
}
.wrapX .wrapOut {background-color: #FFEBDA;height: 60rpx;border-radius: 30rpx;overflow: hidden;
}
.wrapX .wrapOut .wrapInner {overflow: hidden;margin-left: 40rpx;margin-right: 40rpx;
}
.wrapX .wrapOut .wrapInner .contant {line-height: 60rpx;white-space: nowrap;animation: remindMessage 13s linear infinite;width: 100%;
}
@keyframes remindMessage {0% {-webkit-transform: translateX(100%);}100% {-webkit-transform: translateX(-180%);}
}

less:
 

view,
swiper,
swiper-item,
navigator {padding: 0;margin: 0;box-sizing: border-box;
}
.wrapY {padding: 20rpx;.swiper_wrap {width: 95vw;height: 60rpx;background-color: #FFEBDA;border-radius: 30rpx;padding-left: 40rpx;padding-right: 30rpx;.itemCon {overflow: hidden;white-space: nowrap;text-overflow: ellipsis;line-height: 60rpx;}}
}.wrapX {padding: 20rpx;.wrapOut {background-color: #FFEBDA;height: 60rpx;border-radius: 30rpx;overflow: hidden;.wrapInner {overflow: hidden;// 这里不能用padding,会被当做盒子的一部分,文字到达一定部位之后,仍然不会隐藏margin-left: 40rpx;margin-right: 40rpx;.contant {line-height: 60rpx;white-space: nowrap;animation: remindMessage 13s linear infinite;width: 100%;}}}}@keyframes remindMessage {0% {-webkit-transform: translateX(100%);}100% {-webkit-transform: translateX(-180%);}
}

js:

Page({data: {items: [{title: "公告:由加莉由加莉由加莉由加莉由加莉由加莉由加莉由加莉由加莉"},{title: "公告:真步真步真步真步真步真步真步真步真步真步真步真步真步真步"},{title: "公告:镜华镜华镜华镜华镜华镜华镜华镜华镜华镜华镜华镜华镜华镜华"}],notice: ""},onLoad: function (options) {this.autoChangeX();},autoChangeX: function () {// 定义初始第一条的内容let index = 0;const { items } = this.data;this.setData({notice: items[0].title})index++;// 设置定时器,和动画时间间隔相等// 每隔13秒更换X轴公告的内容setInterval(() => {if (index === items.length - 1) {this.setData({notice: items[index].title})index = 0;} else {this.setData({notice: items[index].title})index++;}}, 1000 * 13)}
})
http://www.lryc.cn/news/143977.html

相关文章:

  • pandas和polars简单的对比分析
  • Feign远程调用的使用
  • Postman API测试之道:不止于点击,更在于策略
  • 5G 数字乡村数字农业农村大数据中心项目农业大数据建设方案PPT
  • Golang Gorm 一对多的添加
  • 图像扭曲之锯齿
  • 【分布式技术专题】「OSS中间件系列」Minio的文件服务的存储模型及整合Java客户端访问的实战指南
  • 构建个人博客_Obsidian_github.io_hexo
  • 烟花厂人员作业释放静电行为检测算法
  • ARTS挑战第二周-T:PHP数组相关操作
  • 【如何对公司网络进行限速?一个案例详解】
  • 服务器安全-修改默认ssh端口
  • 保护隐私的第一步:从更新浏览器开始
  • Python爬虫框架之快速抓取互联网数据详解
  • 【算法专题突破】双指针 - 盛最多水的容器(4)
  • 循环神经网络(RNN) | 项目还不成熟 |还在初级阶段
  • 【Spring Boot】数据库持久层框架MyBatis — MyBatis简介
  • K8S Nginx Ingress实现金丝雀发布
  • 【C++入门】new和delete(C/C++内存管理)
  • C++设计模式之桥接模式
  • 前端速查速记系列----评论列表
  • hiredis的安装与使用
  • 【InsCode】InsCode打造的JavaSE与Linux命令互融的伪Linux文件系统小项目
  • “深入解析JVM:探索Java虚拟机的内部机制“
  • 内网远程控制总结
  • Excel显示此值与此单元格定义的数据验证限制不匹配怎么办?
  • mysql(八)事务隔离级别及加锁流程详解
  • 华为云Stack的学习(二)
  • 好用的网页制作工具就是这6个,快点来看!
  • 一文讲通物联网嵌入式