精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

HarmonyOS自定義控件之JS進度條

開發(fā) 前端 OpenHarmony
在我們?nèi)粘i_發(fā)的里面,很多場景經(jīng)常會用到進度條,而系統(tǒng)提供的進度條樣式又無法滿足我們的使用,這時候我們就需要自定義一個進度條。

[[422087]]

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

前言

在我們?nèi)粘i_發(fā)的里面,很多場景經(jīng)常會用到進度條,而系統(tǒng)提供的進度條樣式又無法滿足我們的使用,這時候我們就需要自定義一個進度條,自定義JS進度條主要涉及以下知識點:

  • 如何自定義組件及引用
  • 如何自定義繪制圖形(draw)
  • 如何創(chuàng)建并執(zhí)行動畫(animation)
  • 如何設(shè)置自定義組件的參數(shù)(setter)
  • 如何監(jiān)聽自定義組件的參數(shù)(getter)

效果演示

代碼實現(xiàn)

如何自定義組件及引用

1.Js自定義組件,只需要新創(chuàng)建一個包,直接在里面編寫界面,樣式,邏輯代碼即可。如果需要使用該組件,將其完整拷貝到自己的項目結(jié)構(gòu)下進行引用即可。我們自定義一個Progress進度條控件,項目結(jié)構(gòu)如下圖:

【中軟國際】HarmonyOS 自定義控件之JS進度條-鴻蒙HarmonyOS技術(shù)社區(qū)

2.使用的時候,我們需要給自定義組件進行標簽聲明,然后就可以使用該標簽了:

<index.hml>

  1. // src表示我們引用的自定義組件的文件,name表示我們給該自定義組件聲明一個標簽名 
  2. <element src="../progress/progress.hml" name="progress-bar"></element> 
  3. <div class="container"
  4.     // 聲明之后,就可以使用這個自定義的標簽了 
  5.     <progress-bar></progress-bar> 
  6.  
  7.     ... 
  8. </div> 

如何自定義繪制圖形

說到自定義繪制,自然離不開canvas,首先我們給自定義組件增加一個<canvas>標簽,并在JS文件中描述繪制:

<progress.hml>

  1. <stack class="frame-layout"
  2.     <canvas id="progress-bar" class="progress-bar" ontouchmove="onTouchEvent"></canvas> 
  3.     <text if="{{ display }}" class="progress-bar">{{ progressText }}</text> 
  4. </stack> 

在JS中定義一個draw方法,并且傳入一個CanvasRenderingContext2D參數(shù),這個參數(shù)我們可以理解為canvas + paint,所有繪制都是通過它進行調(diào)用:

<progress.js>

  1. draw(ctx) { 
  2.      this.display = true 
  3.      ctx.lineWidth = this.circleWidth 
  4.      ctx.lineCap = 'round' 
  5.      // ctx可以理解為canvas + paint 
  6.      ctx.clearRect(0, 0, this.width, this.height) // 會閃屏,系統(tǒng)渲染問題 
  7.      ctx.save() // save1 
  8.      ctx.translate(this.width / 2, this.height / 2) 
  9.      // draw background 
  10.      ctx.beginPath() 
  11.      ctx.strokeStyle = this.backgroundColor 
  12.      ctx.arc(0, 0, 100, 0, 2 * Math.PI) // r = 100, 參數(shù)是弧度,角度 = 弧度 / PI * 180 
  13.      ctx.stroke() // 繪制 
  14.      ctx.closePath() 
  15.      // draw progress 
  16.      ctx.save() 
  17.      ctx.rotate(-90 / 180 * Math.PI) 
  18.      ctx.beginPath() 
  19.      ctx.strokeStyle = this.progressColor 
  20.      ctx.arc(0, 0, 100, 0, this.angle / 180 * Math.PI) // r = 100, 參數(shù)是弧度,角度 = 弧度 / PI * 180 
  21.      ctx.stroke() // 繪制 
  22.      ctx.closePath() 
  23.      ctx.restore() 
  24.      ctx.restore() // save1 
  25.      this.notifyChanged() 
  26.  } 

