Vue學習筆記:跑馬燈效果的實現

前言

最近在學習vue,看的某站上某馬的教程。也看官網的文檔,我學習一直兩者結合學習。很感謝某馬的教程,講的非常容易理解,真是家裏貧窮,不然肯定去給某馬點學費。不過,我一直對同學報班的同學宣傳某馬。由於以下代碼與源代碼差別不大,不知道該不該投自制,算了,還是投翻譯吧!如果對貴公司有影響,聯繫我必刪除。

代碼實現

<!--
	該網頁用於製作一個跑馬燈效果Demo
	//分析:
	//1.給{浪起來}按鈕,綁定一個點擊事件     v-on   @
	  2. 在按鈕的時間處理函數中,寫相關的業務邏輯代碼:
	  拿到msg字符串,然後調用字符串的substring方法來進行字符串的截取操作,
	  把第一個字符截取出來,放到最後一個位置即可;
	  3.爲了實現點擊一下按鈕,自動截取的功能,需要把2步驟中的代碼,放到一個定時器中去。
-->
<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title>Document</title>
		<!--1.導入Vue包-->
		<script src="js/vue.js"></script>
	</head>

	<body>
		<!--2.創建一個要空值的區域-->
		<div id="app">
			<input type="button" value="跑起來" @click="lang"/>
			<input type="button" value="低調" @click="stop">
			<h4> {{msg}}</h4>
		</div>
		
		<script>
			//注意:在VM實例中,如果想要獲取data上的數據,或者想要調用methods中的方法
			//必須通過this.數據屬性名  或者 this.方法名來進行訪問,這裏的this就表示我們new出來的VM實例對象
			var vm = new Vue({
				el:'#app',
				data:{
					msg: '猥瑣發育,別浪~~',
					intervalId:null     //在data上定義定時器Id
				},
				methods:{
					lang(){
					//	var _this=this
					//	console.log(this.msg)
				    if(this.intervalId !=null)return;
						 this.intervalId = setInterval(() => {
									//獲取到頭的第一個字符
						var start =this.msg.substring(0,1)
						//獲取到後面的所有字符
						var end =this.msg.substring(1)
						//重新拼接的到的新字符串,並賦值給this.msg
						this.msg =end + start
						},400)
				
						
						//注意:VM實例,會監聽自己身上data中所有數據的改變,只要數據一發生變化,就會自動把最新的數據,從data上同步到頁面中去
						//好處:程序員只需要關心數據,不需要考慮如何重新渲染DOM頁面
					}
				,
				stop(){  //停止定時器
					clearInterval(this.intervalId)
					//每當清除了定時器之後,需要重新把intervalId置爲null
					this.intervalId=null;
					
				}
				}
			})
			
			
		</script>
		
		
	</body>

</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章