一.什么是跑马灯效果

每隔一段时间,排在首位的字符会被后一个字符所代替,而首位字符会被移到队尾。

二.实验过程

1.首先创建控制区域与vue实例:

    <div id="app"></div><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script>var vm = new Vue({el: "#app",data: {message: 'hello,world!'}});</script>

2.然后再app控制区域添加message渲染内容:

<h4>{{message}}</h4>

3.在h4的上方创建跑马灯启停按钮:

<input type="button" value='开始跑马灯' @click='start()'>
<input type="button" value='停止跑马灯' @click='stop()'>

4.对开始跑马灯按钮添加点击事件,同时在事件处理函数中添加相关的业务逻辑代码:

①使用substring对字符串进行截取操作,把第一个字符截取出来拼接到字符串末尾。

start(){//获取字符串头的字符var first = this.message.substring(0,1);//获取后面的所有字符var end = this.message.substring(1);//重新拼接得到新的字符串并赋值给this.messagethis.message = end+first;
}

②为了实现点击一下按钮自动截取的功能需要将①中的代码放到定时器中。在添加定时器功能时需要注意data数据this指向的问题。解决方法1:可以在定时器外部写一个变量保存一份this;解决方法2:将setInerval中的函数写成箭头函数,将内部的this改造成外部this。