這部分邏輯并不復雜,都有注釋,就是繪制一個圓環(huán)背景,然后根據(jù)進度參數(shù)在圓環(huán)上繪制一個圓弧進度,相信做過自定義控件的同學都能夠非常熟悉。

如何創(chuàng)建并執(zhí)行動畫

1.首先我們需要在init的時候創(chuàng)建一個動畫對象,并且設(shè)置好初始的動畫參數(shù):

<progress.js>

  1. onInit() { 
  2.       // 動畫參數(shù)(具體參數(shù)類型和參數(shù)說明參考官方文檔) 
  3.       var options = { 
  4.           duration: this.animDuration, // 動畫時長 
  5.           direction: 'normal', // 播放模式 
  6.           easing: 'linear', // 差值器 
  7.           fill: 'forwards', // 動畫結(jié)束后狀態(tài) 
  8.           iterations: 1, // 執(zhí)行次數(shù) 
  9.           begin: 0, // 起始值 
  10.           end: 360.0 // 終止值 
  11.       }; 
  12.       var _this = this 
  13.       this.animator = Animator.createAnimator(options) 
  14.       this.animator.onframe = function (value) { 
  15.           // 動畫每一幀回調(diào),類似我們熟悉的onAnimateUpdate回調(diào) 
  16.           _this.angle = value 
  17.           // 刷新繪制 
  18.           _this.draw(_this.ctx) 
  19.       } 
  20.       ... 
  21.   },  

2.接著我們需要在特定的時候開啟動畫,例如我們在接收到外部傳進來的進度參數(shù)后,我們需要更新動畫的起始值和終止值,并且開始執(zhí)行動畫:

<progress.js>

  1. onProgressChanged(oldV, newV) {  
  2.      console.log("onProgressChanged from:" + oldV + " to: " + newV) 
  3.      this.initWidget() 
  4.      // 進度值范圍限定為[0, 1] 
  5.      if (oldV >= 1) { 
  6.          oldV = 1 
  7.      } 
  8.      if (newV >= 1) { 
  9.          newV = 1 
  10.      } 
  11.      // 更新動畫的起始和終止參數(shù) 
  12.      var options = { 
  13.          duration: this.animDuration, 
  14.          direction: 'alternate-reverse'
  15.          easing: 'linear'
  16.          fill: 'forwards'
  17.          iterations: 1, 
  18.          begin: oldV * 360, 
  19.          end: newV * 360 
  20.      }; 
  21.      this.animator.update(options) 
  22.      // 開始執(zhí)行動畫 
  23.      this.animator.play() 
  24.  }, 

如何設(shè)置自定義組件的參數(shù)

1.我們自定義組件,并不能像之前一樣簡單的暴露個公開方法給外部調(diào)用。由于其數(shù)據(jù)驅(qū)動的設(shè)計,我們可以定義一些自定義屬性參數(shù),當外部修改參數(shù)時我們就可以接收到信息進行主動動作(setter):

<progress.js>

  1. props: [ 
  2.       'progress', // 進度 
  3.       'backgroundColor', // 圓環(huán)背景顏色 
  4.       'progressColor' // 進度前景顏色 
  5.   ], 
  6.   ... 

2.監(jiān)聽這些對外暴露的屬性值變化(listener):

