热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信小程序怎么实现轮播图标题跑马灯

这篇“微信小程序怎么实现轮播图标题跑马灯”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借

这篇“微信小程序怎么实现轮播图标题跑马灯”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序怎么实现轮播图标题跑马灯”文章吧。

微信小程序做轮播图,轮播图下的标题如果不长不需要跑马灯效果,过长的无法显示全的则添加跑马灯效果


    
      
      
      
        
          {{item.title}}
        
      
    
.swiper{
  position: relative;
  height: 430rpx;
  padding: 0px;
  margin: 0px;
}
.swiper image{
  height: 430rpx;
  position: absolute;
  left:50%;
  top:50%;
  transform: translate(-50%,-50%);
}
.swiper-item-tit{
  position: absolute;
  bottom: 0rpx;
  left:0rpx;
  z-index: 2;
  height: 80rpx;
  line-height: 80rpx;
  color:#fff;
  width:100%;
  /* overflow: hidden; */
  /* text-overflow: ellipsis; */
  background-color: rgba(0,0,0,0.5);
}
.swiper-item-tit .swiper-tit-inner{
  text-align: center;
  white-space: nowrap;
}
data: {
    carouselImgArr: [{
        image:'../../image/1.png',title:'标题',
    },{
        image:'../../image/1.png',title:'标题标题标题标题标题标题标题标题标题',
    },{
        image:'../../image/1.png',title:'标题',
    } ],
    carouselTitleLength:[2,18,2],// 轮播图标题的文字长度
    carouselTitLeft:0,
    currImgIndex: 1,
    windowWidth: wx.getSystemInfoSync().windowWidth
  },
onSlideChange(e) {
    this.setData({
      currImgIndex: e.detail.current + 1,
      carouselTitLeft: 0
    });
    this.initMarqueen();
  },
  initMarqueen() {
    clearInterval(marqueenTimer);
    var self = this;
    var boxWidth,textWidth;
    var query = wx.createSelectorQuery();
    // query.select('.swiper-item-tit').fields({size:true},function(res){
    //   boxWidth = res.width;
    // }).exec();
    // query.select('.active').fields({size:true},function(res){
    //   textWidth = res.width;
    // }).exec();
    setTimeout(function(){
      let boxWidth = self.data.windowWidth;// 屏幕尺寸宽等于字体box宽,所以这里用屏幕宽替代了query获取的宽
      let scale = boxWidth / 375;// 以屏幕尺寸为375为标准(375下字体宽约为14),根据屏幕尺寸计算单个字体的宽度
    // 不知道为什么用query 获取的textWidth始终等于boxWidth的宽度,不得已只能使用文字长度乘以文字宽度来计算boxWidth。而
      let textWidth = self.data.carouselTitleLength[self.data.currImgIndex - 1] * (14*scale);
      console.log(scale,boxWidth,textWidth);
      if (textWidth - 3*scale > boxWidth) {// 减去3*scale防止textWidth只多出来一点点导致文字左右震荡
        let stayTime = 1000;
        let endStay = true;
        marqueenTimer = setInterval(function(){
          let currLeft = self.data.carouselTitLeft;
          if (stayTime !== 0) {
            stayTime = stayTime - 30;
            console.log('stay')
          } else if (currLeft > boxWidth - textWidth) {
            self.setData({
              carouselTitLeft: currLeft - 2
            });
          } else {
            if (endStay) {// 跑马灯结尾停留1s;
              endStay = false;
              stayTime = 1200;
              return;
            }
            self.setData({
              carouselTitLeft: 0
            });
            stayTime = 1200;// 回到跑马灯开头再停留1s;
            endStay = true;
          }
        },100)
      }
    },100);
  },

以上就是关于“微信小程序怎么实现轮播图标题跑马灯”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程笔记行业资讯频道。


推荐阅读
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 本文整理了常用的CSS属性及用法,包括背景属性、边框属性、尺寸属性、可伸缩框属性、字体属性和文本属性等,方便开发者查阅和使用。 ... [详细]
  • 项目需要实现弹幕,网上参考了各种方法,最后觉得transform+transition实现的效果在移动设备上性能最好,在iphone6和红米4上测试,看不到 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本博文基于《Amalgamationofproteinsequence,structureandtextualinformationforimprovingprote ... [详细]
  • 关于如何快速定义自己的数据集,可以参考我的前一篇文章PyTorch中快速加载自定义数据(入门)_晨曦473的博客-CSDN博客刚开始学习P ... [详细]
author-avatar
静越家家619
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有