公告栏的展示方式一般是有两种:

  1. 垂直方向滚动式
  2. 水平方向滚动式

【垂直式公告栏】
原理:运用了小程序自带的swiper来实现
适用范围:信息量短或可跳转详情的多条公告消息。

// 数据:noticeList: [{content: '公告1',}, {content: '公告2',}, {content: '公告3',}, {content: '公告4~~~~~~~~~~~~~~~~~~~',}],// 布局:<view class="verticality_box"><swiper class="notice_verticality" autoplay="true" vertical="true" circular="true" interval="2000" display-multiple-items='1'><block wx:for="{{noticeList}}"><swiper-item><view class="noticecont">{{item.content}}</view></swiper-item></block></swiper></view>// 样式:
.verticality_box {width: 100%;margin: 10px auto;
}.notice_verticality {width: 100%;height: 50rpx;line-height: 50rpx;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;
}.noticecont {width: calc(100vw - 20px);line-height: 50rpx;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;
}

【水平式公告栏】
原理:跑马灯
适用范围:单条数据为最佳

数据:noticeList: [{content: '公告1',}, {content: '公告2',}, {content: '公告3',}, {content: '公告4~~~~~~~~~~~~~~~~~~~',}],// 水平滚动数据scrollData: {speed: 5, //滚动速度,每秒5个字font_size: "16", //字体大小(px)text_color: "#de8c17", //字体颜色back_color: "#fffbe8", //背景色}布局:
<view class="horizontal_box"><view class='marquee_text' style='--marqueeWidth--:{{-scrollData.width}}px;--speed--:{{scrollData.time}}s;width:{{scrollData.width_mal}}px;'><block wx:for="{{noticeList}}" wx:key='index'><view class="notice_cont" style='color:{{scrollData.text_color}};'>{{item.content}}</view></block></view></view>样式:
@keyframes around {from {margin-left: 100%;}to {margin-left: var(--marqueeWidth--);}
}.horizontal_box {position: relative;width: 100%;margin: 10px auto;height: 50rpx;line-height: 50rpx;overflow: hidden;
}.marquee_text {width: 100%;display: flex;white-space: nowrap;animation-name: around;animation-duration: var(--speed--);animation-iteration-count: infinite;animation-timing-function: linear;line-height: 50rpx;
}.marquee_tit {height: 50rpx;line-height: 50rpx;position: absolute;padding-left: 22rpx;
}
.notice_cont{margin-right: 20px;
}//  方法(重点):// 水平方向 公告栏noticeEvent() {let noticeList = this.data.noticeList,scrollData = this.data.scrollData,this_width = 0,spacing = 0,speed = (this.data.scrollData.speed * this.data.scrollData.font_size); //m每秒行走的距离for (let i in noticeList) {if (noticeList[i].content) {this_width += noticeList[i].content.length * this.data.scrollData.font_size + 20;} else {noticeList[i].content = ''}}let total_length = this_width;//总长scrollData.time = total_length / (speed / 2.5 ); /**滚动时间*/scrollData.width = total_length - wx.getSystemInfoSync().windowWidth;// 如果公告内容少,则不滚动if(total_length<= wx.getSystemInfoSync().windowWidth){scrollData.time = 0}this.setData({scrollData: scrollData,noticeList: noticeList})},