<progress.js>

  1. onInit() { 
  2.      ... 
  3.      // 監(jiān)聽自定義屬性值變化 
  4.      this.$watch('progress''onProgressChanged'
  5.      this.$watch('backgroundColor''onBackgroundChanged'
  6.      this.$watch('progressColor''onForegroundChanged'
  7.      ... 
  8.  },    
  9.  // backgroundColor變化時會觸發(fā)該回調(diào) 
  10.  onBackgroundChanged(oldV, newV) { 
  11.      this.backgroundColor = newV 
  12.  }, 
  13.  // progressColor變化時會觸發(fā)該回調(diào) 
  14.  onForegroundChanged(oldV, newV) { 
  15.      this.progressColor = newV 
  16.  }, 
  17.  // progress變化時會觸發(fā)該回調(diào) 
  18.  onProgressChanged(oldV, newV) { 
  19.      console.log("onProgressChanged from:" + oldV + " to: " + newV) 
  20.      this.initWidget() 
  21.      if (oldV >= 1) { 
  22.          oldV = 1 
  23.      } 
  24.      if (newV >= 1) { 
  25.          newV = 1 
  26.      } 
  27.      var options = { 
  28.          duration: this.animDuration, 
  29.          direction: 'alternate-reverse'
  30.          easing: 'linear'
  31.          fill: 'forwards'
  32.          iterations: 1, 
  33.          begin: oldV * 360, 
  34.          end: newV * 360 
  35.      }; 
  36.      this.animator.update(options) 
  37.      this.animator.play() 
  38.  },  

3..外部設(shè)置參數(shù),當外部改變這些參數(shù)時,我們自定義組件內(nèi)部的回調(diào)方法就會觸發(fā),并執(zhí)行刷新邏輯:

<index.hml>

  1. <element src="../progress/progress.hml" name="progress-bar"></element> 
  2. <div class="container"
  3.     <progress-bar background-color="#c2f135" 
  4.                   progress-color="#6bfc33" 
  5.                   progress="{{ progress }}"
  6.     </progress-bar> 
  7.     ... 
  8. </div> 

如何監(jiān)聽自定義組件的參數(shù)

上面我們說到了外部如何改變自定義組件內(nèi)部的屬性,本質(zhì)上就是一個典型觀察者模式。同理,外部調(diào)用者需要監(jiān)聽我們自定義組件的參數(shù)變化,也是通過這種方式:

1.首先我們在自定義組件中需要定義一個被觀察者對象(key),并且在該對象值變化時對外發(fā)送消息:

<progress.js>

  1. notifyChanged() { 
  2.        // currentAngle, currentProgress就是被觀察者對象,key-value結(jié)構(gòu),value就是我們對外發(fā)送的值 
  3.        // 注意:駝峰命名 
  4.        this.$emit("currentAngle", this.angle) 
  5.        this.$emit("currentProgress", Math.ceil(this.angle / 3.6) / 100) 
  6.        this.progressText = Math.ceil(this.angle / 3.6) + "%" 
  7.    }, 

2.外部使用者需要注冊監(jiān)聽回調(diào)方法,對被觀察者對象(key)進行監(jiān)聽:

 <index.hml>

  1. <element src="../progress/progress.hml" name="progress-bar"></element> 
  2. <div class="container"
  3.     // 通過@current-angle和@current-progress進行該參數(shù)的監(jiān)聽,注意參數(shù)前加"@",并且參數(shù)根據(jù)駝峰命名方式拆分單詞,每個詞語用"-"隔開 
  4.     <progress-bar background-color="#c2f135" 
  5.                   progress-color="#6bfc33" 
  6.                   progress="{{ progress }}" 
  7.                   @current-angle="onAngleChanged" 
  8.                   @current-progress="onProgressChanged"
  9.     </progress-bar> 
  10.     ...  
  11. </div>

<index.js>

  1. // 當自定義組件內(nèi)部的 currentAngle, currentProgress變化時,會觸發(fā)下面的回調(diào)方法通知外部使用者 
  2.    onAngleChanged(angle) { 
  3.        console.log("onAngleChanged: " + angle.detail) 
  4.    }, 
  5.    onProgressChanged(progress) { 
  6.        console.log("onProgressChanged: " + progress.detail) 
  7.    } 

其他關(guān)鍵點

1.<canvas>標簽的繪制內(nèi)容默認是不顯示的,我們可以在初始化的時候監(jiān)聽首幀回調(diào),主動進行刷新一次:

<progress.js>

  1. onInit() { 
  2.     ... 
  3.     // 監(jiān)聽首幀,觸發(fā)首次繪制,類似attachToWindow的觸發(fā)時機 
  4.     requestAnimationFrame(function () { 
  5.         _this.initWidget() 
  6.         _this.draw(_this.ctx) 
  7.     }) 
  8. }, 

2.自定義組件如何獲取寬高信息,在API6+系統(tǒng)已經(jīng)提供相關(guān)的方法可以進行獲取,類似onSizeChanged中讀取寬高信息:

<progress.js>

  1. initWidget() { 
  2.      console.log("init widget"
  3.      if (this.ctx === null) { 
  4.          // 獲取標簽元素 
  5.          let widget = this.$element('progress-bar'); 
  6.          this.ctx = widget.getContext('2d', { 
  7.              antialias: true 
  8.          }) 
  9.          // 獲取寬高,并計算出繪制圓環(huán)的寬高,中心點,半徑信息 
  10.          this.width = widget.getBoundingClientRect().width 
  11.          this.height = widget.getBoundingClientRect().height 
  12.          this.centerX = widget.getBoundingClientRect().left + this.width / 2 
  13.          this.centerY = widget.getBoundingClientRect().top + this.height / 2 
  14.          console.log("canvas size = " + this.width + ", " + this.height) 
  15.          console.log("canvas center = " + this.centerX + ", " + this.centerY) 
  16.      } 
  17.  }, 

3.canvas畫布和我們通常理解的是不同的,它是存在繪制緩存的,所以每一幀刷新時,我們需要在繪制前先清空之前的繪制內(nèi)容。目前鴻蒙清空畫布時會概率出現(xiàn)閃屏問題。

以上就是實現(xiàn)一個自定義JS進度條的核心代碼了,源代碼:JsProgress

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2022-09-09 14:47:50

CircleArkUI

2021-12-30 16:10:52

鴻蒙HarmonyOS應用

2017-03-14 15:09:18

AndroidView圓形進度條

2021-12-07 18:23:50

自定義進度條分段式

2009-12-25 17:58:12

WPF進度條

2015-08-03 11:39:20

擬物化進度條

2021-08-16 14:45:38

鴻蒙HarmonyOS應用

2021-08-25 10:14:51

鴻蒙HarmonyOS應用

2015-07-31 11:19:43

數(shù)字進度條源碼

2015-02-11 17:49:35

Android源碼自定義控件

2021-11-01 10:21:36

鴻蒙HarmonyOS應用

2022-02-17 14:51:39

HarmonyOSJSPAI開發(fā)canvas畫布

2021-09-02 10:00:42

鴻蒙HarmonyOS應用

2021-08-11 14:29:20

鴻蒙HarmonyOS應用

2022-05-20 14:34:20

list組件鴻蒙操作系統(tǒng)

2022-04-11 11:07:37

HarmonyUI小型系統(tǒng)textarea

2009-06-08 20:13:36

Eclipse自定義控

2009-08-06 09:18:01

ASP.NET自定義控ASP.NET控件開發(fā)

2013-04-19 10:14:24

2009-07-31 10:23:09

ASP.NET源碼DateTimePic
點贊
收藏

51CTO技術(shù)棧公眾號

在线亚洲国产精品网站| www中文字幕在线观看| 重囗味另类老妇506070| 欧美色播在线播放| 97夜夜澡人人双人人人喊| 亚洲AV无码国产成人久久| 91cn在线观看| 日本 国产 欧美色综合| 精品在线小视频| 久艹在线免费观看| 97人妻精品一区二区三区软件| 色天下一区二区三区| 一区二区三区中文字幕精品精品 | 欧美日韩一区中文字幕| 精品日本一区二区| 国产亚洲成人av| 日韩成人视屏| 亚洲日韩欧美一区二区在线| 国产精品一区二区性色av| 国产精品1000部啪视频| 精品众筹模特私拍视频| 国产乱码精品一区二区三区五月婷| 中国china体内裑精亚洲片| av黄色在线网站| 婷婷伊人综合中文字幕| 亚洲人体大胆视频| 精品国产乱码久久久久久免费| 女同性恋一区二区| 亚洲av无码乱码国产麻豆| 欧美成人嫩草网站| 欧美大片在线观看一区| 久久www视频| 亚洲av无码专区在线| 欧美日韩少妇| 亚洲电影免费观看| 日韩少妇内射免费播放18禁裸乳| 色综合成人av| 日韩精品欧美精品| 最近2019年日本中文免费字幕| av网站在线不卡| 黄网页免费在线观看| 国产乱码精品一区二区三区忘忧草| 欧美丰满少妇xxxxx| 香蕉视频免费网站| 在线观看爽视频| 国产午夜精品一区二区| 国产精品亚洲激情| 欧美做爰爽爽爽爽爽爽| 51精品国产| 精品久久香蕉国产线看观看亚洲| 久久精品中文字幕一区二区三区 | 草莓福利社区在线| 国产成人精品免费网站| 91av视频在线免费观看| 日本一道本视频| 久久久久久爱| 色综合视频在线观看| 亚洲成人自拍| 成人毛片在线免费观看| 国产精品亚洲综合色区韩国| 最近2019中文字幕mv免费看| 日本一区二区三区在线免费观看| 韩国成人二区| 国产精品理伦片| 成人欧美一区二区| 一级特黄免费视频| 欧美激情视频一区二区三区免费| 日韩精品免费在线视频| 日韩av片专区| 亚洲妇女成熟| 亚洲精品老司机| 欧美日韩在线播放一区二区| 99国产在线播放| 中文在线不卡| 欧美精品性视频| 少妇久久久久久久久久| 日本少妇精品亚洲第一区| 日韩欧美在线看| 欧美狂野激情性xxxx在线观| 国产小视频免费在线网址| 粉嫩嫩av羞羞动漫久久久| 国产精品视频26uuu| 日韩三级免费看| 自拍欧美日韩| 日韩网站免费观看高清| 久久久精品人妻无码专区| 精品国模一区二区三区欧美 | 久久综合色之久久综合| 91人人爽人人爽人人精88v| 中文字幕视频网| 国产一区视频在线观看免费| 精品国内亚洲在观看18黄| 日本一区二区三区网站| ccyy激情综合| 日韩一二在线观看| 久久婷五月综合| 日本成人三级电影| 亚洲成人自拍偷拍| 异国色恋浪漫潭| 91青青在线视频| 国产亚洲一区二区在线观看| 国产综合色一区二区三区| а√中文在线资源库| 久久成人av少妇免费| 国产精品久久久久久久av大片| 日本一级片免费看| 亚洲精品1区2区| 欧美激情在线观看视频| 九九精品在线观看视频 | 老子影院午夜伦不卡大全| av在线免费网址| 亚洲女性喷水在线观看一区| 一级黄色录像免费看| 免费av不卡| 亚洲欧美日本韩国| 女人床在线观看| 蜜乳av一区| 亚洲另类中文字| 国产精品视频二| 欧美卡一卡二| 亚洲在线中文字幕| 我的公把我弄高潮了视频| 2021中文字幕在线| 午夜精彩视频在线观看不卡| 国产精品自拍片| 乡村艳史在线观看| 欧美在线观看视频在线| 五月婷婷六月合| 粉嫩一区二区三区在线观看| 日韩欧美成人一区| 毛茸茸free性熟hd| 日韩伦理一区二区三区| 亚洲人成电影网站色| 国产成人免费观看网站| 亚洲精品二区三区| 欧美激情久久久| 欧美三级一区二区三区| 日韩影院精彩在线| 成人国产精品一区二区| 精品美女www爽爽爽视频| caoporn国产精品| 欧美另类一区| 快射av在线播放一区| 一区二区三区成人| 国产精品秘入口18禁麻豆免会员| 亚洲天堂资源| 69精品人人人人| 国产人成视频在线观看| 少妇精品久久久| 久久在线精品视频| 欧美一级特黄视频| 九色综合狠狠综合久久| 国产日本一区二区三区| 高h视频在线| 亚洲一级二级三级在线免费观看| 欧美激情国产精品日韩| 成人国产精品久久| 日韩电视剧免费观看网站| 四虎影视一区二区| 伊人蜜桃色噜噜激情综合| 国产精品久久久久久久久久东京| 国产精品无码白浆高潮| av色综合久久天堂av综合| 日韩一区不卡| 午夜羞羞小视频在线观看| 欧美午夜xxx| 超碰中文字幕在线观看| 一本色道久久综合亚洲精品酒店 | 爱情岛亚洲播放路线| 欧美在线观看一区| 粉嫩av懂色av蜜臀av分享| 日韩欧美网址| 欧美中文字幕视频| 国产手机精品视频| 国产日韩欧美精品综合| 国内少妇毛片视频| 97久久中文字幕| 亚洲欧美日韩国产中文专区| 强乱中文字幕av一区乱码| 天堂av在线一区| 国产视频一区二区三区四区| 浪潮av一区| 欧美系列日韩一区| 在线免费观看a级片| 欧美日韩国产欧| 成人性生交大片免费看视频直播 | 99热在线这里只有精品| 一区二区亚洲视频| www.欧美精品| 亚洲精品91天天久久人人| 成人免费视频一区| 国产精品一二三在线观看| 91在线亚洲| 亚洲少妇中文在线| 亚洲国产成人精品激情在线| 国产精品一区二区久激情瑜伽| 亚洲精品二区| 久久夜夜操妹子| 国产视频精品久久久| 日本三级片在线观看| 国产盗摄视频一区二区三区| 丰满女人性猛交| 国产精品白丝久久av网站| 中文字幕v亚洲ⅴv天堂| 成年人视频免费| 久久久精品国产免大香伊| 看av免费毛片手机播放 | 欧洲精品久久| 伊人成综合网站| 国产视频自拍一区| 亚洲午夜18毛片在线看| 91欧美一区二区| 成人小视频在线看| 中文精品一区二区| 日韩av毛片网| 国产高清免费在线播放| 欧美综合天天夜夜久久| 久久久久无码精品国产sm果冻 | 成人亚洲一区二区| 国产精品一区二区三| 日本福利在线| 91精品国产福利| 国产这里有精品| 国产成人在线看| 日韩日韩日韩日韩日韩| 三级精品视频| 国产精品看片资源| 秋霞影院午夜丰满少妇在线视频| 欧美高清性hdvideosex| 国产中文av在线| 国产91精品一区二区麻豆网站| 国产人妻777人伦精品hd| 欧洲亚洲视频| 国产精品aaaa| 国产成人高清精品| 欧美亚洲国产怡红院影院| 性生交大片免费全黄| 国产精品自拍三区| 久草热视频在线观看| 欧美熟乱15p| 亚洲最大福利视频网| www成人免费观看| 国产亚洲一区二区在线| 国产毛片毛片毛片毛片| 五月激情综合网| 中文字幕欧美激情极品| 国产麻豆精品久久一二三| 免费观看国产精品视频| 欧美日韩中文字幕一区二区三区| 亚洲一区二区三区成人在线视频精品 | 高清在线观看日韩| 美女av免费在线观看| 日韩激情图片| 国产传媒一区| 国产欧美在线观看免费| 欧美黄色片在线观看| 狠狠色伊人亚洲综合网站l| 91精品中文字幕一区二区三区| 日韩av免费网址| 国产精品久久久久四虎| 中文在线观看免费视频| 美女视频黄频大全不卡视频在线播放| 亚洲熟妇无码av在线播放| 黑丝美女一区二区| 高清日韩一区| 国产亚洲人成a在线v网站 | 色狠狠久久av五月综合| 香蕉大人久久国产成人av| 日韩美女视频免费看| 婷婷av在线| 中文字幕亚洲一区二区三区五十路| 亚洲av无码乱码国产麻豆 | 97av在线影院| 1区2区3区在线视频| 亚洲视频视频在线| 性生活黄色大片| 欧美高清www午色夜在线视频| 日韩 欧美 中文| 亚洲一区电影777| 91杏吧porn蝌蚪| 欧美国产1区2区| 97人妻天天摸天天爽天天| 国产麻豆精品视频| xxx国产在线观看| 久久成人亚洲| 男女激情无遮挡| 在线精品观看| 屁屁影院ccyy国产第一页| 久久综合99| 视频一区免费观看| 九九热线有精品视频99| 久久99精品久久久久久秒播放器| 亚洲一区二区电影| 亚洲影影院av| 国产精品成人**免费视频| 国产欧美精品一区二区三区介绍 | 亚洲福利免费| 日本福利视频在线观看| 亚洲成人tv| 中文字幕一区二区三区精彩视频| 奇米影视亚洲| 天堂社区 天堂综合网 天堂资源最新版 | 国产精品视频免费一区| 日韩中文字幕在线一区| 亚洲最大成人网色| 国产精品麻豆| 91精品久久香蕉国产线看观看| 四虎视频在线精品免费网址| 国产精品一区二区在线| 日韩av免费| 国产精品白嫩初高中害羞小美女| 最近高清中文在线字幕在线观看1| 国语自产精品视频在免费| 欧美午夜大胆人体| 欧美激情啊啊啊| 久久国产精品黑丝| 国产精品一二三区在线观看| 国产美女精品| 欧美韩国日本在线| 久久久久国产精品一区二区| 日韩av片在线看| 久久青草久久| 国产自偷自偷免费一区| 日韩国产在线观看| 香蕉视频禁止18| 激情伊人五月天久久综合| www.五月天色| 国产成人无遮挡在线视频| 中文字幕天堂av| 91日韩一区二区三区| 精品无码人妻一区二区免费蜜桃| 国产欧美一区二区精品忘忧草| 成人精品一二三区| 亚洲免费毛片网站| 国产一级大片在线观看| 激情av一区二区| 自拍偷拍18p| 欧美片在线播放| 国产成人精品毛片| 亚洲成人久久久久| 国产乱子伦三级在线播放| 日韩在线免费高清视频| 国产亚av手机在线观看| 欧洲一区二区视频| 亚洲一区导航| 国产精品区一区| 精品久久综合| 91免费国产精品| 亚洲欧美bt| 日本高清一区二区视频| 成人禁用看黄a在线| 久久久久亚洲av成人无码电影| 中文字幕在线不卡国产视频| 国产午夜精品无码| 欧美性受xxxx黑人xyx性爽| www.成人在线观看| 国产性色av一区二区| √天堂8在线网| 国产a∨精品一区二区三区不卡| www一区二区三区| 麻豆91蜜桃| 欧美不卡高清| 孩娇小videos精品| 99久久婷婷国产精品综合| 黄色免费一级视频| 亚洲va国产va欧美va观看| 中文字幕在线观看国产| 亚洲黄色在线看| 成人看av片| 国产精品第3页| 老司机成人在线| 日韩不卡一二区| 久久这里有精品15一区二区三区| 日本中文字幕有码| 中文字幕一区二区三区av| 天天综合天天干| 欧美r级在线观看| 午夜不卡视频| 日本久久中文字幕| av一级亚洲| 久久视频免费在线| 青娱乐精品视频在线| 一级做a爰片毛片| 亚洲观看高清完整版在线观看| 国产精品老熟女视频一区二区| 亚洲女人被黑人巨大进入al| 国产盗摄一区二区| 亚洲一区二区三区香蕉| 成人高清电影网站| 日本熟妇人妻xxxxx| 99久久国产免费看| 久草网视频在线观看| 欧美一区二区三区在线| 幼a在线观看| 国产精品网站入口| 欧美手机在线| 五月天亚洲视频| 中文字幕二三区不卡| 伊人久久中文字幕| 国产亚洲激情视频在线|