methods: {start() {this.intervalId = setInterval( () => {//获取字符串头的字符var first = this.message.substring(0, 1);//获取后面的所有字符var end = this.message.substring(1);//重新拼接得到新的字符串并赋值给this.messagethis.message = end + first;},400) }
}

注1:在methods中的函数如果想要拿到data上的数据,需要通过   this.数据属性名   来获取,或者使用   this.方法名   来进行访问; 这里this代表的就是当前new出的实例。

注2:实例会监听自己身上data中所有数据的改变,只要数据一 发生变化,就会自动把最新的数据,从data上同步到页面中去。【这样做的好处在于程序员只需要关心数据而不需要关心如何重新渲染DOM页面。】

5.对停止跑马灯按钮添加点击事件,同时在事件处理函数中添加相关的业务逻辑代码:

①在data上定义定时器Id。

intervalId:null;

②在methods中添加停止定时器函数

stop() {clearInterval(this.intervalId);
}

6.对开始按钮的点击次数进行限制

方法:在start函数中添加判断语句,判断intervalId是否为空,如果为空则执行定时器,点击停止按钮后将intervalI的值重新置为空。

//start函数添加判断语句
if(this.intervalId != null) return;//stop函数需添加的语句
this.intervalId = null;

三、完整代码

<body><div id="app"><input type="button" value='开始跑马灯' @click='start()'><input type="button" value='停止跑马灯' @click='stop()'><h4>{{message}}</h4></div><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script>var vm = new Vue({el: "#app",data: {message: 'hello,world!',intervalId: null},methods: {start() {if(this.intervalId != null) return;this.intervalId = setInterval(() => {//获取字符串头的字符var first = this.message.substring(0, 1);//获取后面的所有字符var end = this.message.substring(1);//重新拼接得到新的字符串并赋值给this.messagethis.message = end + first;}, 400)},stop() {clearInterval(this.intervalId);this.intervalId = null;}}});</script>
</body>

【前端框架学习】第一次实验 跑马灯效果的制作相关推荐

  1. 制作一个状态栏中跑马灯效果_snapseed制作“照片中的照片”画中画效果的方法...

    用摄影修图软件做出"我拿着我的照片给你看"的效果,用snapseed在手机上修图就可以实现,用"双重曝光"+"图层蒙版"的方式,非常容易做到 ...

  2. web展现mysql_web页面实现LED跑马灯效果(涉及web前端、原生JS、PHP、mysql)

    本帖最后由 yoin 于 2019-11-21 16:24 编辑 产品需求: LED跑马灯页面展示内容(班级电脑展示) setLED更改内容(老师电脑更改内容) LED页面及时更新内容设计思路: 最初 ...

  3. TextView的跑马灯效果(AS开发实战第二章学习笔记)

    TextView的跑马灯效果 跑马灯用到的属性与方法说明 singleLine 指定文本是否单行显示 ellipsize 指定文本超出范围后的省略方式 focusable 指定是否获得焦点,跑马灯效果 ...

  4. Python实现彩带飘落和“跑马灯”效果

    本文选自微信公众号:superdiao的果壳 朋友们,真的好久没有发文章了,感谢粉丝们一直以来的支持.最近笔者忙着找工作,中间也拿了几个offer,最终去了bat中的一个,算是比较满意的结果吧.今天, ...

  5. c语言小程序跑马灯,微信小程序实现文字跑马灯效果

    本文实例为大家分享了微信小程序实现文字跑马灯的具体代码,供大家参考,具体内容如下 wxml 1 显示完后再显示 Box"> 2 出现白边后即显示 Box"> {{tex ...

  6. js实现横向跑马灯效果

    首先我们需要一个html代码的框架如下: <div style="position: absolute; top: 0px; left: 168px; width: 100%; mar ...

  7. android:ellipsize实现跑马灯效果总结

    原文地址:http://www.cnblogs.com/Gaojiecai/archive/2013/06/18/3142783.html android:ellipsize用法如下: 在xml中 a ...

  8. html纵向的跑马灯效果,HTML+CSS入门 如何实现跑马灯/走马灯效果

    本篇教程介绍了HTML+CSS入门 如何实现跑马灯/走马灯效果,希望阅读本篇文章以后大家有所收获,帮助大家HTML+CSS入门. < 实现跑马灯的方法很多,其中最简单的是采用一句Html代码来实 ...

  9. 【Vue案例一】实现跑马灯效果

    在Vue学习笔记(一)中我们已经学过了 v-on 这个指令,可以用来实现事件的绑定,本文我们利用 v-on 来实现一个简单的跑马灯效果,就是如下这种效果: 第一步:导入Vue包 <script ...

最新文章

  1. Clojure世界:单元测试
  2. Matlab学习笔记——文本文件的读写
  3. P4391 [BOI2009]Radio Transmission 无线传输
  4. GDCM:DICOM文件转储ADAC文件的测试程序
  5. Android学习四、Android中的Adapter
  6. python学生管理系统2.0-python3.6+django2.0开发一套学员管理系统
  7. SAP License:ERP的价格管控
  8. 从小白到中级高级软件测试工程师成长路线!--(上篇)
  9. 使用yum update更新文件系统时不更新内核的方法
  10. (转)如何看待IT对于证券行业的价值
  11. openmodelica
  12. 地铁机房环境监控系统解决方案!
  13. Splunk Filed Alias 字段改名
  14. word会把字符串中的空格自动换成不换行空格(NBSP)
  15. 【English】十一、一般疑问句
  16. 2021年SIM卡交换攻击,美国损失近千万
  17. 初创公司股权结构应该怎么设计?举例三种模型
  18. 局域网匿名访问共享文件的设置方法?
  19. 一文读懂C++虚继承的内存模型
  20. 浏览器的缓存机制 优点 缺点 协商缓存和强缓存 浏览器缓存过程 如何判断强缓存是否过期

热门文章

  1. 语音信号处理第三章:
  2. 8.1 幽灵(no.21-no.30)
  3. win7系统老是弹窗怎么解决_win7系统右下角经常弹广告怎么办|win7系统右下角弹出广告的屏蔽方法...
  4. 手机端抓包http/https-Fiddler的设置
  5. 高知的程序员必须甩脱穷人思维
  6. 55.【Java 线程】
  7. cad标注桩号lisp_CAD插件标桩号的AutoLISP程序语言求解释并译成中文,谢谢
  8. 有趣的新闻(1):你见过贝加尔湖冰冻气泡吗?
  9. 【RSA-Tool 2 by tE】的使用
  10. 关于手机查看data/data文件夹的解决办法