微信小程序-通知滚动小提示

朴灿烈づ我的快乐病毒、 2022-05-10 00:46 331阅读 0赞

代码地址如下:
http://www.demodashi.com/demo/14044.html

一、前期准备工作

软件环境:微信开发者工具
官方下载地址:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html

1、基本需求。
  • 我们在学习微信小程序或者做项目时,应该会遇到滚动通知效果情况,那么这个滚动通知功能我们应该怎么编写呢?
  • 今天我们说下微信小程序滚动通知效果的实现,今天我们就分享这样的小教程。希望对大家有所帮助
2、案例目录结构

fcqyj2X6LvOu0ZID937.png

二、程序实现具体步骤

1.滚动通知1的index.wxml代码
  1. <view> 显示完后再显示</view>
  2. <view class="example">
  3. <view class="marquee_box">
  4. <view class="marquee_text" style="{
  5. {orientation}}:{
  6. {marqueeDistance}}px;font-size: {
  7. {size}}px;">
  8. {
  9. {text}}
  10. </view>
  11. </view>
  12. </view>
  13. <view> 出现白边后即显示</view>
  14. <view class="example">
  15. <view class="marquee_box">
  16. <view class="marquee_text" style="{
  17. {orientation}}:{
  18. {marqueeDistance2}}px;font-size: {
  19. {size}}px;">
  20. <text>{
  21. {text}}</text>
  22. <text wx:if="{
  23. {marquee2copy_status}}" style="margin-left:{
  24. {marquee2_margin}}px;">{
  25. {text}}</text>
  26. </view>
  27. </view>
  28. </view>
2.滚动通知1的index.wxss代码
  1. .example {
  2. display: block;
  3. width: 100%;
  4. height: 100rpx;
  5. }
  6. .marquee_box {
  7. width: 100%;
  8. position: relative;
  9. }
  10. .marquee_text {
  11. white-space: nowrap;
  12. position: absolute;
  13. top: 0;
  14. }
3.滚动通知1的index.js逻辑代码

a.滚动通知1部分的功能实现

  1. // pages/home/marquee/marquee.js
  2. Page({
  3. data: {
  4. //略略略......
  5. },
  6. onShow: function () {
  7. // 页面显示
  8. var vm = this;
  9. var length = vm.data.text.length * vm.data.size;//文字长度
  10. var windowWidth = wx.getSystemInfoSync().windowWidth;// 屏幕宽度
  11. vm.setData({
  12. length: length,
  13. windowWidth: windowWidth,
  14. marquee2_margin: length < windowWidth ? windowWidth - length : vm.data.marquee2_margin//当文字长度小于屏幕长度时,需要增加补白
  15. });
  16. vm.run1();// 水平一行字滚动完了再按照原来的方向滚动
  17. vm.run2();// 第一个字消失后立即从右边出现
  18. },
  19. run1: function () {
  20. var vm = this;
  21. var interval = setInterval(function () {
  22. if (-vm.data.marqueeDistance < vm.data.length) {
  23. vm.setData({
  24. marqueeDistance: vm.data.marqueeDistance - vm.data.marqueePace,
  25. });
  26. } else {
  27. clearInterval(interval);
  28. vm.setData({
  29. marqueeDistance: vm.data.windowWidth
  30. });
  31. vm.run1();
  32. }
  33. }, vm.data.interval);
  34. },
  35. run2: function () {
  36. var vm = this;
  37. var interval = setInterval(function () {
  38. if (-vm.data.marqueeDistance2 < vm.data.length) {
  39. // 如果文字滚动到出现marquee2_margin=30px的白边,就接着显示
  40. vm.setData({
  41. marqueeDistance2: vm.data.marqueeDistance2 - vm.data.marqueePace,
  42. marquee2copy_status: vm.data.length + vm.data.marqueeDistance2 <= vm.data.windowWidth + vm.data.marquee2_margin,
  43. });
  44. } else {
  45. if (-vm.data.marqueeDistance2 >= vm.data.marquee2_margin) { // 当第二条文字滚动到最左边时
  46. vm.setData({
  47. marqueeDistance2: vm.data.marquee2_margin // 直接重新滚动
  48. });
  49. clearInterval(interval);
  50. vm.run2();
  51. } else {
  52. clearInterval(interval);
  53. vm.setData({
  54. marqueeDistance2: -vm.data.windowWidth
  55. });
  56. vm.run2();
  57. }
  58. }
  59. }, vm.data.interval);
  60. }
  61. })

三、案例运行效果图

1vAsdAEDgxwGuWp61L4.gif

RVFA0e4l3RTtynL2bE0.gif

四、总结与备注

暂无微信小程序-通知滚动小提示

代码地址如下:
http://www.demodashi.com/demo/14044.html

注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

发表评论

表情:
评论列表 (有 0 条评论,331人围观)

还没有评论,来说两句吧...

相关阅读