【小程序】滚动的公告栏相关推荐

  1. 小程序scroll-view,滚动到最低_小程序滚动到底部

    小程序scroll-view,滚动到最低_小程序滚动到底部 小程序滚动条,滚到最底部解决方案1 小程序滚动到底部使用Scorll-view实现方案: scrill-view:组件要固定高度. scro ...

  2. 小程序滚动切换页码组件

    以下是基于小程序wux框架中refresh组件拓展的小程序滚动切换页码组件. 用法 <page-list id="wux-refresher" elid="bidd ...

  3. 微信小程序滚动播放内容

    目录 微信小程序创建项目配置底部导航栏 微信小程序滚动播放内容 微信小程序功能中心模块开发 微信小程序个人中心页面开发 微信小程序获取电话号码 微信小程序显示列表数据 微信小程序显示分页列表 微信小程 ...

  4. 1、使用colorui制作小程序滚动广告栏

    使用colorui制作小程序滚动广告栏 我们可以使用colorui组件开发小程序,能够很容易的写出广告栏. <template><view><view class=&qu ...

  5. 用wepy写的一个关于小程序通知栏(公告栏)上下滚动效果实现

    说明 页面需要在顶部实现一个通知栏上下滚动的效果,对一些比较动态的信息做一个展示,一个比较实用的一个小效果. 其主要核心思路是利用了动画的原理,实现效果的平滑实现. 代码实现 wxml部分 <v ...

  6. 微信小程序 滚动选项卡 swiper高度自适应

    最近做小程序的时候遇到了swiper高度的问题,swiper里面的内容可以根据数据来自适应高度.那就给scroll-view计算一下高度 wxml <view class="conta ...

  7. 微信小程序-滚动消息通知

    写在前面: 这次我主要想总结一下微信小程序实现上下滚动消息提醒,主要是利用swiper组件来实现,swiper组件在小程序中是滑块视图容器. 我们通过vertical属性(默认为false,实现默认左 ...

  8. 记录一次小程序滚动穿透解决方案

    场景描述: 自定义的小程序弹窗中存在列表滚动,手机操作时发现有滚动穿透现象 个人觉得一个比较好用的方法====>: 底层页面使用scroll-view组件包裹,设置垂直滚动,高度设置为屏幕高度, ...

  9. 小程序滚动事件相关总结

    1.有时候我们需要每次进入页面都是回到页面的顶部的这时候可以用 : wx.pageScrollTo({scrollTop: 0,duration: 300 }) 这其实跟其他技术路由跳转设置每次都从顶 ...

  10. 微信小程序 滚动列表(无限滚动)

    效果图1.0 实现方式是利用小程序原声组件swiper,方向设置为纵向 :vertical='true'设置同时显示的滑块数量:display-multiple-items='4'设置自动轮播:aut ...

最新文章

  1. SQL SERVER全面优化-------索引有多重要?
  2. 设计模式之职责链模式
  3. 『重构--改善既有代码的设计』读书笔记----Split Temporary Variable
  4. php email,两种PHP邮件发送的方式
  5. python的变量名有哪些_Python 趣闻:如何获得变量的名字?
  6. 【报告分享】2020中国248家独角兽报告.pdf(附下载链接)
  7. Java文件上传接口
  8. c# excel 数据排序_在Excel中对数据进行安全排序
  9. 全球与中国铝合金窗型材市场规模预测与产销前景调研报告2022版
  10. Web应用程序项目某某某已配置为使用IIS。无法访问IIS元数据库。您没有足够的特权访问计算机上的IIS网站
  11. linux单网卡多拨Adsl,ADSL多拨
  12. 计算机专业技术个人小结,计算机专业技术个人小结.doc
  13. 百度地图详解使用,显示自己的当前位置BaiduMap
  14. AcWing 1022 宠物小精灵之收服
  15. 第二证券|鲍威尔发声:释放重磅信号,美股大涨!中概股狂涨
  16. ModuleNotFoundError: No module named ‘lap‘
  17. (附源码)ssm产品裂变管理系统 毕业设计 100953
  18. mysql中查询名字第二位为_(12) 查询出名字倒数第二位为S的员工信息。_学小易找答案...
  19. 给定一个数组int[] array={1,2,3,4,5,6,7,8,9,10}.将其前5个元素与后5 个元素对换,即第1 个元素与第10个元素互换,第2个与第9个元素互换...第5 个与第6 个元素
  20. 全栈开发工程师面试题一

热门文章

  1. 玉米社:抖音账号被限流了怎么办?一步步教你解除限制
  2. Word为什么会报告磁盘空间已满
  3. unity星空银河绚烂天空盒宇宙场景
  4. 钉钉e应用点击按钮触发两次点击事件的解决办法
  5. 计算机机房标准pdf,计算机专业机房建设标准.pdf
  6. 养生:拔火罐有什么好处?
  7. 搭建社群积分系统,使用这个工具足以
  8. 上市公司绿色专利申请数据(绿色创新数据1)(1990-2021)
  9. Java语言写点餐系统
  10. 医疗数据交易平台-区块链解决方案