国产无遮挡裸体免费直播视频,久久精品国产蜜臀av,动漫在线视频一区二区,欧亚日韩一区二区三区,久艹在线 免费视频,国产精品美女网站免费,正在播放 97超级视频在线观看,斗破苍穹年番在线观看免费,51最新乱码中文字幕

SVG動畫vivus.js庫使用小結(jié)(實例代碼)

 更新時間:2017年09月14日 10:09:32   作者:羽筠  
本文通過代碼給大家介紹SVG動畫vivus.js庫使用小結(jié),代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友參考下吧

SVG動畫vivus.js庫使用整理,具體實例代碼如下所示:

使用方法如圖:

HTML例子代碼:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8" /> 
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
<title>vivus.js - test</title> 
<style type="text/css"> 
  svg * {fill: none;stroke: currentColor;stroke-width:4;} 
  .sunrise {color: #f037a5; background-color: #f8c72c;} 
  .matrix  {color: #86e0c4; background-color: #181f21;} 
  .electric {color: #78C9DB; background-color: #E4175B;} 
  .night  {color: #D3D679; background-color: #316BD2;} 
  i{ font-style:normal; color:#f00;} 
  span{ color:#316BD2;} 
</style> 
</head> 
<body> 
  <div> 
    <p> 
    <span>var synthD</span> = new Vivus('<i>synth-dynamic</i>', {<br> 
      <i>file: </i>'vivus-git/synth.svg',<br> 
      <i>type: </i>'oneByOne',<br> 
      duration: 200,<br> 
      <i>start: </i>'manual',<br> 
      <i>animTimingFunction:</i> Vivus.EASE_OUT_BOUNCE<br> 
    }); 
    </p> 
    <p> 
    <span>synth-dynamic:</span>SVG的ID 或 加載外部SVG文件的父標(biāo)簽 
    </p> 
    <p> 
    <span>file:</span><i>vivus-git/synth.svg</i>,如果是SVG的ID則可省略此設(shè)置,如果是加載外部SVG文件的父標(biāo)簽,對應(yīng)的值則是SVG文件的路徑 
    </p> 
    <p> 
    <span>type:</span><br> 
      對就值:<i>delayed</i> 每條路徑元素繪制在同一時間用小延遲開始。這是目前默認(rèn)動畫。<br> 
      對就值:<i>scenario-sync</i> 每一行都是同步的。他們都在同一時間開始和結(jié)束,因此得名“同步”。<br> 
      對就值:<i>oneByOne</i> 每個路徑元素是一個接一個。這個動畫給人最好的印象的繪畫。 
    </p> 
    <p> 
    <span>start:</span>是否自動播放,可省略此設(shè)置,不設(shè)置則默認(rèn)自動播放<br> 
      對就值:<i>autostart</i> 默認(rèn)值,自動播放<br> 
      對就值:<i>manual</i> 不自動播放,需要事件觸發(fā)播放 
    </p> 
    <p> 
    <span>animTimingFunction:</span>動畫效果<br> 
      對就值:<i>LINEAR</i> 動畫從頭到尾的速度是相同的<br> 
      對就值:<i>EASE</i> 動畫以低速開始,然后加快,在結(jié)束前變慢。<br> 
      對就值:<i>EASE_IN</i> 動畫以低速開始。<br> 
      對就值:<i>EASE_OUT</i> 動畫以低速結(jié)束。<br> 
      對就值:<i>EASE_OUT_BOUNCE</i> 動畫彈性結(jié)束 
    </p> 
  </div> 
  <div> 
    <p> 
      <span>synthD</span><i>.play();</i> 播放動畫<br> 
      <span>synthD</span><i>.reset().play();</i> 重新播放動畫<br> 
      <span>synthD</span><i>.play(-3);</i> 倒帶,反向收回之前完成的動畫 
    </p> 
  </div> 
  <div class="matrix"> 
    <div> 
     <p>每條路徑元素繪制在同一時間用小延遲開始。這是目前默認(rèn)動畫。<br>vivus-git/obturateur.svg</p> 
     <button onclick="obt1.reset().play();">重新播放動畫</button> 
     <button onclick="obt1.play(-3);">倒帶</button> 
    </div> 
    <!-- 
    <div id="obt"></div> 
    --> 
    <div> 
     <object id="obt" data="vivus-git/obturateur.svg" type="image/svg+xml" style="width: 100%; max-height: 250px;"></object> 
    </div> 
  </div> 
  <div class="sunrise"> 
    <div> 
     <p>每一行都是同步的。他們都在同一時間開始和結(jié)束,因此得名“同步”。<br>vivus-git/polaroid.svg</p> 
     <button onclick="polaroidD.reset().play();">重新播放動畫</button> 
     <button onclick="polaroidD.play(-3);">倒帶</button> 
    </div> 
    <div id="polaroid-dynamic"></div> 
  </div> 
  <div class="electric"> 
    <div> 
     <p>每一行都是同步的。他們都在同一時間開始和結(jié)束,因此得名“同步”。<br>vivus-git/hi-there.svg</p> 
     <button onclick="hiD.play();">播放動畫</button> 
     <button onclick="hiD.play(-3);">倒帶</button> 
    </div> 
    <!--<div id="hi-dynamic" style="max-width: 300px; margin: auto;"></div>--> 
    <svg height="300" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 404.7 354" enable-background="new 0 0 404.7 354" id="hi-dynamic" onclick="hiD.reset().play();"> 
      <!-- HI --> 
      <path data-duration="10" d="M324.6,61.2c16.6,0,29.5-12.9,29.5-29.5c0-16.6-12.9-29.5-29.5-29.5c-16.6,0-29.5,12.9-29.5,29.5C295.1,48.4,308,61.2,324.6,61.2z" style="stroke-dasharray: 186px, 226px; stroke-dashoffset: 0px;"></path> 
      <path data-duration="130" d="M366.2,204.2c-9.8,0-15-5.6-15-15.1V77.2h-85v28h19.5c9.8,0,8.5,2.1,8.5,11.6v72.4c0,9.5,0.5,15.1-9.3,15.1H277h-20.7c-8.5,0-14.2-4.1-14.2-12.9V52.4c0-8.5,5.7-12.3,14.2-12.3h18.8v-28h-127v28h18.1c8.5,0,9.9,2.1,9.9,8.9v56.1h-75V53.4c0-11.5,8.6-13.3,17-13.3h11v-28H2.2v28h26c8.5,0,12,2.1,12,7.9v142.2c0,8.5-3.6,13.9-12,13.9h-21v33h122v-33h-11c-8.5,0-17-4.1-17-12.2v-57.8h75v58.4c0,9.1-1.4,11.6-9.9,11.6h-18.1v33h122.9h5.9h102.2v-33H366.2z" style="stroke-dasharray: 2216px, 2256px; stroke-dashoffset: 0px;"></path> 
      <path data-async="" data-delay="20" d="M358.8,82.8c11.1-4.2,18.8-14.7,18.8-27.5c0-8.5-3.4-16-8.9-21.3" style="stroke-dasharray: 60px, 100px; stroke-dashoffset: 0px;"></path> 
      <path data-async="" d="M124.2,105.7V77c0-11.5,9.1-13.8,17.5-13.8h10.5V44.7" style="stroke-dasharray: 84px, 124px; stroke-dashoffset: 0px;"></path> 
      <path data-async="" d="M147.9,40.2L171.2,63.2L175.7,63.2" style="stroke-dasharray: 38px, 78px; stroke-dashoffset: 0px;"></path> 
      <path data-async="" d="M295.1,32.1L275.2,12.2" style="stroke-dasharray: 29px, 69px; stroke-dashoffset: 0px;"></path> 
      <path data-async="" d="M266.2,204.7V75.9c0-8.5,5.2-12.8,13.7-12.8h18.3V44.7" style="stroke-dasharray: 187px, 227px; stroke-dashoffset: 0px;"></path> 
      <path data-async="" d="M265.9,105.2L289.2,129.2L293.7,129.2" style="stroke-dasharray: 38px, 78px; stroke-dashoffset: 0px;"></path> 
      <path data-async="" d="M374.2,204.7L374.2,94.2L358.8,82.8L351.2,77.2" style="stroke-dasharray: 140px, 180px; stroke-dashoffset: 0px;"></path> 
      <path data-async="" d="M148.2,237.2L171.2,261.2L294.6,261.2L300.5,261.2L402.2,261.2L402.2,228.2L379.2,204.2" style="stroke-dasharray: 331px, 371px; stroke-dashoffset: 0px;"></path> 
      <path data-async="" d="M124.2,204.7L124.2,157.2L175.7,157.2" style="stroke-dasharray: 99px, 139px; stroke-dashoffset: 0px;"></path> 
      <path data-async="" d="M147.7,228.2L129.2,204.2" style="stroke-dasharray: 31px, 71px; stroke-dashoffset: 0px;"></path> 
      <path data-async="" d="M7.2,237.3L30.2,261.2L152.2,261.2L152.2,241.7" style="stroke-dasharray: 175px, 215px; stroke-dashoffset: 0px;"></path> 
      <path data-async="" d="M1.9,40.2L26,63.2L39.7,63.2" style="stroke-dasharray: 48px, 88px; stroke-dashoffset: 0px;"></path> 
      <path data-async="" d="M129.2,12.2L148.2,33.2" style="stroke-dasharray: 29px, 69px; stroke-dashoffset: 0px;"></path> 
      <path data-async="" d="M303.9,53L328.1,77.2" style="stroke-dasharray: 35px, 75px; stroke-dashoffset: 0px;"></path> 
      <path d="M345.1,10.5L368.7,34" style="stroke-dasharray: 34px, 74px; stroke-dashoffset: 0px;"></path> 
      <!-- there --> 
      <path data-delay="30" data-duration="60" stroke-linecap="round" stroke-linejoin="round" d="M76.8,337.3c0,0,1.9,12.2,13.1,12.2c22.1,0,23.8-1.8,59-66.4c-19.7,35.7-36.4,66.2-19.3,66.2c15.2,0,22.9-14.2,28.3-23.7c3.3-0.5,24-3.2,35-25.5c4-8.1,4.1-17.8-8.1-15.2c-5.6,1.2-13.1,14.8-15.7,19.2c-7.6,12.7-22.4,45.2-22.4,45.2s10.3-22.4,21.5-22.4c15.5,0-9.4,22.4,4.7,22.4c4.9,0,11.7-11.4,16.6-20.9c7.5,4.7,19.7,1.7,24.5-8.1c10.1-20.4-14.4-12.8-24.5,8.1c-5.5,11.3-2.2,21.1,11.2,21.1c16.4,0,26.1-28.3,30.5-37.5c9.9,2.5,14,2.5,22.7-1.1c-3.5,5.1-24,38.1-8.3,38.1c6.7,0,11.7-11.4,16.6-20.9c7.5,4.7,19.7,1.7,24.5-8.1c10.1-20.4-14.4-12.8-24.5,8.1c-5.5,11.3-2.2,21.1,11.2,21.1c16.4,0,20.6-4,24.7-10.5" style="stroke-dasharray: 851px, 891px; stroke-dashoffset: 0px;"></path> 
      <path stroke-linecap="round" stroke-linejoin="round" d="M157.3,300.8c3.8-2.3-29,0.8-35.6,3.2" style="stroke-dasharray: 37px, 77px; stroke-dashoffset: 0px;"></path> 
    </svg> 
  </div> 
  <div class="night"> 
    <div> 
     <p>每個路徑元素是一個接一個。這個動畫給人最好的印象的繪畫。<br>vivus-git/synth.svg</p> 
     <button onclick="synthD.play();">播放動畫</button> 
     <button onclick="synthD.play(-3);">倒帶</button> 
    </div> 
    <div id="synth-dynamic" style="max-width: 400px; margin: auto;"></div> 
  </div> 
  <!--<script src="vivus.js"></script>--> 
  <script src="http://cdn.jsdelivr.net/vivus/latest/vivus.min.js"></script> 
  <script> 
   if (window.location.protocol === 'file:') { 
     alert('請使用HTTP服務(wù)器服務(wù)(http://localhost/)訪問此頁面。'); 
   } 
   var obt1 = new Vivus('obt', { 
    /* 
    加載SVG外部文件的方法: 
    1、有object標(biāo)簽則 不用 加載SVG外部文件的代碼:file: 'vivus-git/obturateur.svg' 
    以上HTML中有此代碼:<object id="obt" data="vivus-git/obturateur.svg" type="image/svg+xml" style="width: 100%; max-height: 250px;"></object> 
    2、沒有object標(biāo)簽則 要 加載SVG外部文件的代碼:file: 'vivus-git/obturateur.svg' 
    以上HTML中有此代碼 已注釋:<div id="obt"></div> 
    */ 
    //file: 'vivus-git/obturateur.svg', 
    type: 'delayed',//每條路徑元素繪制在同一時間用小延遲開始。這是目前默認(rèn)動畫。 
    duration: 150, 
    //start: 'autostart' 
   }); 
   var polaroidD = new Vivus('polaroid-dynamic', { 
    file: 'vivus-git/polaroid.svg', 
    //file: 'vivus-git/111.svg', 
    type: 'scenario-sync',//每一行都是同步的。他們都在同一時間開始和結(jié)束,因此得名“同步”。 
    duration: 20, 
    start: 'autostart' 
   }); 
   var hiD = new Vivus('hi-dynamic', { 
    /* 
    1、SVG內(nèi)部標(biāo)簽, 不用 加載SVG外部文件的代碼:file: 'vivus-git/hi-there.svg' 
    以上HTML中有此代碼:<svg height="300" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 404.7 354" enable-background="new 0 0 404.7 354" id="hi-dynamic" onclick="hiD.reset().play();"> 
    2、加載SVG外部文件的方法:file: 'vivus-git/hi-there.svg' 
    以上HTML中有此代碼 已注釋:<div id="hi-dynamic" style="max-width: 300px; margin: auto;"></div> 
    */ 
    //file: 'vivus-git/hi-there.svg', 
    type: 'scenario-sync', 
    duration: 20, 
    start: 'manual' 
   }); 
   var synthD = new Vivus('synth-dynamic', { 
    file: 'vivus-git/synth.svg', 
    type: 'oneByOne',//每個路徑元素是一個接一個。這個動畫給人最好的印象的繪畫。 
    duration: 200, 
    start: 'manual', 
    animTimingFunction: Vivus.EASE_OUT 
   }); 
//   function easeOutBounce (x) { 
//    var base = -Math.cos(x * (0.5 * Math.PI)) + 1; 
//    var rate = Math.pow(base,1.5); 
//    var rateR = Math.pow(1 - x, 2); 
//    var progress = -Math.abs(Math.cos(rate * (2.5 * Math.PI) )) + 1; 
//    return (1- rateR) + (progress * rateR); 
//   } 
  </script> 
 </body> 
</html> 
hi-there.svg代碼:
[html] view plain copy
<svg height="300" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 404.7 354" enable-background="new 0 0 404.7 354"> 
 <g stroke="#f9f9f9" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"> 
  <!-- HI --> 
  <path data-duration="10" d="M324.6,61.2c16.6,0,29.5-12.9,29.5-29.5c0-16.6-12.9-29.5-29.5-29.5c-16.6,0-29.5,12.9-29.5,29.5C295.1,48.4,308,61.2,324.6,61.2z"/> 
  <path data-duration="130" d="M366.2,204.2c-9.8,0-15-5.6-15-15.1V77.2h-85v28h19.5c9.8,0,8.5,2.1,8.5,11.6v72.4c0,9.5,0.5,15.1-9.3,15.1H277h-20.7c-8.5,0-14.2-4.1-14.2-12.9V52.4c0-8.5,5.7-12.3,14.2-12.3h18.8v-28h-127v28h18.1c8.5,0,9.9,2.1,9.9,8.9v56.1h-75V53.4c0-11.5,8.6-13.3,17-13.3h11v-28H2.2v28h26c8.5,0,12,2.1,12,7.9v142.2c0,8.5-3.6,13.9-12,13.9h-21v33h122v-33h-11c-8.5,0-17-4.1-17-12.2v-57.8h75v58.4c0,9.1-1.4,11.6-9.9,11.6h-18.1v33h122.9h5.9h102.2v-33H366.2z"/> 
  <path data-async="" data-delay="20" d="M358.8,82.8c11.1-4.2,18.8-14.7,18.8-27.5c0-8.5-3.4-16-8.9-21.3"/> 
  <path data-async="" d="M124.2,105.7V77c0-11.5,9.1-13.8,17.5-13.8h10.5V44.7"/> 
  <polyline data-async="" points="147.9,40.2 171.2,63.2 175.7,63.2"/> 
  <line data-async="" x1="295.1" y1="32.1" x2="275.2" y2="12.2"/> 
  <path data-async="" d="M266.2,204.7V75.9c0-8.5,5.2-12.8,13.7-12.8h18.3V44.7"/> 
  <polyline data-async="" points="265.9,105.2 289.2,129.2 293.7,129.2"/> 
  <polyline data-async="" points="374.2,204.7 374.2,94.2 358.8,82.8 351.2,77.2"/> 
  <polyline data-async="" points="148.2,237.2 171.2,261.2 294.6,261.2 300.5,261.2 402.2,261.2 402.2,228.2 379.2,204.2"/> 
  <polyline data-async="" points="124.2,204.7 124.2,157.2 175.7,157.2"/> 
  <line data-async="" x1="147.7" y1="228.2" x2="129.2" y2="204.2"/> 
  <polyline data-async="" points="7.2,237.3 30.2,261.2 152.2,261.2 152.2,241.7"/> 
  <polyline data-async="" points="1.9,40.2 26,63.2 39.7,63.2"/> 
  <line data-async="" x1="129.2" y1="12.2" x2="148.2" y2="33.2"/> 
  <line data-async="" x1="303.9" y1="53" x2="328.1" y2="77.2"/> 
  <line x1="345.1" y1="10.5" x2="368.7" y2="34"/> 
  <!-- there --> 
  <path data-delay="30" data-duration="60" stroke-linecap="round" stroke-linejoin="round" d="M76.8,337.3c0,0,1.9,12.2,13.1,12.2c22.1,0,23.8-1.8,59-66.4c-19.7,35.7-36.4,66.2-19.3,66.2c15.2,0,22.9-14.2,28.3-23.7c3.3-0.5,24-3.2,35-25.5c4-8.1,4.1-17.8-8.1-15.2c-5.6,1.2-13.1,14.8-15.7,19.2c-7.6,12.7-22.4,45.2-22.4,45.2s10.3-22.4,21.5-22.4c15.5,0-9.4,22.4,4.7,22.4c4.9,0,11.7-11.4,16.6-20.9c7.5,4.7,19.7,1.7,24.5-8.1c10.1-20.4-14.4-12.8-24.5,8.1c-5.5,11.3-2.2,21.1,11.2,21.1c16.4,0,26.1-28.3,30.5-37.5c9.9,2.5,14,2.5,22.7-1.1c-3.5,5.1-24,38.1-8.3,38.1c6.7,0,11.7-11.4,16.6-20.9c7.5,4.7,19.7,1.7,24.5-8.1c10.1-20.4-14.4-12.8-24.5,8.1c-5.5,11.3-2.2,21.1,11.2,21.1c16.4,0,20.6-4,24.7-10.5"/> 
  <path stroke-linecap="round" stroke-linejoin="round" d="M157.3,300.8c3.8-2.3-29,0.8-35.6,3.2"/> 
 </g> 
</svg> 
obturateur.svg代碼:
[html] view plain copy
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="100%" height="200px" style="height:200px;" viewBox="0 0 200 200" enable-background="new 0 0 200 200"> 
 <g stroke="#f60" fill="none" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" > 
  <circle cx="100" cy="100" r="90"/> 
  <circle cx="100" cy="100" r="85.74"/> 
  <circle cx="100" cy="100" r="72.947"/> 
  <circle cx="100" cy="100" r="39.74"/> 
  <line x1="34.042" y1="131.189" x2="67.047" y2="77.781"/> 
  <line x1="31.306" y1="75.416" x2="92.41" y2="60.987"/> 
  <line x1="68.81" y1="34.042" x2="122.219" y2="67.046"/> 
  <line x1="124.584" y1="31.305" x2="139.013" y2="92.409"/> 
  <line x1="165.957" y1="68.809" x2="132.953" y2="122.219"/> 
  <line x1="168.693" y1="124.584" x2="107.59" y2="139.012"/> 
  <line x1="131.19" y1="165.957" x2="77.781" y2="132.953"/> 
  <line x1="75.417" y1="168.693" x2="60.987" y2="107.59"/> 
 </g> 
</svg> 
polaroid.svg代碼:
[html] view plain copy
<svg id="polaroid" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" style="height:200px;" viewBox="0 0 200 160" enable-background="new 0 0 200 160"> 
 <g stroke="#f9f9f9" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"> 
  <!-- Case --> 
  <!-- The case items will be drawn at the same time (attribute `data-async` on each tag) with a custom duration of 40 frames (attribute `data-duration`). WARNING: When you want to draw a bloc asynchronously (like here), the last item need to be `data-async` free. Otherwise the following tags will also start at the same time. I know it's a bit confusing, play a bit with it and you'll see. --> 
  <path data-async="" data-duration="40" d=" 
   M106.725,104.742c-0.773,2.498-3.586,4.229-6.285,3.867L12.473,96.802c-2.699-0.363-4.262-2.682-3.49-5.18l25.164-81.436 
   c0.771-2.496,3.584-4.229,6.283-3.866l87.966,11.808c2.699,0.362,4.264,2.68,3.49,5.179L106.725,104.742z"/> 
  <path data-async="" data-duration="40" d=" 
   M101.02,123.207c-0.773,2.5-3.587,4.23-6.286,3.867L6.766,115.27c-2.699-0.363-4.26-2.682-3.488-5.182l2.91-9.417 
   c0.771-2.499,3.585-4.23,6.285-3.87l87.967,11.809c2.699,0.361,4.261,2.682,3.49,5.18L101.02,123.207z"/> 
  <line data-async="" data-duration="40" x1="103.377" y1="128.225" x2="154.768" y2="155.32"/> 
  <line data-async="" data-duration="40" x1="109.852" y1="112.684" x2="155.035" y2="136.906"/> 
  <path data-async="" data-duration="40" d=" 
   M9.096,120.207l47.932,21.994c0,0,98.06,12.414,97.74,13.119c-0.318,0.709,5.426-16.205,5.426-16.205l-2.646-96.842 
   c-1.098-7.587-2.467-11.8-8.559-15.024l-12.635-6.604"/> 
  <path data-async="" data-duration="40" d=" 
   M161.586,38.135l30.717,16.085c0,0,5.295,2.323,4.543,6.504l-3.215,10.527c-0.648,2.621-2.939,4.988-8.229,2.798l-9.154-4.701 
   l-11.834,56.441"/> 
  <path data-duration="40" d=" 
   M183.148,49.518c0,0,5.295,2.324,4.543,6.506l-3.215,10.526c-0.648,2.622-2.938,4.988-8.229,2.798"/> 
  <!-- Lens --> 
  <!-- All item will be drawn line by line, with an exception for the first one, a little delay (attribute `data-delay) to make a break between the drawing of the case and the start of the lens part --> 
  <path data-delay="20" d=" 
   M87.176,56.143C83.274,68.78,69.043,77.538,55.395,75.706S33.846,62.146,37.75,49.511c3.903-12.637,18.135-21.392,31.783-19.562 
   C83.181,31.782,91.081,43.51,87.176,56.143z"/> 
  <path d=" 
   M92.745,56.891c-4.785,15.48-22.219,26.213-38.942,23.969C37.079,78.615,27.4,64.245,32.184,48.763 
   c4.783-15.48,22.218-26.211,38.94-23.968C87.848,27.041,97.528,41.411,92.745,56.891z"/> 
  <path d=" 
   M78.99,26.933c16.169,7.426,19.398,10.989,22.026,20.105c1.283,4.449,1.271,9.411-0.3,14.489 
   c-4.783,15.479-22.217,26.213-38.941,23.969c-8.68-1.165-21.171-7.963-25.613-14.055"/> 
  <path d=" 
   M42.602,50.162c3.137-10.157,14.573-17.193,25.543-15.722"/> 
  <!-- Flash --> 
  <!-- This tag does not have any extra attribute. So it will start when the previous tag is finished. His duration and delay will be the one given in the options. --> 
  <path d=" 
   M103.789,29.275c-0.568,1.841,0.582,3.549,2.57,3.818l12.807,1.72c1.988,0.266,4.062-1.012,4.633-2.851l1.66-5.38 
   c0.568-1.843-0.582-3.551-2.57-3.816l-12.807-1.72c-1.988-0.268-4.062,1.01-4.633,2.85L103.789,29.275z"/> 
  <!-- Output --> 
  <!-- Same case as Flash --> 
  <path d=" 
   M11.129,105.791c-0.297,0.965,0.305,1.855,1.346,1.994l81.446,10.932c1.038,0.141,2.123-0.527,2.42-1.49l0,0 
   c0.298-0.961-0.304-1.855-1.343-1.996l-81.447-10.93C12.51,104.16,11.426,104.828,11.129,105.791L11.129,105.791z"/> 
  <!-- Design (color lines on the front) --> 
  <!-- All the lines will start at the same time, because they all have the attribute `data-async` --> 
  <line data-async="" x1="47.583" y1="101.505" x2="51.561" y2="88.267"/> 
  <line data-async="" x1="53.391" y1="102.326" x2="57.047" y2="90.125"/> 
  <line data-async="" x1="59.224" y1="103.068" x2="62.749" y2="91.295"/> 
  <line data-async="" x1="65.057" y1="103.814" x2="69.015" y2="90.637"/> 
  <line data-async="" x1="72.87" y1="19.969" x2="75.497" y2="11.082"/> 
  <line data-async="" x1="78.512" y1="21.325" x2="81.317" y2="11.868"/> 
  <line data-async="" x1="83.833" y1="23.718" x2="87.16" y2="12.582"/> 
  <line data-async="" x1="89.145" y1="26.141" x2="92.939" y2="13.498"/> 
 </g> 
</svg> 
synth.svg代碼:
[html] view plain copy
<?xml version="1.0" encoding="utf-8"?> 
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="378.995px" height="259.5px" viewBox="0 0 378.995 259.5" enable-background="new 0 0 378.995 259.5" xml:space="preserve"> 
<g id="Synth"> 
  <path fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d=" 
    M375.5,108.934c1.549,2.693,0.627,5.739-2.059,6.804L72.043,235.257c-2.685,1.064-6.116-0.254-7.665-2.946L5.362,129.69 
    c-1.548-2.692-0.625-5.737,2.059-6.802L308.818,3.369c2.686-1.065,6.117,0.254,7.666,2.946L375.5,108.934z"/> 
  <path fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d=" 
    M376.246,111.47l-2.068,18.344c0,0-0.621,5.361-4.932,7.726L69.601,256.365c-2.685,1.064-6.116-0.254-7.665-2.946L3.693,152.145 
    c-1.548-2.692-0.878-9.891-0.878-9.891l0.82-7.014"/> 
    <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="373.785" y1="112.765" x2="371.715" y2="130.65"/> 
    <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="70.318" y1="250.17" x2="371.715" y2="130.65"/> 
    <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="319.578" y1="22.078" x2="19.852" y2="140.935"/> 
    <polyline fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
    19.852,140.935 72.387,232.284 70.318,250.17   "/> 
    <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="371.715" y1="130.65" x2="365.053" y2="119.063"/> 
  <g id="octaves_1_"> 
      <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="93.572" y1="226.72" x2="73.09" y2="191.106"/> 
      <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="114.616" y1="218.126" x2="94.134" y2="182.512"/> 
      <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="136.629" y1="209.646" x2="82.765" y2="115.986"/> 
      <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="158.158" y1="201.108" x2="137.674" y2="165.493"/> 
      <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="179.688" y1="192.572" x2="159.203" y2="156.957"/> 
      <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="201.213" y1="184.034" x2="180.732" y2="148.419"/> 
      <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="222.742" y1="175.497" x2="168.879" y2="81.838"/> 
      <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="244.27" y1="166.959" x2="223.789" y2="131.346"/> 
      <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="265.799" y1="158.423" x2="245.318" y2="122.809"/> 
      <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="287.328" y1="149.886" x2="233.463" y2="56.226"/> 
      <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="308.855" y1="141.349" x2="288.375" y2="105.734"/> 
      <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="330.385" y1="132.812" x2="309.902" y2="97.197"/> 
      <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="351.912" y1="124.274" x2="331.432" y2="88.66"/> 
      <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="373.441" y1="115.737" x2="319.578" y2="22.078"/> 
  </g> 
  <g id="bemols_1_"> 
    <g> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        67.427,190.815 35.241,134.85 39.708,133.061 44.176,131.271 76.24,177.929 76.362,187.236       "/> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        69.3,180.708 36.616,135.539 44.606,132.34 76.24,177.929       "/> 
        <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="69.077" y1="183.09" x2="68.222" y2="187.702"/> 
    </g> 
    <g> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        89.117,182.213 56.931,126.247 61.398,124.458 65.866,122.669 97.93,169.326 98.052,178.634      "/> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        90.99,172.105 58.306,126.937 66.295,123.736 97.93,169.326      "/> 
        <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="90.767" y1="174.487" x2="89.912" y2="179.1"/> 
    </g> 
    <g> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        132.012,165.204 99.826,109.238 104.293,107.449 108.762,105.661 140.825,152.317 140.948,161.625     "/> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        133.885,155.098 101.202,109.928 109.191,106.728 140.825,152.317       "/> 
        <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="133.661" y1="157.479" x2="132.807" y2="162.091"/> 
    </g> 
    <g> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        153.541,156.666 121.354,100.7 125.821,98.911 130.289,97.122 162.354,143.779 162.475,153.088       "/> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        155.416,146.559 122.729,101.39 130.719,98.19 162.354,143.779      "/> 
        <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="155.191" y1="148.94" x2="154.335" y2="153.554"/> 
    </g> 
    <g> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        175.068,148.129 142.881,92.164 147.348,90.374 151.817,88.585 183.881,135.242 184.004,144.551      "/> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        176.941,138.021 144.256,92.853 152.247,89.653 183.881,135.242      "/> 
        <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="176.719" y1="140.403" x2="175.863" y2="145.017"/> 
    </g> 
    <g> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        218.127,131.056 185.939,75.089 190.406,73.3 194.875,71.512 226.938,118.169 227.061,127.476     "/> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        220,120.948 187.314,75.778 195.305,72.579 226.938,118.169      "/> 
        <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="219.775" y1="123.329" x2="218.922" y2="127.942"/> 
    </g> 
    <g> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        239.656,122.518 207.469,66.553 211.936,64.763 216.402,62.975 248.467,109.631 248.59,118.939       "/> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        241.529,112.411 208.844,67.241 216.834,64.042 248.467,109.631      "/> 
        <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="241.305" y1="114.792" x2="240.449" y2="119.405"/> 
    </g> 
    <g> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        282.713,105.443 250.525,49.478 254.992,47.688 259.459,45.9 291.523,92.558 291.646,101.864      "/> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        284.584,95.337 251.902,50.168 259.891,46.968 291.523,92.558       "/> 
        <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="284.361" y1="97.718" x2="283.508" y2="102.33"/> 
    </g> 
    <g> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        304.24,96.906 272.055,40.941 276.52,39.151 280.988,37.363 313.053,84.02 313.174,93.328     "/> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        306.113,86.8 273.43,41.631 281.42,38.431 313.053,84.02     "/> 
        <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="305.891" y1="89.181" x2="305.035" y2="93.794"/> 
    </g> 
    <g> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        325.768,88.369 293.582,32.404 298.049,30.614 302.518,28.825 334.58,75.482 334.703,84.791      "/> 
        <polygon fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" 
        327.641,78.262 294.957,33.093 302.947,29.894 334.58,75.482     "/> 
        <line fill="none" stroke="#241F20" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="327.418" y1="80.644" x2="326.562" y2="85.257"/> 
    </g> 
  </g> 
</g> 
</svg> 
(vivus.min.js)CDN引用地址:http://cdn.jsdelivr.net/vivus/latest/vivus.min.js
vivus.js代碼:
[html] view plain copy
/** 
 * vivus - JavaScript library to make drawing animation on SVG 
 * @version v0.4.0 
 * @link https://github.com/maxwellito/vivus 
 * @license MIT 
 */ 
'use strict'; 
(function (window, document) { 
 'use strict'; 
/** 
 * Pathformer 
 * Beta version 
 * 
 * Take any SVG version 1.1 and transform 
 * child elements to 'path' elements 
 * 
 * This code is purely forked from 
 * https://github.com/Waest/SVGPathConverter 
 */ 
/** 
 * Class constructor 
 * 
 * @param {DOM|String} element Dom element of the SVG or id of it 
 */ 
function Pathformer(element) { 
 // Test params 
 if (typeof element === 'undefined') { 
  throw new Error('Pathformer [constructor]: "element" parameter is required'); 
 } 
 // Set the element 
 if (element.constructor === String) { 
  element = document.getElementById(element); 
  if (!element) { 
   throw new Error('Pathformer [constructor]: "element" parameter is not related to an existing ID'); 
  } 
 } 
 if (element.constructor instanceof window.SVGElement || /^svg$/i.test(element.nodeName)) { 
  this.el = element; 
 } else { 
  throw new Error('Pathformer [constructor]: "element" parameter must be a string or a SVGelement'); 
 } 
 // Start 
 this.scan(element); 
} 
/** 
 * List of tags which can be transformed 
 * to path elements 
 * 
 * @type {Array} 
 */ 
Pathformer.prototype.TYPES = ['line', 'ellipse', 'circle', 'polygon', 'polyline', 'rect']; 
/** 
 * List of attribute names which contain 
 * data. This array list them to check if 
 * they contain bad values, like percentage. 
 * 
 * @type {Array} 
 */ 
Pathformer.prototype.ATTR_WATCH = ['cx', 'cy', 'points', 'r', 'rx', 'ry', 'x', 'x1', 'x2', 'y', 'y1', 'y2']; 
/** 
 * Finds the elements compatible for transform 
 * and apply the liked method 
 * 
 * @param {object} options Object from the constructor 
 */ 
Pathformer.prototype.scan = function (svg) { 
 var fn, element, pathData, pathDom, 
   elements = svg.querySelectorAll(this.TYPES.join(',')); 
 for (var i = 0; i < elements.length; i++) { 
  element = elements[i]; 
  fn = this[element.tagName.toLowerCase() + 'ToPath']; 
  pathData = fn(this.parseAttr(element.attributes)); 
  pathDom = this.pathMaker(element, pathData); 
  element.parentNode.replaceChild(pathDom, element); 
 } 
}; 
/** 
 * Read `line` element to extract and transform 
 * data, to make it ready for a `path` object. 
 * 
 * @param {DOMelement} element Line element to transform 
 * @return {object}       Data for a `path` element 
 */ 
Pathformer.prototype.lineToPath = function (element) { 
 var newElement = {}, 
   x1 = element.x1 || 0, 
   y1 = element.y1 || 0, 
   x2 = element.x2 || 0, 
   y2 = element.y2 || 0; 
 newElement.d = 'M' + x1 + ',' + y1 + 'L' + x2 + ',' + y2; 
 return newElement; 
}; 
/** 
 * Read `rect` element to extract and transform 
 * data, to make it ready for a `path` object. 
 * The radius-border is not taken in charge yet. 
 * (your help is more than welcomed) 
 * 
 * @param {DOMelement} element Rect element to transform 
 * @return {object}       Data for a `path` element 
 */ 
Pathformer.prototype.rectToPath = function (element) { 
 var newElement = {}, 
   x   = parseFloat(element.x)   || 0, 
   y   = parseFloat(element.y)   || 0, 
   width = parseFloat(element.width) || 0, 
   height = parseFloat(element.height) || 0; 
 newElement.d = 'M' + x + ' ' + y + ' '; 
 newElement.d += 'L' + (x + width) + ' ' + y + ' '; 
 newElement.d += 'L' + (x + width) + ' ' + (y + height) + ' '; 
 newElement.d += 'L' + x + ' ' + (y + height) + ' Z'; 
 return newElement; 
}; 
/** 
 * Read `polyline` element to extract and transform 
 * data, to make it ready for a `path` object. 
 * 
 * @param {DOMelement} element Polyline element to transform 
 * @return {object}       Data for a `path` element 
 */ 
Pathformer.prototype.polylineToPath = function (element) { 
 var newElement = {}, 
   points = element.points.trim().split(' '), 
   i, path; 
 // Reformatting if points are defined without commas 
 if (element.points.indexOf(',') === -1) { 
  var formattedPoints = []; 
  for (i = 0; i < points.length; i+=2) { 
   formattedPoints.push(points[i] + ',' + points[i+1]); 
  } 
  points = formattedPoints; 
 } 
 // Generate the path.d value 
 path = 'M' + points[0]; 
 for(i = 1; i < points.length; i++) { 
  if (points[i].indexOf(',') !== -1) { 
   path += 'L' + points[i]; 
  } 
 } 
 newElement.d = path; 
 return newElement; 
}; 
/** 
 * Read `polygon` element to extract and transform 
 * data, to make it ready for a `path` object. 
 * This method rely on polylineToPath, because the 
 * logic is similar. The path created is just closed, 
 * so it needs an 'Z' at the end. 
 * 
 * @param {DOMelement} element Polygon element to transform 
 * @return {object}       Data for a `path` element 
 */ 
Pathformer.prototype.polygonToPath = function (element) { 
 var newElement = Pathformer.prototype.polylineToPath(element); 
 newElement.d += 'Z'; 
 return newElement; 
}; 
/** 
 * Read `ellipse` element to extract and transform 
 * data, to make it ready for a `path` object. 
 * 
 * @param {DOMelement} element ellipse element to transform 
 * @return {object}       Data for a `path` element 
 */ 
Pathformer.prototype.ellipseToPath = function (element) { 
 var newElement = {}, 
   rx = parseFloat(element.rx) || 0, 
   ry = parseFloat(element.ry) || 0, 
   cx = parseFloat(element.cx) || 0, 
   cy = parseFloat(element.cy) || 0, 
   startX = cx - rx, 
   startY = cy, 
   endX = parseFloat(cx) + parseFloat(rx), 
   endY = cy; 
 newElement.d = 'M' + startX + ',' + startY + 
         'A' + rx + ',' + ry + ' 0,1,1 ' + endX + ',' + endY + 
         'A' + rx + ',' + ry + ' 0,1,1 ' + startX + ',' + endY; 
 return newElement; 
}; 
/** 
 * Read `circle` element to extract and transform 
 * data, to make it ready for a `path` object. 
 * 
 * @param {DOMelement} element Circle element to transform 
 * @return {object}       Data for a `path` element 
 */ 
Pathformer.prototype.circleToPath = function (element) { 
 var newElement = {}, 
   r = parseFloat(element.r) || 0, 
   cx = parseFloat(element.cx) || 0, 
   cy = parseFloat(element.cy) || 0, 
   startX = cx - r, 
   startY = cy, 
   endX = parseFloat(cx) + parseFloat(r), 
   endY = cy; 
 newElement.d = 'M' + startX + ',' + startY + 
         'A' + r + ',' + r + ' 0,1,1 ' + endX + ',' + endY + 
         'A' + r + ',' + r + ' 0,1,1 ' + startX + ',' + endY; 
 return newElement; 
}; 
/** 
 * Create `path` elements form original element 
 * and prepared objects 
 * 
 * @param {DOMelement} element Original element to transform 
 * @param {object} pathData   Path data (from `toPath` methods) 
 * @return {DOMelement}     Path element 
 */ 
Pathformer.prototype.pathMaker = function (element, pathData) { 
 var i, attr, pathTag = document.createElementNS('http://www.w3.org/2000/svg','path'); 
 for(i = 0; i < element.attributes.length; i++) { 
  attr = element.attributes[i]; 
  if (this.ATTR_WATCH.indexOf(attr.name) === -1) { 
   pathTag.setAttribute(attr.name, attr.value); 
  } 
 } 
 for(i in pathData) { 
  pathTag.setAttribute(i, pathData[i]); 
 } 
 return pathTag; 
}; 
/** 
 * Parse attributes of a DOM element to 
 * get an object of attribute => value 
 * 
 * @param {NamedNodeMap} attributes Attributes object from DOM element to parse 
 * @return {object}         Object of attributes 
 */ 
Pathformer.prototype.parseAttr = function (element) { 
 var attr, output = {}; 
 for (var i = 0; i < element.length; i++) { 
  attr = element[i]; 
  // Check if no data attribute contains '%', or the transformation is impossible 
  if (this.ATTR_WATCH.indexOf(attr.name) !== -1 && attr.value.indexOf('%') !== -1) { 
   throw new Error('Pathformer [parseAttr]: a SVG shape got values in percentage. This cannot be transformed into \'path\' tags. Please use \'viewBox\'.'); 
  } 
  output[attr.name] = attr.value; 
 } 
 return output; 
}; 
 'use strict'; 
var requestAnimFrame, cancelAnimFrame, parsePositiveInt; 
/** 
 * Vivus 
 * Beta version 
 * 
 * Take any SVG and make the animation 
 * to give give the impression of live drawing 
 * 
 * This in more than just inspired from codrops 
 * At that point, it's a pure fork. 
 */ 
/** 
 * Class constructor 
 * option structure 
 *  type: 'delayed'|'sync'|'oneByOne'|'script' (to know if the items must be drawn synchronously or not, default: delayed) 
 *  duration: <int> (in frames) 
 *  start: 'inViewport'|'manual'|'autostart' (start automatically the animation, default: inViewport) 
 *  delay: <int> (delay between the drawing of first and last path) 
 *  dashGap <integer> whitespace extra margin between dashes 
 *  pathTimingFunction <function> timing animation function for each path element of the SVG 
 *  animTimingFunction <function> timing animation function for the complete SVG 
 *  forceRender <boolean> force the browser to re-render all updated path items 
 *  selfDestroy <boolean> removes all extra styling on the SVG, and leaves it as original 
 * 
 * The attribute 'type' is by default on 'delayed'. 
 * - 'delayed' 
 *  all paths are draw at the same time but with a 
 *  little delay between them before start 
 * - 'sync' 
 *  all path are start and finish at the same time 
 * - 'oneByOne' 
 *  only one path is draw at the time 
 *  the end of the first one will trigger the draw 
 *  of the next one 
 * 
 * All these values can be overwritten individually 
 * for each path item in the SVG 
 * The value of frames will always take the advantage of 
 * the duration value. 
 * If you fail somewhere, an error will be thrown. 
 * Good luck. 
 * 
 * @constructor 
 * @this {Vivus} 
 * @param {DOM|String}  element Dom element of the SVG or id of it 
 * @param {Object}    options Options about the animation 
 * @param {Function}   callback Callback for the end of the animation 
 */ 
function Vivus (element, options, callback) { 
 // Setup 
 this.isReady = false; 
 this.setElement(element, options); 
 this.setOptions(options); 
 this.setCallback(callback); 
 if (this.isReady) { 
  this.init(); 
 } 
} 
/** 
 * Timing functions 
 ************************************** 
 * 
 * Default functions to help developers. 
 * It always take a number as parameter (between 0 to 1) then 
 * return a number (between 0 and 1) 
 */ 
Vivus.LINEAR     = function (x) {return x;}; 
Vivus.EASE      = function (x) {return -Math.cos(x * Math.PI) / 2 + 0.5;}; 
Vivus.EASE_OUT    = function (x) {return 1 - Math.pow(1-x, 3);}; 
Vivus.EASE_IN     = function (x) {return Math.pow(x, 3);}; 
Vivus.EASE_OUT_BOUNCE = function (x) { 
 var base = -Math.cos(x * (0.5 * Math.PI)) + 1, 
  rate = Math.pow(base,1.5), 
  rateR = Math.pow(1 - x, 2), 
  progress = -Math.abs(Math.cos(rate * (2.5 * Math.PI) )) + 1; 
 return (1- rateR) + (progress * rateR); 
}; 
/** 
 * Setters 
 ************************************** 
 */ 
/** 
 * Check and set the element in the instance 
 * The method will not return anything, but will throw an 
 * error if the parameter is invalid 
 * 
 * @param {DOM|String}  element SVG Dom element or id of it 
 */ 
Vivus.prototype.setElement = function (element, options) { 
 // Basic check 
 if (typeof element === 'undefined') { 
  throw new Error('Vivus [constructor]: "element" parameter is required'); 
 } 
 // Set the element 
 if (element.constructor === String) { 
  element = document.getElementById(element); 
  if (!element) { 
   throw new Error('Vivus [constructor]: "element" parameter is not related to an existing ID'); 
  } 
 } 
 this.parentEl = element; 
 // Create the object element if the property `file` exists in the options object 
 if (options && options.file) { 
  var objElm = document.createElement('object'); 
  objElm.setAttribute('type', 'image/svg+xml'); 
  objElm.setAttribute('data', options.file); 
  objElm.setAttribute('built-by-vivus', 'true'); 
  element.appendChild(objElm); 
  element = objElm; 
 } 
 switch (element.constructor) { 
 case window.SVGSVGElement: 
 case window.SVGElement: 
  this.el = element; 
  this.isReady = true; 
  break; 
 case window.HTMLObjectElement: 
  // If we have to wait for it 
  var onLoad, self; 
  self = this; 
  onLoad = function (e) { 
   if (self.isReady) { 
    return; 
   } 
   self.el = element.contentDocument && element.contentDocument.querySelector('svg'); 
   if (!self.el && e) { 
    throw new Error('Vivus [constructor]: object loaded does not contain any SVG'); 
   } 
   else if (self.el) { 
    if (element.getAttribute('built-by-vivus')) { 
     self.parentEl.insertBefore(self.el, element); 
     self.parentEl.removeChild(element); 
     self.el.setAttribute('width', '100%'); 
     self.el.setAttribute('height', '100%'); 
    } 
    self.isReady = true; 
    self.init(); 
    return true; 
   } 
  }; 
  if (!onLoad()) { 
   element.addEventListener('load', onLoad); 
  } 
  break; 
 default: 
  throw new Error('Vivus [constructor]: "element" parameter is not valid (or miss the "file" attribute)'); 
 } 
}; 
/** 
 * Set up user option to the instance 
 * The method will not return anything, but will throw an 
 * error if the parameter is invalid 
 * 
 * @param {object} options Object from the constructor 
 */ 
Vivus.prototype.setOptions = function (options) { 
 var allowedTypes = ['delayed', 'sync', 'async', 'nsync', 'oneByOne', 'scenario', 'scenario-sync']; 
 var allowedStarts = ['inViewport', 'manual', 'autostart']; 
 // Basic check 
 if (options !== undefined && options.constructor !== Object) { 
  throw new Error('Vivus [constructor]: "options" parameter must be an object'); 
 } 
 else { 
  options = options || {}; 
 } 
 // Set the animation type 
 if (options.type && allowedTypes.indexOf(options.type) === -1) { 
  throw new Error('Vivus [constructor]: ' + options.type + ' is not an existing animation `type`'); 
 } 
 else { 
  this.type = options.type || allowedTypes[0]; 
 } 
 // Set the start type 
 if (options.start && allowedStarts.indexOf(options.start) === -1) { 
  throw new Error('Vivus [constructor]: ' + options.start + ' is not an existing `start` option'); 
 } 
 else { 
  this.start = options.start || allowedStarts[0]; 
 } 
 this.isIE     = (window.navigator.userAgent.indexOf('MSIE') !== -1 || window.navigator.userAgent.indexOf('Trident/') !== -1 || window.navigator.userAgent.indexOf('Edge/') !== -1 ); 
 this.duration   = parsePositiveInt(options.duration, 120); 
 this.delay    = parsePositiveInt(options.delay, null); 
 this.dashGap   = parsePositiveInt(options.dashGap, 1); 
 this.forceRender = options.hasOwnProperty('forceRender') ? !!options.forceRender : this.isIE; 
 this.reverseStack = !!options.reverseStack; 
 this.selfDestroy = !!options.selfDestroy; 
 this.onReady   = options.onReady; 
 this.map     = []; 
 this.frameLength = this.currentFrame = this.delayUnit = this.speed = this.handle = null; 
 this.ignoreInvisible = options.hasOwnProperty('ignoreInvisible') ? !!options.ignoreInvisible : false; 
 this.animTimingFunction = options.animTimingFunction || Vivus.LINEAR; 
 this.pathTimingFunction = options.pathTimingFunction || Vivus.LINEAR; 
 if (this.delay >= this.duration) { 
  throw new Error('Vivus [constructor]: delay must be shorter than duration'); 
 } 
}; 
/** 
 * Set up callback to the instance 
 * The method will not return enything, but will throw an 
 * error if the parameter is invalid 
 * 
 * @param {Function} callback Callback for the animation end 
 */ 
Vivus.prototype.setCallback = function (callback) { 
 // Basic check 
 if (!!callback && callback.constructor !== Function) { 
  throw new Error('Vivus [constructor]: "callback" parameter must be a function'); 
 } 
 this.callback = callback || function () {}; 
}; 
/** 
 * Core 
 ************************************** 
 */ 
/** 
 * Map the svg, path by path. 
 * The method return nothing, it just fill the 
 * `map` array. Each item in this array represent 
 * a path element from the SVG, with informations for 
 * the animation. 
 * 
 * ``` 
 * [ 
 *  { 
 *   el: <DOMobj> the path element 
 *   length: <number> length of the path line 
 *   startAt: <number> time start of the path animation (in frames) 
 *   duration: <number> path animation duration (in frames) 
 *  }, 
 *  ... 
 * ] 
 * ``` 
 * 
 */ 
Vivus.prototype.mapping = function () { 
 var i, paths, path, pAttrs, pathObj, totalLength, lengthMeter, timePoint; 
 timePoint = totalLength = lengthMeter = 0; 
 paths = this.el.querySelectorAll('path'); 
 for (i = 0; i < paths.length; i++) { 
  path = paths[i]; 
  if (this.isInvisible(path)) { 
   continue; 
  } 
  pathObj = { 
   el: path, 
   length: Math.ceil(path.getTotalLength()) 
  }; 
  // Test if the path length is correct 
  if (isNaN(pathObj.length)) { 
   if (window.console && console.warn) { 
    console.warn('Vivus [mapping]: cannot retrieve a path element length', path); 
   } 
   continue; 
  } 
  this.map.push(pathObj); 
  path.style.strokeDasharray = pathObj.length + ' ' + (pathObj.length + this.dashGap * 2); 
  path.style.strokeDashoffset = pathObj.length + this.dashGap; 
  pathObj.length += this.dashGap; 
  totalLength += pathObj.length; 
  this.renderPath(i); 
 } 
 totalLength = totalLength === 0 ? 1 : totalLength; 
 this.delay = this.delay === null ? this.duration / 3 : this.delay; 
 this.delayUnit = this.delay / (paths.length > 1 ? paths.length - 1 : 1); 
 // Reverse stack if asked 
 if (this.reverseStack) { 
  this.map.reverse(); 
 } 
 for (i = 0; i < this.map.length; i++) { 
  pathObj = this.map[i]; 
  switch (this.type) { 
  case 'delayed': 
   pathObj.startAt = this.delayUnit * i; 
   pathObj.duration = this.duration - this.delay; 
   break; 
  case 'oneByOne': 
   pathObj.startAt = lengthMeter / totalLength * this.duration; 
   pathObj.duration = pathObj.length / totalLength * this.duration; 
   break; 
  case 'sync': 
  case 'async': 
  case 'nsync': 
   pathObj.startAt = 0; 
   pathObj.duration = this.duration; 
   break; 
  case 'scenario-sync': 
   path = pathObj.el; 
   pAttrs = this.parseAttr(path); 
   pathObj.startAt = timePoint + (parsePositiveInt(pAttrs['data-delay'], this.delayUnit) || 0); 
   pathObj.duration = parsePositiveInt(pAttrs['data-duration'], this.duration); 
   timePoint = pAttrs['data-async'] !== undefined ? pathObj.startAt : pathObj.startAt + pathObj.duration; 
   this.frameLength = Math.max(this.frameLength, (pathObj.startAt + pathObj.duration)); 
   break; 
  case 'scenario': 
   path = pathObj.el; 
   pAttrs = this.parseAttr(path); 
   pathObj.startAt = parsePositiveInt(pAttrs['data-start'], this.delayUnit) || 0; 
   pathObj.duration = parsePositiveInt(pAttrs['data-duration'], this.duration); 
   this.frameLength = Math.max(this.frameLength, (pathObj.startAt + pathObj.duration)); 
   break; 
  } 
  lengthMeter += pathObj.length; 
  this.frameLength = this.frameLength || this.duration; 
 } 
}; 
/** 
 * Interval method to draw the SVG from current 
 * position of the animation. It update the value of 
 * `currentFrame` and re-trace the SVG. 
 * 
 * It use this.handle to store the requestAnimationFrame 
 * and clear it one the animation is stopped. So this 
 * attribute can be used to know if the animation is 
 * playing. 
 * 
 * Once the animation at the end, this method will 
 * trigger the Vivus callback. 
 * 
 */ 
Vivus.prototype.drawer = function () { 
 var self = this; 
 this.currentFrame += this.speed; 
 if (this.currentFrame <= 0) { 
  this.stop(); 
  this.reset(); 
 } else if (this.currentFrame >= this.frameLength) { 
  this.stop(); 
  this.currentFrame = this.frameLength; 
  this.trace(); 
  if (this.selfDestroy) { 
   this.destroy(); 
  } 
 } else { 
  this.trace(); 
  this.handle = requestAnimFrame(function () { 
   self.drawer(); 
  }); 
  return; 
 } 
 this.callback(this); 
 if (this.instanceCallback) { 
  this.instanceCallback(this); 
  this.instanceCallback = null; 
 } 
}; 
/** 
 * Draw the SVG at the current instant from the 
 * `currentFrame` value. Here is where most of the magic is. 
 * The trick is to use the `strokeDashoffset` style property. 
 * 
 * For optimisation reasons, a new property called `progress` 
 * is added in each item of `map`. This one contain the current 
 * progress of the path element. Only if the new value is different 
 * the new value will be applied to the DOM element. This 
 * method save a lot of resources to re-render the SVG. And could 
 * be improved if the animation couldn't be played forward. 
 * 
 */ 
Vivus.prototype.trace = function () { 
 var i, progress, path, currentFrame; 
 currentFrame = this.animTimingFunction(this.currentFrame / this.frameLength) * this.frameLength; 
 for (i = 0; i < this.map.length; i++) { 
  path = this.map[i]; 
  progress = (currentFrame - path.startAt) / path.duration; 
  progress = this.pathTimingFunction(Math.max(0, Math.min(1, progress))); 
  if (path.progress !== progress) { 
   path.progress = progress; 
   path.el.style.strokeDashoffset = Math.floor(path.length * (1 - progress)); 
   this.renderPath(i); 
  } 
 } 
}; 
/** 
 * Method forcing the browser to re-render a path element 
 * from it's index in the map. Depending on the `forceRender` 
 * value. 
 * The trick is to replace the path element by it's clone. 
 * This practice is not recommended because it's asking more 
 * ressources, too much DOM manupulation.. 
 * but it's the only way to let the magic happen on IE. 
 * By default, this fallback is only applied on IE. 
 * 
 * @param {Number} index Path index 
 */ 
Vivus.prototype.renderPath = function (index) { 
 if (this.forceRender && this.map && this.map[index]) { 
  var pathObj = this.map[index], 
    newPath = pathObj.el.cloneNode(true); 
  pathObj.el.parentNode.replaceChild(newPath, pathObj.el); 
  pathObj.el = newPath; 
 } 
}; 
/** 
 * When the SVG object is loaded and ready, 
 * this method will continue the initialisation. 
 * 
 * This this mainly due to the case of passing an 
 * object tag in the constructor. It will wait 
 * the end of the loading to initialise. 
 * 
 */ 
Vivus.prototype.init = function () { 
 // Set object variables 
 this.frameLength = 0; 
 this.currentFrame = 0; 
 this.map = []; 
 // Start 
 new Pathformer(this.el); 
 this.mapping(); 
 this.starter(); 
 if (this.onReady) { 
  this.onReady(this); 
 } 
}; 
/** 
 * Trigger to start of the animation. 
 * Depending on the `start` value, a different script 
 * will be applied. 
 * 
 * If the `start` value is not valid, an error will be thrown. 
 * Even if technically, this is impossible. 
 * 
 */ 
Vivus.prototype.starter = function () { 
 switch (this.start) { 
 case 'manual': 
  return; 
 case 'autostart': 
  this.play(); 
  break; 
 case 'inViewport': 
  var self = this, 
  listener = function () { 
   if (self.isInViewport(self.parentEl, 1)) { 
    self.play(); 
    window.removeEventListener('scroll', listener); 
   } 
  }; 
  window.addEventListener('scroll', listener); 
  listener(); 
  break; 
 } 
}; 
/** 
 * Controls 
 ************************************** 
 */ 
/** 
 * Get the current status of the animation between 
 * three different states: 'start', 'progress', 'end'. 
 * @return {string} Instance status 
 */ 
Vivus.prototype.getStatus = function () { 
 return this.currentFrame === 0 ? 'start' : this.currentFrame === this.frameLength ? 'end' : 'progress'; 
}; 
/** 
 * Reset the instance to the initial state : undraw 
 * Be careful, it just reset the animation, if you're 
 * playing the animation, this won't stop it. But just 
 * make it start from start. 
 * 
 */ 
Vivus.prototype.reset = function () { 
 return this.setFrameProgress(0); 
}; 
/** 
 * Set the instance to the final state : drawn 
 * Be careful, it just set the animation, if you're 
 * playing the animation on rewind, this won't stop it. 
 * But just make it start from the end. 
 * 
 */ 
Vivus.prototype.finish = function () { 
 return this.setFrameProgress(1); 
}; 
/** 
 * Set the level of progress of the drawing. 
 * 
 * @param {number} progress Level of progress to set 
 */ 
Vivus.prototype.setFrameProgress = function (progress) { 
 progress = Math.min(1, Math.max(0, progress)); 
 this.currentFrame = Math.round(this.frameLength * progress); 
 this.trace(); 
 return this; 
}; 
/** 
 * Play the animation at the desired speed. 
 * Speed must be a valid number (no zero). 
 * By default, the speed value is 1. 
 * But a negative value is accepted to go forward. 
 * 
 * And works with float too. 
 * But don't forget we are in JavaScript, se be nice 
 * with him and give him a 1/2^x value. 
 * 
 * @param {number} speed Animation speed [optional] 
 */ 
Vivus.prototype.play = function (speed, callback) { 
 this.instanceCallback = null; 
 if (speed && typeof speed === 'function') { 
  this.instanceCallback = speed; // first parameter is actually the callback function 
  speed = null; 
 } 
 else if (speed && typeof speed !== 'number') { 
  throw new Error('Vivus [play]: invalid speed'); 
 } 
 // if the first parameter wasn't the callback, check if the seconds was 
 if (callback && typeof(callback) === 'function' && !this.instanceCallback) { 
  this.instanceCallback = callback; 
 } 
 this.speed = speed || 1; 
 if (!this.handle) { 
  this.drawer(); 
 } 
 return this; 
}; 
/** 
 * Stop the current animation, if on progress. 
 * Should not trigger any error. 
 * 
 */ 
Vivus.prototype.stop = function () { 
 if (this.handle) { 
  cancelAnimFrame(this.handle); 
  this.handle = null; 
 } 
 return this; 
}; 
/** 
 * Destroy the instance. 
 * Remove all bad styling attributes on all 
 * path tags 
 * 
 */ 
Vivus.prototype.destroy = function () { 
 this.stop(); 
 var i, path; 
 for (i = 0; i < this.map.length; i++) { 
  path = this.map[i]; 
  path.el.style.strokeDashoffset = null; 
  path.el.style.strokeDasharray = null; 
  this.renderPath(i); 
 } 
}; 
/** 
 * Utils methods 
 * include methods from Codrops 
 ************************************** 
 */ 
/** 
 * Method to best guess if a path should added into 
 * the animation or not. 
 * 
 * 1. Use the `data-vivus-ignore` attribute if set 
 * 2. Check if the instance must ignore invisible paths 
 * 3. Check if the path is visible 
 * 
 * For now the visibility checking is unstable. 
 * It will be used for a beta phase. 
 * 
 * Other improvments are planned. Like detecting 
 * is the path got a stroke or a valid opacity. 
 */ 
Vivus.prototype.isInvisible = function (el) { 
 var rect, 
  ignoreAttr = el.getAttribute('data-ignore'); 
 if (ignoreAttr !== null) { 
  return ignoreAttr !== 'false'; 
 } 
 if (this.ignoreInvisible) { 
  rect = el.getBoundingClientRect(); 
  return !rect.width && !rect.height; 
 } 
 else { 
  return false; 
 } 
}; 
/** 
 * Parse attributes of a DOM element to 
 * get an object of {attributeName => attributeValue} 
 * 
 * @param {object} element DOM element to parse 
 * @return {object}     Object of attributes 
 */ 
Vivus.prototype.parseAttr = function (element) { 
 var attr, output = {}; 
 if (element && element.attributes) { 
  for (var i = 0; i < element.attributes.length; i++) { 
   attr = element.attributes[i]; 
   output[attr.name] = attr.value; 
  } 
 } 
 return output; 
}; 
/** 
 * Reply if an element is in the page viewport 
 * 
 * @param {object} el Element to observe 
 * @param {number} h Percentage of height 
 * @return {boolean} 
 */ 
Vivus.prototype.isInViewport = function (el, h) { 
 var scrolled  = this.scrollY(), 
  viewed    = scrolled + this.getViewportH(), 
  elBCR    = el.getBoundingClientRect(), 
  elHeight   = elBCR.height, 
  elTop    = scrolled + elBCR.top, 
  elBottom   = elTop + elHeight; 
 // if 0, the element is considered in the viewport as soon as it enters. 
 // if 1, the element is considered in the viewport only when it's fully inside 
 // value in percentage (1 >= h >= 0) 
 h = h || 0; 
 return (elTop + elHeight * h) <= viewed && (elBottom) >= scrolled; 
}; 
/** 
 * Alias for document element 
 * 
 * @type {DOMelement} 
 */ 
Vivus.prototype.docElem = window.document.documentElement; 
/** 
 * Get the viewport height in pixels 
 * 
 * @return {integer} Viewport height 
 */ 
Vivus.prototype.getViewportH = function () { 
 var client = this.docElem.clientHeight, 
  inner = window.innerHeight; 
 if (client < inner) { 
  return inner; 
 } 
 else { 
  return client; 
 } 
}; 
/** 
 * Get the page Y offset 
 * 
 * @return {integer} Page Y offset 
 */ 
Vivus.prototype.scrollY = function () { 
 return window.pageYOffset || this.docElem.scrollTop; 
}; 
/** 
 * Alias for `requestAnimationFrame` or 
 * `setTimeout` function for deprecated browsers. 
 * 
 */ 
requestAnimFrame = (function () { 
 return ( 
  window.requestAnimationFrame    || 
  window.webkitRequestAnimationFrame || 
  window.mozRequestAnimationFrame  || 
  window.oRequestAnimationFrame   || 
  window.msRequestAnimationFrame   || 
  function(/* function */ callback){ 
   return window.setTimeout(callback, 1000 / 60); 
  } 
 ); 
})(); 
/** 
 * Alias for `cancelAnimationFrame` or 
 * `cancelTimeout` function for deprecated browsers. 
 * 
 */ 
cancelAnimFrame = (function () { 
 return ( 
  window.cancelAnimationFrame    || 
  window.webkitCancelAnimationFrame || 
  window.mozCancelAnimationFrame  || 
  window.oCancelAnimationFrame   || 
  window.msCancelAnimationFrame   || 
  function(id){ 
   return window.clearTimeout(id); 
  } 
 ); 
})(); 
/** 
 * Parse string to integer. 
 * If the number is not positive or null 
 * the method will return the default value 
 * or 0 if undefined 
 * 
 * @param {string} value String to parse 
 * @param {*} defaultValue Value to return if the result parsed is invalid 
 * @return {number} 
 * 
 */ 
parsePositiveInt = function (value, defaultValue) { 
 var output = parseInt(value, 10); 
 return (output >= 0) ? output : defaultValue; 
}; 
 if (typeof define === 'function' && define.amd) { 
  // AMD. Register as an anonymous module. 
  define([], function() { 
   return Vivus; 
  }); 
 } else if (typeof exports === 'object') { 
  // Node. Does not work with strict CommonJS, but 
  // only CommonJS-like environments that support module.exports, 
  // like Node. 
  module.exports = Vivus; 
 } else { 
  // Browser globals 
  window.Vivus = Vivus; 
 } 
}(window, document)); 

總結(jié)

以上所述是小編給大家介紹的SVG動畫vivus.js庫使用小結(jié)(實例代碼),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • js簡單時間比較的方法

    js簡單時間比較的方法

    這篇文章主要介紹了js簡單時間比較的方法,通過2個自定義函數(shù)實現(xiàn)針對時間與日期的比較功能,涉及javascript日期及時間換算與比較操作相關(guān)技巧,需要的朋友可以參考下
    2016-08-08
  • JavaScript實現(xiàn)向右伸出的多級網(wǎng)頁菜單效果

    JavaScript實現(xiàn)向右伸出的多級網(wǎng)頁菜單效果

    這篇文章主要介紹了JavaScript實現(xiàn)向右伸出的多級網(wǎng)頁菜單效果,通過javascript調(diào)用頁面元素屬性的動態(tài)改變實現(xiàn)向右展開菜單效果,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • javascript中for...of和for..in循環(huán)的區(qū)別

    javascript中for...of和for..in循環(huán)的區(qū)別

    JS中循環(huán)語句眾多,你是否也有用的時候突然不知道用哪個的經(jīng)歷,本文主要介紹了javascript中for...of和for..in循環(huán)的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Flexible.js可伸縮布局實現(xiàn)方法詳解

    Flexible.js可伸縮布局實現(xiàn)方法詳解

    這篇文章主要介紹了Flexible.js可伸縮布局實現(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • layui動態(tài)加載多表頭的實例

    layui動態(tài)加載多表頭的實例

    今天小編就為大家分享一篇layui動態(tài)加載多表頭的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • Echarts?graph關(guān)系圖的使用入門級教程

    Echarts?graph關(guān)系圖的使用入門級教程

    近期需要使用echarts關(guān)系圖,這里給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于Echarts?graph關(guān)系圖使用的相關(guān)資料,文中給出了詳細(xì)的代碼介紹,需要的朋友可以參考下
    2024-01-01
  • JS實現(xiàn)很酷的EMAIL地址添加功能實例

    JS實現(xiàn)很酷的EMAIL地址添加功能實例

    這篇文章主要介紹了JS實現(xiàn)很酷的EMAIL地址添加功能,實例分析了javascript操作text文本的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • canvas繪制七巧板

    canvas繪制七巧板

    本文主要分享了canvas繪制七巧板的示例代碼。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • websocket直接繞過JS加密示例及思路原理

    websocket直接繞過JS加密示例及思路原理

    這篇文章主要為大家介紹了websocket直接繞過JS加密的示例及思路原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • 通過微信公眾平臺獲取公眾號文章的方法示例

    通過微信公眾平臺獲取公眾號文章的方法示例

    這篇文章主要介紹了通過微信公眾平臺獲取公眾號文章的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12

最新評論

欧美成人小视频在线免费看| 亚洲成人av一区在线| 午夜精品九一唐人麻豆嫩草成人| 欧美日韩熟女一区二区三区| 777奇米久久精品一区| 免费十精品十国产网站| 亚洲公开视频在线观看| 久久www免费人成一看片| 欧洲国产成人精品91铁牛tv| 中文字幕av熟女人妻| 国产一区二区欧美三区| 日韩av有码一区二区三区4| 成人伊人精品色xxxx视频| 日韩中文字幕在线播放第二页| gay gay男男瑟瑟在线网站| 在线观看国产网站资源| 伊人成人在线综合网| 日韩国产乱码中文字幕| 成人亚洲国产综合精品| 另类av十亚洲av| 亚洲欧美色一区二区| 亚洲伊人色一综合网| 午夜激情精品福利视频| 午夜毛片不卡在线看| www,久久久,com| 大鸡吧插入女阴道黄色片| 亚洲自拍偷拍综合色| 久久精品国产23696| 在线观看黄色成年人网站 | 国产超码片内射在线| 99久久99久国产黄毛片| 成人免费毛片aaaa| 日本脱亚入欧是指什么| 国产一区二区火爆视频| 国产超码片内射在线| 亚洲熟妇x久久av久久| 日韩av熟妇在线观看| 91传媒一区二区三区| 亚洲男人让女人爽的视频| 久久久久久久久久一区二区三区 | 99久久久无码国产精品性出奶水| 国产97视频在线精品| 馒头大胆亚洲一区二区| 大香蕉福利在线观看| 免费在线观看污污视频网站| 中文字幕 码 在线视频| 日韩不卡中文在线视频网站| 中文字幕人妻熟女在线电影| 久久精品国产999| 馒头大胆亚洲一区二区| 欧美一级片免费在线成人观看| 最新日韩av传媒在线| 亚洲女人的天堂av| 亚洲人一区二区中文字幕| 啊啊啊视频试看人妻| 五月天中文字幕内射| 动漫黑丝美女的鸡巴| 可以免费看的www视频你懂的| 久久综合老鸭窝色综合久久| 另类av十亚洲av| 国产老熟女伦老熟妇ⅹ| 久久国产精品精品美女| av线天堂在线观看| 青草亚洲视频在线观看| 日韩a级黄色小视频| 亚洲精品久久视频婷婷| 日韩精品电影亚洲一区| 亚洲免费va在线播放| av在线资源中文字幕| 日韩三级电影华丽的外出| 熟女人妻三十路四十路人妻斩| 国产精品视频资源在线播放| 免费福利av在线一区二区三区| 97香蕉碰碰人妻国产樱花| 国产丰满熟女成人视频| 精品91高清在线观看| 中文字幕一区二 区二三区四区 | 亚洲一区二区三区在线高清| 很黄很污很色的午夜网站在线观看| 青娱乐最新视频在线| 久草视频在线看免费| 丰满的继坶3中文在线观看| 中文字幕日韩无敌亚洲精品| 欧美成人精品在线观看| 久久三久久三久久三久久| 最新国产亚洲精品中文在线| 亚洲精品乱码久久久本| 三级av中文字幕在线观看| 欧美久久久久久三级网| 日本一区美女福利视频| 色吉吉影音天天干天天操| 亚洲福利午夜久久久精品电影网| 五月婷婷在线观看视频免费| 2019av在线视频| 天天日天天操天天摸天天舔| 不卡日韩av在线观看| 亚洲av自拍天堂网| 日本特级片中文字幕| 66久久久久久久久久久| 成人av免费不卡在线观看| 色秀欧美视频第一页| 日本一二三区不卡无| AV无码一区二区三区不卡| 性生活第二下硬不起来| 国产高清97在线观看视频| 亚洲一区二区三区偷拍女厕91| av中文字幕网址在线| 77久久久久国产精产品| 亚洲一区二区三区久久午夜| 97人妻人人澡爽人人精品| 婷婷综合蜜桃av在线| 91精品国产91久久自产久强| 亚洲人妻国产精品综合| 超碰97人人澡人人| 国产成人精品一区在线观看| 快点插进来操我逼啊视频| 精品乱子伦一区二区三区免费播| 亚洲av色图18p| 国产在线免费观看成人| 日韩美女综合中文字幕pp| 国产精品欧美日韩区二区| 97人妻夜夜爽二区欧美极品| 老司机99精品视频在线观看| 沈阳熟妇28厘米大战黑人| 99热国产精品666| 综合精品久久久久97| 中文字幕熟女人妻久久久| 在线成人日韩av电影| 馒头大胆亚洲一区二区| 亚洲熟女综合色一区二区三区四区| 大鸡巴插入美女黑黑的阴毛| 国产 在线 免费 精品| 天天做天天干天天操天天射| 天天操天天爽天天干| 99久久成人日韩欧美精品| 亚洲成人黄色一区二区三区| 日韩欧美一级黄片亚洲| 夜夜操,天天操,狠狠操| 天天操天天干天天艹| 4个黑人操素人视频网站精品91| 天天操天天爽天天干| 欧美aa一级一区三区四区 | 中文字幕AV在线免费看 | 91精品国产高清自在线看香蕉网 | 国产精品自拍偷拍a| 在线免费观看亚洲精品电影| 日韩a级精品一区二区| 熟女俱乐部一二三区| 久久久久久久99精品| 免费手机黄页网址大全| 精品久久婷婷免费视频| 91国产在线免费播放| 男人在床上插女人视频| 亚洲成高清a人片在线观看| 亚洲国产精品久久久久久6| 国产熟妇一区二区三区av| 亚洲另类伦春色综合小| 国产av国片精品一区二区| 操日韩美女视频在线免费看| 亚洲一区二区三区精品乱码| 91一区精品在线观看| 99re6热在线精品| 国产午夜福利av导航| 农村胖女人操逼视频| 亚洲高清自偷揄拍自拍| 97精品综合久久在线| 亚洲国产美女一区二区三区软件| 亚洲最大黄 嗯色 操 啊| 阴茎插到阴道里面的视频| 欧美一区二区三区在线资源 | 人妻少妇性色欲欧美日韩| 亚洲码av无色中文| 久久久久久cao我的性感人妻| 亚洲av黄色在线网站| 大陆精品一区二区三区久久| av乱码一区二区三区| 免费在线黄色观看网站| 亚洲超碰97人人做人人爱| ka0ri在线视频| 美女福利视频网址导航| 日韩中文字幕在线播放第二页| 在线视频这里只有精品自拍| 视频在线免费观看你懂得| 早川濑里奈av黑人番号| 最后99天全集在线观看| 天天射夜夜操狠狠干| 护士特殊服务久久久久久久| v888av在线观看视频| 国产高清在线在线视频| 久久免看30视频口爆视频| 91福利视频免费在线观看| 欧美另类z0z变态| 国产aⅴ一线在线观看| 国产激情av网站在线观看| 中文人妻AV久久人妻水| 国产精品一区二区av国| 亚洲粉嫩av一区二区三区| 黄片大全在线观看观看| 99热99re在线播放| 色婷婷综合激情五月免费观看| 成年人该看的视频黄免费| 欧美精品一二三视频| 自拍偷拍 国产资源| 青青草国内在线视频精选| 爆乳骚货内射骚货内射在线 | 国产成人精品福利短视频| 无码国产精品一区二区高潮久久4 日韩欧美一级精品在线观看 | 天天日天天天天天天天天天天 | 在线观看国产网站资源| 又粗又硬又猛又黄免费30| 性感美女福利视频网站| av在线免费观看亚洲天堂| 精品乱子伦一区二区三区免费播| 又大又湿又爽又紧A视频| 黄色三级网站免费下载| 日本少妇高清视频xxxxx| av网站色偷偷婷婷网男人的天堂| 四川五十路熟女av| 午夜精品福利一区二区三区p| 丝袜美腿欧美另类 中文字幕| 青青青青青手机视频| 男生舔女生逼逼视频| 久久久久国产成人精品亚洲午夜| 日韩美女精品视频在线观看网站| 亚洲成人免费看电影| 天天操天天操天天碰| 国产av国片精品一区二区| 91精品免费久久久久久| 国产视频一区在线观看| 亚洲熟妇无码一区二区三区| 欧美香蕉人妻精品一区二区| 婷婷六月天中文字幕| 美女福利视频网址导航| 激情人妻校园春色亚洲欧美 | 91久久国产成人免费网站| 亚洲特黄aaaa片| 大白屁股精品视频国产| 韩国三级aaaaa高清视频| 五十路熟女av天堂| 亚洲国产最大av综合| 成人sm视频在线观看| 欧美日韩激情啪啪啪| 国产真实灌醉下药美女av福利| 熟女俱乐部一二三区| 91老师蜜桃臀大屁股| 班长撕开乳罩揉我胸好爽| 在线观看操大逼视频| 中文字幕av熟女人妻| 亚洲高清免费在线观看视频| 欧美 亚洲 另类综合| 欧亚日韩一区二区三区观看视频| 中文字母永久播放1区2区3区| 熟女人妻在线中出观看完整版| 水蜜桃一区二区三区在线观看视频 | 亚洲精品在线资源站| 久久久极品久久蜜桃| 国产精品久久久久久久女人18| 男生舔女生逼逼的视频| 国产欧美日韩第三页| 99精品久久久久久久91蜜桃| 国产极品精品免费视频| 国产精品伦理片一区二区| 中文字幕在线乱码一区二区| 香港三日本三韩国三欧美三级| 天天操天天干天天插| 亚洲综合色在线免费观看| 天天干天天操天天扣| 国产精品午夜国产小视频| 五月色婷婷综合开心网4438| 懂色av蜜桃a v| 美女在线观看日本亚洲一区| 插逼视频双插洞国产操逼插洞| 扒开腿挺进肉嫩小18禁视频| aⅴ五十路av熟女中出| 男生舔女生逼逼视频| 91久久人澡人人添人人爽乱| 天天干天天操天天插天天日| 亚洲色偷偷综合亚洲AV伊人| 1000部国产精品成人观看视频| 国产日韩精品一二三区久久久| 中文字幕人妻一区二区视频| 国产一级精品综合av| aⅴ五十路av熟女中出| 天天日天天敢天天干| 国产精品自拍在线视频| 91大神福利视频网| 人妻久久久精品69系列| 婷婷久久久综合中文字幕| 亚洲欧美人精品高清| 一级a看免费观看网站| 男人操女人的逼免费视频| av完全免费在线观看av| 适合午夜一个人看的视频| 亚洲一级av无码一级久久精品| 婷婷午夜国产精品久久久| 天天干天天操天天爽天天摸| 91香蕉成人app下载| 成人av天堂丝袜在线观看| 色综合天天综合网国产成人| 亚洲一区二区三区uij| 亚洲精品福利网站图片| 黄片三级三级三级在线观看| 午夜精品福利91av| av大全在线播放免费| 自拍 日韩 欧美激情| 亚洲午夜高清在线观看| 丰满的子国产在线观看| 夜夜嗨av一区二区三区中文字幕| 亚洲无码一区在线影院| 蜜臀av久久久久久久| 成人在线欧美日韩国产| 免费在线黄色观看网站| 偷青青国产精品青青在线观看 | 99久久99一区二区三区| 丰满少妇人妻xxxxx| 国产剧情演绎系列丝袜高跟| 福利在线视频网址导航 | 亚洲成人线上免费视频观看| 亚洲 自拍 色综合图| 国产大学生援交正在播放| 久久香蕉国产免费天天| 日本五十路熟新垣里子| av高潮迭起在线观看| 91亚洲国产成人精品性色| 性色蜜臀av一区二区三区| 欧美日韩高清午夜蜜桃大香蕉| 激情色图一区二区三区| 中文字幕人妻三级在线观看| 天堂女人av一区二区| 亚洲精品久久视频婷婷| 亚洲综合乱码一区二区| 在线播放 日韩 av| 亚洲专区激情在线观看视频| 国产中文精品在线观看| 天天干夜夜操啊啊啊| 在线亚洲天堂色播av电影| 九色精品视频在线播放| av手机在线观播放网站| 日本一区精品视频在线观看| 在线成人日韩av电影| huangse网站在线观看| 天天操天天爽天天干| 成人区人妻精品一区二视频| 男人和女人激情视频| 亚洲中文字幕人妻一区| 日韩美女福利视频网| 久久久久久久久久性潮| 欧美男同性恋69视频| 欧美男人大鸡吧插女人视频| 日本后入视频在线观看| www,久久久,com| 欧美黑人与人妻精品| 18禁美女羞羞免费网站| 久久免费看少妇高潮完整版| 都市激情校园春色狠狠| 成年女人免费播放视频| 在线观看视频网站麻豆| 福利片区一区二体验区| 精品亚洲国产中文自在线| 蜜桃色婷婷久久久福利在线| 都市激情校园春色狠狠| 精品久久久久久久久久久99| 91 亚洲视频在线观看| 这里有精品成人国产99| 成年午夜影片国产片| 91人妻人人做人人爽在线| av日韩在线免费播放| 天天插天天色天天日| 端庄人妻堕落挣扎沉沦| 亚洲成人激情av在线| 欧美精品伦理三区四区| 91精品综合久久久久3d动漫| 国产午夜福利av导航| 欧美国品一二三产区区别| 日本高清撒尿pissing| 自拍偷拍日韩欧美亚洲| 精品久久久久久高潮| 精品一区二区三区三区色爱| 国产露脸对白在线观看| 国产普通话插插视频| 亚洲va天堂va国产va久| 大黑人性xxxxbbbb| 日视频免费在线观看| 精品乱子伦一区二区三区免费播| 国产一区二区三免费视频| 在线播放国产黄色av| 老司机深夜免费福利视频在线观看| 97国产福利小视频合集| 亚洲精品 欧美日韩| 中文 成人 在线 视频| 日本午夜福利免费视频| 天天干天天操天天玩天天射| 天天干天天操天天爽天天摸 | 天天爽夜夜爽人人爽QC| 免费高清自慰一区二区三区网站| 精品成人午夜免费看| 欧美日韩v中文在线| 国产美女午夜福利久久| 久久国产精品精品美女| 91久久精品色伊人6882| 在线免费观看欧美小视频| 亚洲免费av在线视频| aiss午夜免费视频| 丝袜国产专区在线观看| 欧美地区一二三专区| 日本美女性生活一级片| 久久午夜夜伦痒痒想咳嗽P| 最新黄色av网站在线观看| 成年人中文字幕在线观看| 黄色片年轻人在线观看| 伊人综合aⅴ在线网| 国产日韩精品电影7777| 亚洲欧美福利在线观看| 激情图片日韩欧美人妻| 亚洲国产精品久久久久久6| 国产女孩喷水在线观看| 新婚人妻聚会被中出| 欧美精品欧美极品欧美视频| 春色激情网欧美成人| 91久久精品色伊人6882| 亚洲一区av中文字幕在线观看| 中国视频一区二区三区| 女同性ⅹxx女同h偷拍| 亚洲欧美一区二区三区爱爱动图 | 亚洲最大黄 嗯色 操 啊| 中文字幕第1页av一天堂网| 欧美色婷婷综合在线| 一区二区三区日本伦理| 亚洲欧美精品综合图片小说| 天天爽夜夜爽人人爽QC| 18禁免费av网站| 色97视频在线播放| 国产高清在线在线视频| 青青青青青免费视频| 粉嫩av蜜乳av蜜臀| 1769国产精品视频免费观看| 欧美偷拍亚洲一区二区| 国产精品视频欧美一区二区| 日韩欧美一级精品在线观看| 午夜蜜桃一区二区三区| 亚洲免费视频欧洲免费视频| 免费无毒热热热热热热久| 婷婷久久一区二区字幕网址你懂得 | 春色激情网欧美成人| 热思思国产99re| 亚洲熟色妇av日韩熟色妇在线| 国产91精品拍在线观看| 1024久久国产精品| 亚洲美女高潮喷浆视频| 午夜在线一区二区免费| 99久久成人日韩欧美精品| 中文字幕熟女人妻久久久| 在线观看黄色成年人网站| 骚逼被大屌狂草视频免费看| 久草福利电影在线观看| 欧美黑人与人妻精品| 亚洲人妻av毛片在线| 日本韩国亚洲综合日韩欧美国产 | 黄色黄色黄片78在线| 粉嫩av蜜乳av蜜臀| 午夜精品亚洲精品五月色| 亚洲成人国产综合一区| 五色婷婷综合狠狠爱| 最后99天全集在线观看| 99国内精品永久免费视频| 中文字幕乱码av资源| 黑人巨大的吊bdsm| 夜夜嗨av蜜臀av| 亚洲精品无码久久久久不卡| 天天摸天天干天天操科普| 亚洲国际青青操综合网站 | 黄色视频在线观看高清无码| 国产熟妇乱妇熟色T区| 日本后入视频在线观看| 亚洲av日韩av网站| 日韩视频一区二区免费观看| lutube在线成人免费看| 色爱av一区二区三区| 性欧美日本大妈母与子| av在线shipin| 人妻最新视频在线免费观看| 真实国产乱子伦一区二区| 青青草精品在线视频观看| 春色激情网欧美成人| 亚洲精品 欧美日韩| 啪啪啪操人视频在线播放| 夜女神免费福利视频| 激情人妻校园春色亚洲欧美 | 亚洲视频在线视频看视频在线| 男人的天堂在线黄色| 密臀av一区在线观看| 91试看福利一分钟| 18禁无翼鸟成人在线| 免费黄色成人午夜在线网站| 中字幕人妻熟女人妻a62v网| 日韩激情文学在线视频| 九一传媒制片厂视频在线免费观看| 一个色综合男人天堂| 国产黄色片蝌蚪九色91| 日本最新一二三区不卡在线| 天天射,天天操,天天说| 欧美一级片免费在线成人观看| 成人高清在线观看视频| 偷拍3456eee| 动色av一区二区三区| 一级黄片久久久久久久久| 亚洲欧美综合在线探花| 亚洲欧美激情中文字幕| 国产中文精品在线观看| 在线视频国产欧美日韩| 国产精选一区在线播放| 欧美一区二区三区在线资源 | 成人午夜电影在线观看 久久| 欧美成人一二三在线网| 毛片一级完整版免费| 在线免费观看国产精品黄色| 夜鲁夜鲁狠鲁天天在线| 日本真人性生活视频免费看| 熟女人妻在线中出观看完整版| 天天干天天插天天谢| 日韩美女搞黄视频免费| 午夜免费观看精品视频| 国产精品自拍视频大全| 亚洲一区二区三区av网站| 97人妻无码AV碰碰视频| 超碰中文字幕免费观看| 首之国产AV医生和护士小芳| 超pen在线观看视频公开97| 国产精品国产精品一区二区| 99热碰碰热精品a中文| 喷水视频在线观看这里只有精品| 国产超码片内射在线| 91亚洲精品干熟女蜜桃频道| 日本熟妇色熟妇在线观看| 国产又大又黄免费观看| 久久久久国产成人精品亚洲午夜| 国产乱子伦精品视频潮优女| 91试看福利一分钟| 嫩草aⅴ一区二区三区| 北条麻妃肉色丝袜视频| 久碰精品少妇中文字幕av| 久久这里只有精彩视频免费| 日本免费一级黄色录像| 丰满熟女午夜福利视频| 国产在线91观看免费观看| 91国产资源在线视频| 宅男噜噜噜666免费观看| 国产一区二区神马久久| 亚洲av自拍偷拍综合| 人人妻人人爽人人添夜| 免费男阳茎伸入女阳道视频 | 国产精品一区二区三区蜜臀av | 好太好爽好想要免费| 91精品激情五月婷婷在线| 老司机99精品视频在线观看 | 欧美va不卡视频在线观看| 久久香蕉国产免费天天| 国产大学生援交正在播放| 日韩无码国产精品强奸乱伦| 亚洲欧美一区二区三区爱爱动图| japanese日本熟妇另类| 人人妻人人澡欧美91精品| 亚洲成人激情视频免费观看了| 成人蜜臀午夜久久一区| 欧美久久久久久三级网| 黄色片一级美女黄色片| 青青草精品在线视频观看| a v欧美一区=区三区| 免费大片在线观看视频网站| 绝色少妇高潮3在线观看| 中文字幕日韩人妻在线三区| 国产夫妻视频在线观看免费| 又色又爽又黄又刺激av网站| 国产视频一区在线观看| 五月婷婷在线观看视频免费| 国产av福利网址大全| 欧美亚洲免费视频观看| 一区二区三区综合视频| 在线观看av2025| 日本www中文字幕| 国产精品久久久久久美女校花| 女人精品内射国产99| 97人妻总资源视频| 欧美日韩v中文在线| 中文字幕第1页av一天堂网| 亚洲精品一区二区三区老狼| 国产三级精品三级在线不卡| 国产乱弄免费视频观看| 视频啪啪啪免费观看| 欧美第一页在线免费观看视频| 非洲黑人一级特黄片| 风流唐伯虎电视剧在线观看| 成年人午夜黄片视频资源| 亚洲熟女久久久36d| 2021国产一区二区| 美女张开腿让男生操在线看| 在线观看视频 你懂的| 特黄老太婆aa毛毛片| 日韩av有码一区二区三区4| 欧美麻豆av在线播放| 超碰97免费人妻麻豆| 久久久久只精品国产三级| okirakuhuhu在线观看| 熟女妇女老妇一二三区| 在线观看一区二区三级| 中文字幕av男人天堂| 日韩人妻在线视频免费| 99久久成人日韩欧美精品| 男生舔女生逼逼的视频| 亚洲综合在线视频可播放| 亚洲欧美激情中文字幕| 97人人模人人爽人人喊| 成人av久久精品一区二区| 日本丰满熟妇大屁股久久| 亚洲最大黄 嗯色 操 啊| 中文字幕日韩人妻在线三区| 人妻无码色噜噜狠狠狠狠色| 超污视频在线观看污污污 | 天堂av在线最新版在线| 亚洲欧美精品综合图片小说| 视频一区二区在线免费播放| 久久精品久久精品亚洲人| 天天操夜夜骑日日摸| 欧亚日韩一区二区三区观看视频| 日本黄在免费看视频| 丰满的继坶3中文在线观看| 久久精品国产999| 中国把吊插入阴蒂的视频| 亚洲av极品精品在线观看| 中文字幕在线第一页成人| 97精品人妻一区二区三区精品 | 性感美女高潮视频久久久| 亚洲精品久久视频婷婷| 91快播视频在线观看| 欧美香蕉人妻精品一区二区| 国产a级毛久久久久精品| 日韩精品中文字幕在线| caoporm超碰国产| 日韩精品中文字幕福利| 88成人免费av网站| 亚洲国产成人无码麻豆艾秋| 97少妇精品在线观看| 人人超碰国字幕观看97| 亚洲无码一区在线影院| 人人爽亚洲av人人爽av| tube69日本少妇| 最新黄色av网站在线观看| 久草福利电影在线观看| 在线免费观看99视频| 亚洲在线免费h观看网站| 9色在线视频免费观看| 男人的天堂在线黄色| 天天射,天天操,天天说| 在线观看亚洲人成免费网址| 欧美美女人体视频一区| av中文字幕网址在线| 521精品视频在线观看| 美女张开腿让男生操在线看| 亚洲精品高清自拍av| 中文字幕亚洲久久久| 男人天堂最新地址av| 91精品国产91青青碰| 亚洲在线一区二区欧美| 黑人变态深video特大巨大| 国产精品视频一区在线播放| 天堂中文字幕翔田av| 91精品高清一区二区三区| 亚洲粉嫩av一区二区三区| 美女被肏内射视频网站| 好了av中文字幕在线| 亚洲av日韩av网站| 久久香蕉国产免费天天| 亚洲伊人av天堂有码在线| 老司机欧美视频在线看| 中文字幕—97超碰网| 老司机免费福利视频网| 中文字幕一区二区亚洲一区| 欧美黑人巨大性xxxxx猛交| 综合激情网激情五月五月婷婷| 伊人成人在线综合网| 丰满熟女午夜福利视频| 久久艹在线观看视频| 久久久久久久精品老熟妇| 亚洲国产免费av一区二区三区| 日本最新一二三区不卡在线| 无套猛戳丰满少妇人妻| 一区二区三区久久中文字幕| 国产欧美精品不卡在线| 一区二区三区精品日本| 特级欧美插插插插插bbbbb| 亚洲第一黄色在线观看| 九一传媒制片厂视频在线免费观看| 成人在线欧美日韩国产| 亚洲另类综合一区小说| 涩涩的视频在线观看视频| 在线免费观看日本片| 成人免费公开视频无毒| 男人的天堂在线黄色| 亚洲va国产va欧美va在线| 性感美女诱惑福利视频| 精品高潮呻吟久久av| 欧美男同性恋69视频| 狠狠躁夜夜躁人人爽天天天天97| 欧美在线一二三视频| 99精品国产aⅴ在线观看| 日韩av大胆在线观看| 午夜精品一区二区三区福利视频| 欧美日韩高清午夜蜜桃大香蕉| 直接观看免费黄网站| 男生用鸡操女生视频动漫| 亚洲Av无码国产综合色区| 果冻传媒av一区二区三区| 东京热男人的av天堂| 精品视频一区二区三区四区五区| 天堂av在线官网中文| 91人妻精品一区二区在线看| 在线播放 日韩 av| 中文字幕av一区在线观看| 都市家庭人妻激情自拍视频| 免费福利av在线一区二区三区| 啊用力插好舒服视频| 摧残蹂躏av一二三区| 欧美另类一区二区视频| 久久久久久9999久久久久| 91天堂天天日天天操| 狍和女人的王色毛片| 天天日天天操天天摸天天舔 | 亚洲av日韩高清hd| 欧美80老妇人性视频| 偷青青国产精品青青在线观看| 天天摸天天亲天天舔天天操天天爽| 亚洲一区av中文字幕在线观看| 高潮喷水在线视频观看| 337p日本大胆欧美人| 日本高清撒尿pissing| 日韩写真福利视频在线观看| 天天操天天插天天色| 欧美在线精品一区二区三区视频 | 最新国产精品拍在线观看| 婷婷久久一区二区字幕网址你懂得| 国产三级片久久久久久久| 福利片区一区二体验区| 不戴胸罩引我诱的隔壁的人妻| 一区二区三区久久中文字幕| 快点插进来操我逼啊视频| 日本丰满熟妇大屁股久久| 99人妻视频免费在线| 91啪国自产中文字幕在线| 久久精品国产亚洲精品166m| 北条麻妃av在线免费观看| 日本一二三区不卡无| 99热碰碰热精品a中文| 老司机福利精品视频在线| sw137 中文字幕 在线| 日韩欧美国产精品91| 成人24小时免费视频| 2022中文字幕在线| av中文字幕国产在线观看| 亚洲一级av大片免费观看| 99re6热在线精品| 啪啪啪操人视频在线播放| 欧美一区二区中文字幕电影 | 麻豆性色视频在线观看| 亚洲精品成人网久久久久久小说| 久久久久只精品国产三级| 一本久久精品一区二区| 成熟熟女国产精品一区| 亚洲色偷偷综合亚洲AV伊人| 岛国av高清在线成人在线| 亚洲欧美清纯唯美另类| 日本人妻少妇18—xx| 伊人成人综合开心网| 天天操天天干天天日狠狠插| 美女大bxxxx内射| 在线观看的黄色免费网站| 国产精品日韩欧美一区二区| 久久麻豆亚洲精品av| 四虎永久在线精品免费区二区| 91色网站免费在线观看| 精品日产卡一卡二卡国色天香 | 亚洲护士一区二区三区| 午夜精品九一唐人麻豆嫩草成人| 狠狠操操操操操操操操操| 久草免费人妻视频在线| 日本一二三中文字幕| 91精品国产黑色丝袜| 2025年人妻中文字幕乱码在线| 天堂av在线播放免费| 日视频免费在线观看| 91色秘乱一区二区三区| 亚洲成人国产综合一区| 激情五月婷婷免费视频| jiujiure精品视频在线| 十八禁在线观看地址免费| 中字幕人妻熟女人妻a62v网| 老鸭窝在线观看一区| 色综合色综合色综合色| 亚洲国产40页第21页| 在线观看的黄色免费网站| 91极品大一女神正在播放| 精品黑人巨大在线一区| 久久午夜夜伦痒痒想咳嗽P| 国产三级精品三级在线不卡| 一区二区三区美女毛片| 狠狠操操操操操操操操操| 伊人精品福利综合导航| 色哟哟国产精品入口| 11久久久久久久久久久| 男生舔女生逼逼视频| 超碰97免费人妻麻豆| 日韩精品电影亚洲一区| 男人操女人逼逼视频网站| 国产在线91观看免费观看| 精内国产乱码久久久久久| 国产片免费观看在线观看| 中文字幕日韩无敌亚洲精品| 97人妻无码AV碰碰视频| 任我爽精品视频在线播放| 午夜在线观看岛国av,com| 日本在线不卡免费视频| 2019av在线视频| 亚洲欧美综合在线探花| 这里有精品成人国产99| 视频 一区二区在线观看| 偷拍自拍视频图片免费| 日本高清在线不卡一区二区| 人妻丝袜诱惑我操她视频| 亚洲av一妻不如妾| 777奇米久久精品一区| 偷拍自拍国产在线视频| 传媒在线播放国产精品一区| 91精品国产91青青碰| 日韩不卡中文在线视频网站| 亚洲福利精品视频在线免费观看| 老司机福利精品免费视频一区二区 | 免费岛国喷水视频在线观看 | 亚洲av日韩精品久久久久久hd| 2021天天色天天干| 色花堂在线av中文字幕九九| av中文字幕电影在线看| 青青青青青免费视频| 美日韩在线视频免费看| 亚洲人妻视频在线网| 动漫av网站18禁| 欧美成人综合色在线噜噜| 国产在线91观看免费观看| 三级av中文字幕在线观看| 亚洲精品三级av在线免费观看| 精品一区二区三区午夜| 亚洲成高清a人片在线观看| 黑人巨大精品欧美视频| 狍和女人的王色毛片| 日本一道二三区视频久久| 第一福利视频在线观看| 男人的网址你懂的亚洲欧洲av| 亚洲 清纯 国产com| 福利在线视频网址导航| 2021久久免费视频| www天堂在线久久| 久久机热/这里只有| 亚洲午夜福利中文乱码字幕| 国产在线91观看免费观看| 久久这里有免费精品| 国产精品入口麻豆啊啊啊 | 蜜桃色婷婷久久久福利在线| 在线观看视频 你懂的| 免费十精品十国产网站| 亚洲av男人天堂久久| 亚洲福利天堂久久久久久| 成人色综合中文字幕| 日本三极片中文字幕| 日本午夜爽爽爽爽爽视频在线观看| 操操网操操伊剧情片中文字幕网| 女同久久精品秋霞网| 国产高清在线观看1区2区| 唐人色亚洲av嫩草| 亚洲天堂精品福利成人av| 91欧美在线免费观看| 黑人巨大精品欧美视频| 热99re69精品8在线播放| 欧美一区二区中文字幕电影 | 国产日韩精品一二三区久久久| 日本性感美女写真视频| 精品国产亚洲av一淫| 亚洲av自拍偷拍综合| 999热精品视频在线| 精品一区二区三区欧美| 欧美精品免费aaaaaa| 午夜精品福利91av| av中文字幕国产在线观看| 午夜在线精品偷拍一区二| 国产亚洲视频在线观看| 天天干天天插天天谢| 1000部国产精品成人观看视频| 91麻豆精品秘密入口在线观看| av网址国产在线观看| 高潮喷水在线视频观看| 亚洲一区二区三区在线高清| 青青青青草手机在线视频免费看| 99精品视频之69精品视频| 国产V亚洲V天堂无码欠欠| 成年人该看的视频黄免费| 成人30分钟免费视频| 亚洲公开视频在线观看| 黄色三级网站免费下载| 中文字幕+中文字幕| 亚洲av自拍偷拍综合| 美女日逼视频免费观看| 日本黄色特一级视频| 欧美爆乳肉感大码在线观看| 欧美日韩激情啪啪啪| www,久久久,com| 免费在线看的黄片视频| 国产激情av网站在线观看| 绯色av蜜臀vs少妇| 经典国语激情内射视频| 免费av岛国天堂网站| 天天日天天透天天操| 亚洲av自拍偷拍综合| 九九视频在线精品播放| 黑人巨大的吊bdsm| 97欧洲一区二区精品免费| 青娱乐蜜桃臀av色| 老熟妇凹凸淫老妇女av在线观看| 999久久久久999| 国产福利小视频免费观看| 5528327男人天堂| av天堂中文字幕最新| gav成人免费播放| 天天做天天干天天舔| 国产女人露脸高潮对白视频| 日本www中文字幕| 亚洲午夜福利中文乱码字幕| 亚洲国产成人最新资源| 五十路熟女人妻一区二区9933| 亚洲国产成人无码麻豆艾秋| 天天射夜夜操狠狠干| 国产剧情演绎系列丝袜高跟| 亚洲精品无码久久久久不卡| 国产精品视频一区在线播放| 香港一级特黄大片在线播放| 精品人妻伦一二三区久| 天天躁日日躁狠狠躁av麻豆| 亚洲精品一线二线在线观看| 婷婷六月天中文字幕| 黄色大片男人操女人逼| 天天日天天透天天操| 91麻豆精品传媒国产黄色片| 丰满少妇翘臀后进式| 岛国一区二区三区视频在线| 日本少妇在线视频大香蕉在线观看| 38av一区二区三区| aiss午夜免费视频| 免费无码人妻日韩精品一区二区| 欧美日韩高清午夜蜜桃大香蕉 | 亚洲一区av中文字幕在线观看| 一区二区免费高清黄色视频| 综合激情网激情五月五月婷婷| 偷青青国产精品青青在线观看| 国产中文字幕四区在线观看| av高潮迭起在线观看| 伊人日日日草夜夜草| 99精品免费久久久久久久久a| 欧美一区二区三区啪啪同性| 国产在线一区二区三区麻酥酥| 大香蕉伊人中文字幕| 日韩午夜福利精品试看| 日日夜夜狠狠干视频| 青青青青爽手机在线| 欧美特色aaa大片| 国产综合视频在线看片| 亚洲麻豆一区二区三区| 免费在线黄色观看网站| 亚洲的电影一区二区三区 | 一本久久精品一区二区| 亚洲天堂精品久久久| 免费岛国喷水视频在线观看| 久草视频在线看免费| 欧美亚洲国产成人免费在线| 少妇系列一区二区三区视频| 日韩美女福利视频网| 亚洲精品成人网久久久久久小说| 亚洲蜜臀av一区二区三区九色| 国产亚洲精品品视频在线| 亚洲人妻视频在线网| 黑人大几巴狂插日本少妇| 久草电影免费在线观看| 亚洲丝袜老师诱惑在线观看| 欧美成人黄片一区二区三区| 老司机福利精品免费视频一区二区 | 午夜激情久久不卡一区二区| 亚洲成a人片777777| 又粗又硬又猛又黄免费30| 97香蕉碰碰人妻国产樱花| 免费十精品十国产网站| 日本少妇高清视频xxxxx | 大学生A级毛片免费视频| 国产精品久久久久网| 亚洲综合色在线免费观看| 欧美日韩一区二区电影在线观看| 五十路av熟女松本翔子| 偷拍自拍国产在线视频| 成熟熟女国产精品一区| 国产精品视频资源在线播放 | 亚洲精品一区二区三区老狼| 国产极品美女久久久久久| 伊人日日日草夜夜草| 欧美中国日韩久久精品| 不卡日韩av在线观看| 欧美3p在线观看一区二区三区| 亚洲一区二区三区久久午夜 | 91精品激情五月婷婷在线| 亚洲成人黄色一区二区三区| 插小穴高清无码中文字幕| 91免费观看国产免费| 亚洲特黄aaaa片| 91免费福利网91麻豆国产精品| 非洲黑人一级特黄片| 在线观看视频网站麻豆| 欧美激情精品在线观看| 青青草精品在线视频观看| 日本熟妇一区二区x x| 国产清纯美女al在线| 伊人成人在线综合网| 国产黑丝高跟鞋视频在线播放| 涩爱综合久久五月蜜臀| 午夜激情久久不卡一区二区 | 熟女人妻在线观看视频| av网址在线播放大全| av中文字幕电影在线看| 大香蕉玖玖一区2区| 早川濑里奈av黑人番号| 在线观看免费视频色97| 又黄又刺激的午夜小视频| 大香蕉玖玖一区2区| 中文字幕人妻一区二区视频| 亚洲一区二区三区在线高清| 视频二区在线视频观看| 国产第一美女一区二区三区四区| 白白操白白色在线免费视频| 亚洲免费在线视频网站| 中文字幕一区二 区二三区四区| 在线免费观看亚洲精品电影| 青青草国内在线视频精选| 日韩欧美制服诱惑一区在线| av一区二区三区人妻| 国产91精品拍在线观看| 黄片大全在线观看观看| 欧美中国日韩久久精品| 爱爱免费在线观看视频| 亚洲精品无码久久久久不卡| 极品粉嫩小泬白浆20p主播| 在线免费91激情四射| 亚洲国产精品久久久久久6| 亚洲欧美人精品高清| 男人操女人的逼免费视频| 国产欧美精品一区二区高清| 人妻少妇性色欲欧美日韩| 欧美男人大鸡吧插女人视频| 国产一区二区久久久裸臀| 色哟哟国产精品入口| 人妻少妇av在线观看| 曰本无码人妻丰满熟妇啪啪| 欧美日韩国产一区二区三区三州| 欧美偷拍亚洲一区二区| 日韩欧美一级黄片亚洲| 日韩av有码中文字幕| 青青社区2国产视频| 日韩亚国产欧美三级涩爱| 玩弄人妻熟妇性色av少妇| 免费成人av中文字幕| 五十路人妻熟女av一区二区| av亚洲中文天堂字幕网| 在线免费91激情四射| 成人av免费不卡在线观看| 亚洲最大免费在线观看| 91亚洲精品干熟女蜜桃频道| 性感美女诱惑福利视频| 欧洲黄页网免费观看| 男人天堂色男人av| 啊用力插好舒服视频| 国产美女午夜福利久久| 国产精品人妻一区二区三区网站| 日韩精品一区二区三区在线播放| 18禁美女黄网站色大片下载| av黄色成人在线观看| 久草视频在线看免费| 97精品综合久久在线| 精内国产乱码久久久久久| 国产成人自拍视频播放| 黑人大几巴狂插日本少妇| 天天色天天操天天舔| 亚洲av成人网在线观看| 精品久久久久久久久久久久人妻| 韩国三级aaaaa高清视频| 99精品国自产在线人| 天天操天天操天天碰| 国产福利在线视频一区| 中出中文字幕在线观看| 女蜜桃臀紧身瑜伽裤| 99热99re在线播放| 人妻自拍视频中国大陆| 日韩精品中文字幕福利| 天美传媒mv视频在线观看| 国产欧美日韩在线观看不卡| 欧美日韩激情啪啪啪| 中文字幕av熟女人妻| 欧美一区二区三区乱码在线播放| 精品国产成人亚洲午夜| 日本av在线一区二区三区| 国产精品自拍视频大全| 五十路熟女人妻一区二区9933| 一区二区久久成人网| 六月婷婷激情一区二区三区| 姐姐的朋友2在线观看中文字幕| 五十路老熟女码av| 日韩剧情片电影在线收看| 久久久久五月天丁香社区| 国产黑丝高跟鞋视频在线播放| 中文字幕,亚洲人妻| asmr福利视频在线观看| 亚洲国产免费av一区二区三区| 国产成人综合一区2区| 久精品人妻一区二区三区| 亚洲欧美色一区二区| 在线播放国产黄色av| 中文字幕日本人妻中出| 中文字幕一区二区自拍| 一区二区三区av高清免费| 99热99re在线播放| 中文字幕在线永久免费播放| 成年午夜免费无码区| 晚上一个人看操B片| caoporn蜜桃视频| 亚洲精品中文字幕下载| 100%美女蜜桃视频| 又粗又硬又猛又黄免费30| okirakuhuhu在线观看| 绝顶痉挛大潮喷高潮无码| 欧美日韩人妻久久精品高清国产 | 人妻少妇亚洲精品中文字幕| 精品一线二线三线日本| 极品粉嫩小泬白浆20p主播| 精品成人午夜免费看| 国产精品午夜国产小视频| 老司机你懂得福利视频| 国产麻豆91在线视频| 亚洲午夜福利中文乱码字幕| 女同久久精品秋霞网| 91精品一区二区三区站长推荐| 高潮视频在线快速观看国家快速| 插逼视频双插洞国产操逼插洞| 久久久噜噜噜久久熟女av| 亚洲一区二区激情在线| 一区二区三区国产精选在线播放| 丰满少妇翘臀后进式| 啪啪啪操人视频在线播放| 日本18禁久久久久久| 亚洲精品午夜aaa久久| 91一区精品在线观看| 日韩加勒比东京热二区| 青青青国产免费视频| 亚洲图库另类图片区| av天堂中文字幕最新| 美女小视频网站在线| 91麻豆精品秘密入口在线观看| 偷偷玩弄新婚人妻h视频| aⅴ精产国品一二三产品| 2021年国产精品自拍| 天天干天天操天天插天天日| 成年女人免费播放视频| 东京热男人的av天堂| 青青色国产视频在线| 国产熟妇一区二区三区av| 黄色成人在线中文字幕| 久久免看30视频口爆视频| 精品一区二区三区午夜| av线天堂在线观看| 日本少妇人妻xxxxxhd| caoporm超碰国产| 97超碰国语国产97超碰| 美女张开腿让男生操在线看| 91人妻精品久久久久久久网站| 特大黑人巨大xxxx| 不卡一不卡二不卡三| 999九九久久久精品| 亚洲免费va在线播放| 极品粉嫩小泬白浆20p主播| 国产精品熟女久久久久浪潮| 一区二区三区综合视频| 激情小视频国产在线| 五十路av熟女松本翔子| 91老熟女连续高潮对白| 亚洲国产第一页在线观看| 久久人人做人人妻人人玩精品vr| 人妻素人精油按摩中出| 绯色av蜜臀vs少妇| 啊啊啊想要被插进去视频| 五月激情婷婷久久综合网| 国产一区二区久久久裸臀| 免费在线福利小视频| 日日操综合成人av| 欧美少妇性一区二区三区| 久草视频中文字幕在线观看| 国产va精品免费观看| 绯色av蜜臀vs少妇| 亚洲免费福利一区二区三区| 一区二区三区四区视频在线播放| 人妻熟女在线一区二区| 成年人免费看在线视频| 精品黑人巨大在线一区| 日比视频老公慢点好舒服啊| 国产男女视频在线播放| 91天堂精品一区二区| 一区二区三区精品日本| 精品区一区二区三区四区人妻| 男大肉棒猛烈插女免费视频| 成人区人妻精品一区二视频| 国产黄网站在线观看播放| 沈阳熟妇28厘米大战黑人| 最后99天全集在线观看| 狠狠操操操操操操操操操| 摧残蹂躏av一二三区| 人妻3p真实偷拍一二区| 夜色17s精品人妻熟女| 91精品一区二区三区站长推荐| 中文字幕国产专区欧美激情| 不戴胸罩引我诱的隔壁的人妻| 美女小视频网站在线| 国产免费av一区二区凹凸四季| 精品一区二区三区欧美| 久久久制服丝袜中文字幕| 青娱乐在线免费视频盛宴| 午夜精品在线视频一区| 国产精品久久久黄网站| 亚洲欧美一区二区三区电影| 色哟哟在线网站入口| 日本五十路熟新垣里子| 粗大的内捧猛烈进出爽大牛汉子| 国产精彩对白一区二区三区| 欧美viboss性丰满| 国产成人午夜精品福利| 国产福利小视频免费观看| 中文字幕高清免费在线人妻| 国产亚洲视频在线观看| 99精品一区二区三区的区| 国产欧美精品免费观看视频| 老有所依在线观看完整版| 黑人乱偷人妻中文字幕| 91精品国产观看免费| 97少妇精品在线观看| 99热久久这里只有精品8| 成人亚洲精品国产精品| 91久久国产成人免费网站| 超级碰碰在线视频免费观看| 激情国产小视频在线| 熟女国产一区亚洲中文字幕| 国产精品国产三级国产午| 日韩成人综艺在线播放| 不卡日韩av在线观看| 特大黑人巨大xxxx| 日韩美女福利视频网| 啪啪啪啪啪啪啪啪av| 国产麻豆剧果冻传媒app| 精品suv一区二区69| 成年人午夜黄片视频资源| 啪啪啪18禁一区二区三区| 熟女在线视频一区二区三区| 人妻少妇性色欲欧美日韩| 欧美日韩一区二区电影在线观看| 午夜成午夜成年片在线观看| 亚洲欧美福利在线观看| 国产女孩喷水在线观看| 国内资源最丰富的网站| 亚洲中文字幕人妻一区| 99精品视频在线观看免费播放| 亚洲日产av一区二区在线| 熟女国产一区亚洲中文字幕| 日本人妻欲求不满中文字幕| 亚洲熟女女同志女同| 中文字幕一区二区自拍| 欧美日韩国产一区二区三区三州| av新中文天堂在线网址| 2019av在线视频| 老司机在线精品福利视频| 日本美女成人在线视频| 韩国AV无码不卡在线播放 | 国产三级精品三级在线不卡| 最近的中文字幕在线mv视频| 欧美视频中文一区二区三区| 国产精品国产三级国产午| av一本二本在线观看| 亚洲免费国产在线日韩| 亚洲一区av中文字幕在线观看| 日本熟妇一区二区x x| 欧美国品一二三产区区别| 欧美一级视频一区二区| 中文字幕成人日韩欧美| 亚洲天堂第一页中文字幕| 爆乳骚货内射骚货内射在线| 日韩加勒比东京热二区| av天堂加勒比在线| www骚国产精品视频| 亚洲精品国产在线电影| 激情五月婷婷综合色啪| 天堂va蜜桃一区入口| 亚洲免费视频欧洲免费视频| 国产欧美日韩在线观看不卡| 91精品国产高清自在线看香蕉网 | 国产高清精品极品美女| 欧美日韩高清午夜蜜桃大香蕉| 动漫精品视频在线观看| 欧美韩国日本国产亚洲| 中文字幕日韩人妻在线三区| 婷婷久久一区二区字幕网址你懂得| 懂色av之国产精品| 99精品视频在线观看免费播放| 久久久极品久久蜜桃| 国产老熟女伦老熟妇ⅹ| 扒开腿挺进肉嫩小18禁视频| 91精品国产综合久久久蜜| 高清成人av一区三区| 可以免费看的www视频你懂的| 97精品综合久久在线| 啊啊好大好爽啊啊操我啊啊视频 | mm131美女午夜爽爽爽| 888欧美视频在线| 91色老99久久九九爱精品| 亚洲最大黄了色网站| 婷婷午夜国产精品久久久| 91色秘乱一区二区三区| 亚洲一区二区三区久久受| 黄色大片免费观看网站| 亚洲特黄aaaa片| 人妻少妇亚洲一区二区| 欧美一级片免费在线成人观看| 亚洲天堂精品福利成人av| 天天操夜夜操天天操天天操| 黄色片一级美女黄色片| 天天爽夜夜爽人人爽QC| av一区二区三区人妻| 欧洲亚洲欧美日韩综合| 亚洲国产在人线放午夜| av在线免费资源站| 91色老99久久九九爱精品| 欧美在线偷拍视频免费看| 天天操天天干天天艹| 偷拍自拍福利视频在线观看| 亚洲精品无码久久久久不卡| 一区二区三区综合视频| 日视频免费在线观看| 欧美日韩在线精品一区二区三| 国产一区二区三免费视频| 亚洲最大黄了色网站| 精品久久久久久久久久中文蒉| 久久久久只精品国产三级| 一区二区三区另类在线 | 麻豆性色视频在线观看| 在线国产中文字幕视频| 在线视频免费观看网| 精品一区二区三区三区88| 在线免费视频 自拍| 99精品免费观看视频| 黄色黄色黄片78在线| 又粗又长 明星操逼小视频| 色天天天天射天天舔| 亚洲高清一区二区三区视频在线| 九九热99视频在线观看97| 亚洲一区二区三区uij| av线天堂在线观看| 护士小嫩嫩又紧又爽20p| av天堂加勒比在线| 中文字幕人妻一区二区视频| 久久久久久99国产精品| 亚洲免费在线视频网站| 亚洲一区二区三区精品视频在线| 国产成人精品福利短视频| 黑人大几巴狂插日本少妇| 激情色图一区二区三区| 97资源人妻免费在线视频| 中文字幕日韩精品就在这里| 亚洲日本一区二区三区| 免费无码人妻日韩精品一区二区| 久久综合老鸭窝色综合久久| 日韩中文字幕在线播放第二页| 亚洲综合另类精品小说| 伊人综合免费在线视频| 水蜜桃一区二区三区在线观看视频 | 蜜桃视频17c在线一区二区| 日韩a级黄色小视频| 99热国产精品666| 青青青视频自偷自拍38碰| 亚洲欧美清纯唯美另类| 玖玖一区二区在线观看| 欧美激情电影免费在线| 婷婷激情四射在线观看视频| 欧美激情电影免费在线| 国产精品人妻66p| 日韩a级黄色小视频| 日本最新一二三区不卡在线 | 人妻素人精油按摩中出| 久久久久久久久久一区二区三区 | 欧美成人黄片一区二区三区| 黄色男人的天堂视频| 夜鲁夜鲁狠鲁天天在线| 久久精品视频一区二区三区四区 | 在线国产中文字幕视频| 日本一二三区不卡无| 特大黑人巨大xxxx| 骚货自慰被发现爆操| 性感美女诱惑福利视频| 午夜国产福利在线观看| 日本少妇高清视频xxxxx| 十八禁在线观看地址免费| 自拍 日韩 欧美激情| 国产va在线观看精品| 中文字幕第1页av一天堂网| 不卡日韩av在线观看| av在线资源中文字幕| 激情五月婷婷综合色啪| 黄色资源视频网站日韩| 日韩美女精品视频在线观看网站| 美女骚逼日出水来了| 操日韩美女视频在线免费看| 色综合久久久久久久久中文| 国产精品久久久久久久女人18| 青青青国产免费视频| 一级黄色片夫妻性生活| 天天日天天操天天摸天天舔| 国产普通话插插视频| 激情内射在线免费观看| 女生被男生插的视频网站| 国产精品精品精品999| 女同性ⅹxx女同h偷拍| 一区二区三区美女毛片| 亚洲一区二区三区精品乱码| 欧美专区日韩专区国产专区| 欧美成人综合视频一区二区| 91九色porny国产蝌蚪视频| 欧美在线一二三视频| 久久久久久久亚洲午夜综合福利 | 国产黄色片蝌蚪九色91| 亚洲熟女久久久36d| 亚洲天堂av最新网址| 久草视频中文字幕在线观看| 久久99久久99精品影院| 亚洲国产在线精品国偷产拍| 93人妻人人揉人人澡人人| 国产麻豆乱子伦午夜视频观看| 人妻av无码专区久久绿巨人| 久青青草视频手机在线免费观看 | 沙月文乃人妻侵犯中文字幕在线 | 在线观看视频污一区| 性感美女福利视频网站| 男人的天堂av日韩亚洲| 精彩视频99免费在线| 手机看片福利盒子日韩在线播放| 国产精品黄色的av| 天堂va蜜桃一区入口| 特级欧美插插插插插bbbbb| 日本脱亚入欧是指什么| 日本性感美女三级视频| 欧美精品伦理三区四区| 国产精品黄页网站视频| 亚洲精品国偷自产在线观看蜜桃| 日本一二三中文字幕| 女生自摸在线观看一区二区三区| av天堂加勒比在线| 888亚洲欧美国产va在线播放| 国产欧美精品不卡在线| 天天日天天敢天天干| 免费在线福利小视频| yy6080国产在线视频| 91在线免费观看成人| aiss午夜免费视频| 欧美男同性恋69视频| 日韩成人综艺在线播放| 五十路老熟女码av| 91九色porny国产蝌蚪视频| 少妇深喉口爆吞精韩国| 91免费观看在线网站| 国产精品视频男人的天堂| 久久精品久久精品亚洲人| 中文字幕熟女人妻久久久| 国产91久久精品一区二区字幕| 亚洲人一区二区中文字幕| 中文字幕日韩精品日本| 99热色原网这里只有精品| 日本又色又爽又黄又粗| 亚洲在线观看中文字幕av| 姐姐的朋友2在线观看中文字幕 | 亚洲免费福利一区二区三区| 国产又大又黄免费观看| 国产视频精品资源网站| 午夜在线观看岛国av,com| 亚洲1区2区3区精华液| 亚洲在线免费h观看网站| 大香蕉大香蕉大香蕉大香蕉大香蕉| 91色秘乱一区二区三区| 国产欧美日韩在线观看不卡| 亚洲另类图片蜜臀av| 80电影天堂网官网| a v欧美一区=区三区| 东京热男人的av天堂| 人妻最新视频在线免费观看| 97超碰最新免费在线观看| 91国产在线视频免费观看| 天天操天天干天天艹| 五十路熟女人妻一区二区9933| 一级黄色片夫妻性生活| 伊人精品福利综合导航| 特黄老太婆aa毛毛片| 78色精品一区二区三区| 在线观看av观看av| 国产精品成人xxxx| 久久精品36亚洲精品束缚| 超碰在线中文字幕一区二区| 国产综合高清在线观看| 女同互舔一区二区三区| 小穴多水久久精品免费看| 久久久久91精品推荐99| 国产麻豆精品人妻av| 亚洲 色图 偷拍 欧美| 五色婷婷综合狠狠爱| 午夜精品一区二区三区4| 欧美第一页在线免费观看视频| 久久精品国产23696| 精品国产污污免费网站入口自| 阿v天堂2014 一区亚洲| 快点插进来操我逼啊视频| 啪啪啪啪啪啪啪啪av| 韩国黄色一级二级三级| 91精品国产黑色丝袜| 国产三级影院在线观看| 夜女神免费福利视频| 日韩视频一区二区免费观看| 中文字幕第三十八页久久| 欧美xxx成人在线| 欧美偷拍自拍色图片| 首之国产AV医生和护士小芳| 最新国产精品网址在线观看| av在线免费观看亚洲天堂| 社区自拍揄拍尻屁你懂的| 97精品综合久久在线| 香蕉91一区二区三区| 国产极品美女久久久久久| 香蕉aⅴ一区二区三区| 欧美性受xx黑人性猛交| 国产变态另类在线观看| 欧美激情电影免费在线| 在线观看欧美黄片一区二区三区 | 欧美特级特黄a大片免费| 国产精品人妻66p| 国产黄色片在线收看| 欧美交性又色又爽又黄麻豆| 精品一区二区三区欧美| 亚洲码av无色中文| 97国产福利小视频合集| 中文字幕高清免费在线人妻| 91精品高清一区二区三区| 2022国产综合在线干| 欧美乱妇无乱码一区二区| 日视频免费在线观看| 中文字幕人妻一区二区视频| 国产在线一区二区三区麻酥酥| 蜜臀av久久久久蜜臀av麻豆| 中文字幕在线永久免费播放| 亚洲成人国产综合一区| 日韩二区视频一线天婷婷五| 扒开让我视频在线观看| 美洲精品一二三产区区别| 丰满少妇人妻xxxxx| 影音先锋女人av噜噜色| 超碰中文字幕免费观看| 又黄又刺激的午夜小视频| 亚洲一区二区三区uij| 亚洲欧美自拍另类图片| 成人在线欧美日韩国产| 99国内小视频在现欢看| 日本熟妇丰满厨房55| 93精品视频在线观看| 我想看操逼黄色大片| 人妻另类专区欧美制服| 欧洲黄页网免费观看| 最新日韩av传媒在线| 日韩二区视频一线天婷婷五| 做爰视频毛片下载蜜桃视频1| 日韩欧美亚洲熟女人妻| 97超碰国语国产97超碰| 男生舔女生逼逼的视频| 国产精品久久久久久久女人18| 日本人妻精品久久久久久| 亚洲综合色在线免费观看| 国产高清精品极品美女| 桃色视频在线观看一区二区| 成年美女黄网站18禁久久| 成人蜜桃美臀九一一区二区三区| 一本久久精品一区二区| 操日韩美女视频在线免费看| 中国黄色av一级片| 国产欧美精品免费观看视频| 黑人解禁人妻叶爱071| 日韩熟女av天堂系列| 天天摸天天日天天操| 日韩北条麻妃一区在线| 青娱乐最新视频在线| 欧美老妇精品另类不卡片| 插逼视频双插洞国产操逼插洞| 国产又粗又黄又硬又爽| 美洲精品一二三产区区别| 国产欧美日韩在线观看不卡| 国产女人叫床高潮大片视频| 少妇人妻真实精品视频| 日韩a级精品一区二区| 夜色17s精品人妻熟女| 天美传媒mv视频在线观看| 人妻少妇亚洲精品中文字幕| 国产亚洲精品视频合集| 国产在线免费观看成人| 二区中出在线观看老师 | 91传媒一区二区三区| 亚洲免费成人a v| 91精品啪在线免费| 日本在线不卡免费视频| 宅男噜噜噜666免费观看| 天堂女人av一区二区| 日本女人一级免费片| 天天射,天天操,天天说| 天天日天天鲁天天操| 日韩一区二区电国产精品| 99re久久这里都是精品视频| 五十路在线观看完整版| 国产在线拍揄自揄视频网站| 天天操天天干天天艹| 一区二区三区的久久的蜜桃的视频| 少妇系列一区二区三区视频| 日本韩国免费福利精品| 97国产在线av精品| 人人妻人人澡人人爽人人dvl| 日韩激情文学在线视频| 熟女在线视频一区二区三区| 色狠狠av线不卡香蕉一区二区| 亚洲一区二区三区五区 | 日韩精品中文字幕在线| 国产精品国产三级国产午| 美女吃鸡巴操逼高潮视频| 曰本无码人妻丰满熟妇啪啪| 最后99天全集在线观看| 久久尻中国美女视频| 欧美成人综合视频一区二区| 一区二区三区的久久的蜜桃的视频| 日本丰满熟妇BBXBBXHD| 大屁股肉感人妻中文字幕在线| 美女av色播在线播放| 成人性黑人一级av| 香蕉aⅴ一区二区三区| 亚洲一区自拍高清免费视频| 乱亲女秽乱长久久久| 天天爽夜夜爽人人爽QC| 亚洲综合一区二区精品久久| 亚洲成人免费看电影| 欧美日韩国产一区二区三区三州| 91福利在线视频免费观看| tube69日本少妇| 91精品激情五月婷婷在线| 日韩av熟妇在线观看| 都市激情校园春色狠狠| 操操网操操伊剧情片中文字幕网| 成人av电影免费版| av成人在线观看一区| 自拍偷拍日韩欧美一区二区| 久久精品亚洲国产av香蕉| 亚洲欧美精品综合图片小说| 在线免费观看国产精品黄色| 3D动漫精品啪啪一区二区下载| 欧美精品一区二区三区xxxx| 午夜在线精品偷拍一区二| 亚洲av无女神免非久久| av中文在线天堂精品| 动漫av网站18禁| 在线免费观看日本片| 999热精品视频在线| 扒开腿挺进肉嫩小18禁视频| 成人高清在线观看视频| 天天干夜夜操天天舔| 97a片免费在线观看| 亚洲午夜精品小视频| 在线免费观看黄页视频| 热99re69精品8在线播放| 一区二区三区美女毛片| 中文字幕日韩精品日本| 国产麻豆乱子伦午夜视频观看| 国产老熟女伦老熟妇ⅹ| 最新黄色av网站在线观看| 精品欧美一区二区vr在线观看| 青春草视频在线免费播放| 一级黄色片夫妻性生活| 91片黄在线观看喷潮| 精品91自产拍在线观看一区| 天天日天天操天天摸天天舔| 国产性感美女福利视频| 亚洲国产精品久久久久蜜桃| av在线shipin| 中文字幕人妻被公上司喝醉在线| 人妻最新视频在线免费观看| 农村胖女人操逼视频| 自拍偷拍日韩欧美亚洲| 亚洲精品麻豆免费在线观看| 97精品视频在线观看| 日辽宁老肥女在线观看视频| 亚洲护士一区二区三区| 国产精品久久久久网| 国产日本精品久久久久久久 | 国产女人叫床高潮大片视频| 91 亚洲视频在线观看| 成人动漫大肉棒插进去视频| 日韩av免费观看一区| 日本高清在线不卡一区二区| 偷拍3456eee| 18禁网站一区二区三区四区| 国产亚洲精品欧洲在线观看| 521精品视频在线观看| 五十路人妻熟女av一区二区| 91久久精品色伊人6882| 亚洲 欧美 精品 激情 偷拍| 亚洲国产精品中文字幕网站| 91久久人澡人人添人人爽乱| 男人的网址你懂的亚洲欧洲av| 国产日韩一区二区在线看 | 99一区二区在线观看| 婷婷综合蜜桃av在线| 自拍偷拍亚洲另类色图| 性色av一区二区三区久久久 | 国产精品久久久久久久久福交| 人妻3p真实偷拍一二区| 91超碰青青中文字幕| 老熟妇xxxhd老熟女| 亚洲人妻视频在线网| 伊人成人综合开心网| 国产福利小视频免费观看| 97国产在线av精品| 久碰精品少妇中文字幕av| 国产视频网站一区二区三区 | 日韩北条麻妃一区在线| 午夜精品福利一区二区三区p| 国产在线一区二区三区麻酥酥| 亚洲1卡2卡三卡4卡在线观看 | 国产在线91观看免费观看| AV天堂一区二区免费试看| 中文字幕人妻三级在线观看| 免费十精品十国产网站| 热久久只有这里有精品| 1区2区3区不卡视频| 香蕉片在线观看av| 九一传媒制片厂视频在线免费观看 | 亚洲av自拍偷拍综合| 久久久噜噜噜久久熟女av| 91精品视频在线观看免费| 国产精品人久久久久久| 国产一区二区火爆视频| 国产精品自拍在线视频| 香蕉av影视在线观看| 五十路av熟女松本翔子| 国产福利小视频大全| av手机在线观播放网站| 天天日天天干天天要| 超碰97人人做人人爱| 无套猛戳丰满少妇人妻| 小泽玛利亚视频在线观看| 99re6热在线精品| 在线观看国产网站资源| 99热色原网这里只有精品| 欧美成一区二区三区四区| 视频啪啪啪免费观看| 黄色av网站免费在线| 肏插流水妹子在线乐播下载 | 99久久99一区二区三区| 日本在线一区二区不卡视频| 韩国黄色一级二级三级| 天天干夜夜操啊啊啊| 中文字幕日韩无敌亚洲精品| 中文字幕在线乱码一区二区 | 中文字幕一区二 区二三区四区 | 久久免费看少妇高潮完整版| 亚洲午夜电影之麻豆| 丰满少妇翘臀后进式| 欧美日本国产自视大全| 操操网操操伊剧情片中文字幕网| 亚洲欧美一区二区三区爱爱动图| 亚洲中文字幕乱码区| 国产伊人免费在线播放| 久久久久久久久久久免费女人| 99精品免费观看视频| 一级黄色片夫妻性生活| 97精品人妻一区二区三区精品| 大陆胖女人与丈夫操b国语高清| 久久久久久国产精品| 只有精品亚洲视频在线观看| 91麻豆精品久久久久| 精品老妇女久久9g国产| 中文字幕第1页av一天堂网| 91精品一区二区三区站长推荐| 午夜精品在线视频一区| 色综合久久无码中文字幕波多| 欧美香蕉人妻精品一区二区| 国产高清精品一区二区三区| 久久午夜夜伦痒痒想咳嗽P| 11久久久久久久久久久| 精品亚洲国产中文自在线| 精品人妻伦一二三区久| 在线免费观看日本伦理| 91精品激情五月婷婷在线| 亚洲av琪琪男人的天堂| 91色秘乱一区二区三区| 老鸭窝日韩精品视频观看| 爱有来生高清在线中文字幕| 无忧传媒在线观看视频| 欧美精品伦理三区四区| 亚洲2021av天堂| 亚洲av日韩精品久久久| 人妻无码色噜噜狠狠狠狠色| 欧美特色aaa大片| 自拍偷拍,中文字幕| 精品亚洲中文字幕av| 日日夜夜精品一二三| 最近中文2019年在线看| 国产麻豆乱子伦午夜视频观看| 精品国产亚洲av一淫| 女同互舔一区二区三区| 4个黑人操素人视频网站精品91| 宅男噜噜噜666免费观看| 99热99这里精品6国产| 天天日天天爽天天爽| 精彩视频99免费在线| 搞黄色在线免费观看| 亚洲欧美人精品高清| 天天干天天操天天摸天天射| 最新91精品视频在线 | 亚洲欧美激情国产综合久久久 | lutube在线成人免费看| 91极品新人『兔兔』精品新作| 亚洲 清纯 国产com| 中文字幕一区的人妻欧美日韩| 99av国产精品欲麻豆| 欧美精品 日韩国产| 天天日天天添天天爽| 北条麻妃高跟丝袜啪啪| 亚洲熟妇久久无码精品| 中文字幕人妻熟女在线电影| 欧美偷拍亚洲一区二区| 国产精品国产三级麻豆| 特级无码毛片免费视频播放| 大屁股熟女一区二区三区| 青青社区2国产视频| 久久永久免费精品人妻专区| 操操网操操伊剧情片中文字幕网| 青青青青视频在线播放| 欧美视频综合第一页| 国产夫妻视频在线观看免费| 在线观看免费av网址大全| 午夜在线观看一区视频| 欧美一级视频一区二区| 日本午夜久久女同精女女| 成年人的在线免费视频| 边摸边做超爽毛片18禁色戒| 中文字幕AV在线免费看 | 中文字幕日韩无敌亚洲精品| 一区二区三区蜜臀在线| 欧美日本在线观看一区二区| 在线免费观看靠比视频的网站 | weyvv5国产成人精品的视频| 中文字幕人妻熟女在线电影| 在线观看操大逼视频| 久久久精品999精品日本| 丁香花免费在线观看中文字幕| 免费看国产又粗又猛又爽又黄视频| 老鸭窝日韩精品视频观看| 欧美国品一二三产区区别| 97青青青手机在线视频| 国产成人无码精品久久久电影| 东京热男人的av天堂| 久精品人妻一区二区三区| 岛国毛片视频免费在线观看| 综合页自拍视频在线播放| 91精品高清一区二区三区| 中文字幕在线永久免费播放| nagger可以指黑人吗| 国产精品福利小视频a| 久草福利电影在线观看| 成人综合亚洲欧美一区| 亚洲变态另类色图天堂网| 深田咏美亚洲一区二区| 久久这里只有精彩视频免费| 91色秘乱一区二区三区| 天天射,天天操,天天说| 亚洲天天干 夜夜操| 99精品免费观看视频| 这里有精品成人国产99| 午夜久久久久久久99| 亚洲天堂第一页中文字幕| 天堂av在线播放免费| 欧洲日韩亚洲一区二区三区| 91av中文视频在线| 91国产资源在线视频| 在线视频这里只有精品自拍| 又粗又硬又猛又爽又黄的| nagger可以指黑人吗| 亚洲午夜高清在线观看| 亚洲一区二区久久久人妻| 亚洲精品乱码久久久本| 亚洲男人在线天堂网| 久久久久久久久久久免费女人| 亚国产成人精品久久久| 鸡巴操逼一级黄色气| 精品高潮呻吟久久av| 精品久久婷婷免费视频| 女警官打开双腿沦为性奴| 精品久久久久久高潮| 欧洲黄页网免费观看| 91片黄在线观看喷潮| 天天摸天天亲天天舔天天操天天爽| 青青热久免费精品视频在线观看 | 久草福利电影在线观看| 日韩美av高清在线| rct470中文字幕在线| 一区二区三区国产精选在线播放 | 黄片三级三级三级在线观看| 欧美一区二区中文字幕电影| 亚洲在线一区二区欧美| 99精品国自产在线人| 91p0rny九色露脸熟女| 一区二区在线视频中文字幕| 中国熟女@视频91| 中文字幕av一区在线观看| 国产在线观看黄色视频| 深田咏美亚洲一区二区| 国产精品sm调教视频| 中文字幕 码 在线视频| 岛国毛片视频免费在线观看| 青草久久视频在线观看| 中国产一级黄片免费视频播放| 欧美韩国日本国产亚洲| 一区二区三区麻豆福利视频| 熟女人妻在线观看视频| 亚洲精品国产久久久久久| 无码精品一区二区三区人| avjpm亚洲伊人久久| 亚洲国产在人线放午夜| 亚洲国产精品美女在线观看| 婷婷久久一区二区字幕网址你懂得| 中文字幕日韩91人妻在线| 亚洲国产精品中文字幕网站| av天堂中文免费在线| 午夜久久香蕉电影网| 中文字幕日本人妻中出| 日本一区精品视频在线观看| 久草视频在线一区二区三区资源站 | 在线观看视频一区麻豆| 男人操女人逼逼视频网站| 亚洲精品午夜久久久久| 爱爱免费在线观看视频| 五月天中文字幕内射| 自拍偷拍一区二区三区图片| 国产精品伦理片一区二区| 2018在线福利视频| 中文字幕中文字幕人妻| 免费在线观看视频啪啪| 91精品国产91久久自产久强| 日本一区精品视频在线观看| 国产精品久久久久国产三级试频| 看一级特黄a大片日本片黑人| 999久久久久999| 一区二区三区 自拍偷拍| 熟妇一区二区三区高清版| av在线免费中文字幕| 在线观看操大逼视频| 欧美日韩不卡一区不区二区| 人妻丝袜精品中文字幕| 国产大学生援交正在播放| 精品久久久久久久久久久99| 亚洲另类伦春色综合小| 91免费福利网91麻豆国产精品| 97人妻色免费视频| 国产精品久久久久久久久福交 | 国产妇女自拍区在线观看| 3337p日本欧洲大胆色噜噜| 亚洲国产欧美一区二区三区…| 成年人黄色片免费网站| 亚洲精品三级av在线免费观看| 人妻少妇性色欲欧美日韩| av日韩在线观看大全| 欧美成人精品在线观看| aiss午夜免费视频| 久久久久久性虐视频| 天天干天天啪天天舔| 99精品免费久久久久久久久a| 99热这里只有国产精品6| 国产福利小视频免费观看| 中文字幕乱码人妻电影| 日韩精品啪啪视频一道免费| 99久久99一区二区三区| 青青在线视频性感少妇和隔壁黑丝| 91国产在线免费播放| 日韩av有码中文字幕| 在线观看一区二区三级| 人妻丝袜诱惑我操她视频| 亚洲1069综合男同| 国产使劲操在线播放| 国产九色91在线视频| 亚洲免费成人a v| 中文字幕一区二区三区人妻大片| 国产精选一区在线播放| 国产女人叫床高潮大片视频| 57pao国产一区二区| 精品av久久久久久久| 直接能看的国产av| 97少妇精品在线观看| 午夜福利人人妻人人澡人人爽| av老司机亚洲一区二区| 成年人午夜黄片视频资源| 专门看国产熟妇的网站| 日韩熟女系列一区二区三区| 888欧美视频在线| 老司机午夜精品视频资源| 精内国产乱码久久久久久| 国产性生活中老年人视频网站| 久久久久久久99精品| 天天干天天操天天爽天天摸| 亚洲 中文 自拍 无码| 91九色porny国产蝌蚪视频| 91九色porny国产蝌蚪视频| 自拍偷拍亚洲另类色图| 人妻素人精油按摩中出| 天天操天天干天天日狠狠插| 日韩欧美一级黄片亚洲| 亚洲综合在线视频可播放| 少妇被强干到高潮视频在线观看| 在线观看操大逼视频| av中文字幕在线导航| 在线观看的a站 最新| 人妻久久久精品69系列| 在线观看的黄色免费网站| 521精品视频在线观看| chinese国产盗摄一区二区| 青青青青在线视频免费观看| av手机在线观播放网站| 亚洲精品亚洲人成在线导航| mm131美女午夜爽爽爽| 欧美成人猛片aaaaaaa| 亚洲av日韩精品久久久| 亚洲女人的天堂av| 欧美成人猛片aaaaaaa| 成人高清在线观看视频| 在线播放一区二区三区Av无码| 欧美亚洲中文字幕一区二区三区| 人妻久久无码中文成人| 久久久久久久亚洲午夜综合福利| 亚洲一区二区人妻av| 一区二区三区av高清免费| 精品日产卡一卡二卡国色天香| 91一区精品在线观看| 在线免费视频 自拍| 天天干天天操天天扣| 在线制服丝袜中文字幕| 熟女视频一区,二区,三区| 亚洲av自拍偷拍综合| 中文字幕高清在线免费播放| 人妻少妇中文有码精品| 91九色porny蝌蚪国产成人| 丰满少妇翘臀后进式| 大胸性感美女羞爽操逼毛片| 都市激情校园春色狠狠| 亚洲图库另类图片区| 日韩精品激情在线观看| 亚洲精品国产久久久久久| av大全在线播放免费| 亚洲天堂精品福利成人av| 国产精品一区二区av国| 国产中文精品在线观看| 污污小视频91在线观看| 老司机福利精品免费视频一区二区| 亚洲中文精品字幕在线观看| 天天综合天天综合天天网| av新中文天堂在线网址| 香蕉av影视在线观看| 中国黄色av一级片| 成熟熟女国产精品一区| 懂色av蜜桃a v| 亚洲精品久久视频婷婷| 亚洲天堂有码中文字幕视频| 中文字幕一区二区三区人妻大片| 久草电影免费在线观看| 日韩精品电影亚洲一区| 天堂av在线最新版在线| 亚洲精品 日韩电影| 亚洲精品无码久久久久不卡| 夫妻在线观看视频91| 啪啪啪啪啪啪啪啪av| 成人av久久精品一区二区| 国产精品福利小视频a| 亚洲欧美清纯唯美另类 | 黄色黄色黄片78在线| 色综合久久久久久久久中文| 91免费放福利在线观看| 精品成人午夜免费看| 最近中文字幕国产在线| 含骚鸡巴玩逼逼视频| 国产 在线 免费 精品| 在线免费观看国产精品黄色| 一级黄色片夫妻性生活| 久草福利电影在线观看| 2025年人妻中文字幕乱码在线| 亚洲国产中文字幕啊啊啊不行了 | 欧美xxx成人在线| 天天干天天操天天摸天天射| 亚洲午夜高清在线观看| av老司机精品在线观看| 亚洲成人熟妇一区二区三区| 亚洲人人妻一区二区三区| 国产性色生活片毛片春晓精品| 天天日天天敢天天干| 三级av中文字幕在线观看| 视频一区二区在线免费播放| 1769国产精品视频免费观看| 78色精品一区二区三区| 亚洲伊人久久精品影院一美女洗澡| 在线观看免费av网址大全| 少妇人妻久久久久视频黄片| 亚洲欧美一区二区三区爱爱动图| 中文字幕网站你懂的| 好吊操视频这里只有精品| 欧美精品 日韩国产| 中文字幕在线免费第一页| 天天干天天操天天插天天日| 国产视频网站国产视频| 66久久久久久久久久久| 人妻熟女中文字幕aⅴ在线| chinese国产盗摄一区二区| 免费看高清av的网站| 老司机在线精品福利视频| 熟女在线视频一区二区三区| 国产中文精品在线观看| 午夜久久久久久久99| 精品人妻每日一部精品| 日韩av有码中文字幕| 沙月文乃人妻侵犯中文字幕在线 | 亚洲护士一区二区三区| 日本a级视频老女人| 国产精品国产三级国产精东| 香蕉91一区二区三区| 成年午夜影片国产片| 日韩欧美一级aa大片| 欧美成一区二区三区四区| 免费在线福利小视频| 亚洲另类综合一区小说| 国产性色生活片毛片春晓精品 | 成人蜜臀午夜久久一区| 亚洲一区二区三区在线高清| 韩国AV无码不卡在线播放| 亚洲日产av一区二区在线| 国产精品久久久久久久精品视频 | 亚洲一级av大片免费观看| 11久久久久久久久久久| 欲乱人妻少妇在线视频裸| 日本少妇人妻xxxxx18| 色伦色伦777国产精品| 欧美国产亚洲中英文字幕| 国产福利小视频二区| 瑟瑟视频在线观看免费视频| 88成人免费av网站| huangse网站在线观看| 偷拍自拍福利视频在线观看| 美女大bxxxx内射| 好男人视频在线免费观看网站| 综合一区二区三区蜜臀| av乱码一区二区三区| 扒开让我视频在线观看| 熟女91pooyn熟女| 日本阿v视频在线免费观看| 日韩伦理短片在线观看| 国产精品sm调教视频| 天堂va蜜桃一区入口| 岛国黄色大片在线观看| 中文字母永久播放1区2区3区| 91中文字幕最新合集| 婷婷五月亚洲综合在线| 国产精品人妻熟女毛片av久| 亚洲视频在线观看高清| 成人在线欧美日韩国产| 一区二区三区四区视频| 孕妇奶水仑乱A级毛片免费看| 亚洲精品乱码久久久本| 99热这里只有国产精品6| 中文字幕AV在线免费看 | 91自产国产精品视频| 美女视频福利免费看| 午夜久久久久久久精品熟女| 伊人成人在线综合网| 91超碰青青中文字幕| 亚洲福利精品视频在线免费观看| 一区二区三区的久久的蜜桃的视频 | 在线视频这里只有精品自拍| 亚洲av自拍偷拍综合| 欧美久久一区二区伊人| 99精品国产aⅴ在线观看| 精品成人午夜免费看| 在线观看视频网站麻豆| 特大黑人巨大xxxx| 熟女视频一区,二区,三区| 人妻自拍视频中国大陆| 亚洲天堂成人在线观看视频网站| 青青青青爽手机在线| 国产精品黄页网站视频| 日日夜夜精品一二三| 熟女人妻在线观看视频| 欧美老鸡巴日小嫩逼| 偷青青国产精品青青在线观看| 在线免费观看av日韩| 青青社区2国产视频| 亚洲天堂有码中文字幕视频| 欧美精产国品一二三区| 国产一区二区欧美三区 | 亚洲另类图片蜜臀av| 在线新三级黄伊人网| 欧美国品一二三产区区别| 亚洲av天堂在线播放| 国产福利小视频免费观看| 亚洲人妻av毛片在线| 亚洲免费视频欧洲免费视频| 天天日天天天天天天天天天天| 性感美女福利视频网站| 超碰97人人澡人人| 在线网站你懂得老司机| 欧美日韩国产一区二区三区三州 | 中文字幕免费在线免费| 黄片色呦呦视频免费看| 人人妻人人澡欧美91精品| 精品美女久久久久久| 中文字幕一区的人妻欧美日韩| 青青草成人福利电影| 一区二区三区的久久的蜜桃的视频 | 天美传媒mv视频在线观看| 欧美视频不卡一区四区| 小泽玛利亚视频在线观看| 视频一区 视频二区 视频| 国产视频精品资源网站| 伊人精品福利综合导航| 中文亚洲欧美日韩无线码| 日韩在线视频观看有码在线| 欧美交性又色又爽又黄麻豆| 国产av自拍偷拍盛宴| 福利视频广场一区二区| 色吉吉影音天天干天天操| 91国内精品自线在拍白富美| 孕妇奶水仑乱A级毛片免费看| 人妻丝袜诱惑我操她视频| 亚洲一区二区三区uij| 国产密臀av一区二区三| 国产又粗又硬又猛的毛片视频| 91www一区二区三区| av亚洲中文天堂字幕网| 91天堂精品一区二区| 人妻少妇一区二区三区蜜桃| 日韩剧情片电影在线收看| 中出中文字幕在线观看| 欧美成人一二三在线网| 久久热这里这里只有精品| 久久精品国产999| 丰满少妇翘臀后进式| 9国产精品久久久久老师| 欧美日韩人妻久久精品高清国产| 免费在线观看视频啪啪| 91精品国产黑色丝袜| 福利午夜视频在线观看| 亚洲一区久久免费视频| 热99re69精品8在线播放| 99国产精品窥熟女精品| 亚洲无线观看国产高清在线| 亚洲av自拍偷拍综合| 免费无码人妻日韩精品一区二区| 狠狠的往里顶撞h百合| 在线免费观看日本伦理| 只有精品亚洲视频在线观看| 日本精品视频不卡一二三| 午夜精品亚洲精品五月色| 亚洲人成精品久久久久久久| 日韩近亲视频在线观看| 老熟妇xxxhd老熟女| 亚洲自拍偷拍综合色| 熟女人妻三十路四十路人妻斩| 777奇米久久精品一区| 88成人免费av网站| 天天插天天色天天日| 青草亚洲视频在线观看| 在线视频免费观看网| 社区自拍揄拍尻屁你懂的| 班长撕开乳罩揉我胸好爽| xxx日本hd高清| 97超碰国语国产97超碰| 成人高清在线观看视频| 97少妇精品在线观看| 开心 色 六月 婷婷| 2021年国产精品自拍| 国产精品一区二区三区蜜臀av| 久久热久久视频在线观看| 91人妻人人做人人爽在线| 大尺度激情四射网站| 精品视频中文字幕在线播放| 日韩精品中文字幕播放| 人妻最新视频在线免费观看| 日韩亚洲高清在线观看| 岛国毛片视频免费在线观看| 一区二区三区在线视频福利| 国产熟妇一区二区三区av| 国产欧美精品免费观看视频| av中文字幕国产在线观看| 亚洲1069综合男同| 免费av岛国天堂网站| 韩国AV无码不卡在线播放| 伊拉克及约旦宣布关闭领空| 一区二区麻豆传媒黄片| 99久久超碰人妻国产| 亚洲中文字幕人妻一区| 人人爱人人妻人人澡39| 日本熟妇喷水xxx| 欧洲欧美日韩国产在线| 天天操天天污天天射| 黑人3p华裔熟女普通话| 中国熟女一区二区性xx| 91国内视频在线观看| 成人乱码一区二区三区av| 亚洲一区二区三区在线高清| 久久精品视频一区二区三区四区| 欧美一区二区三区久久久aaa| www天堂在线久久| 激情国产小视频在线| 亚洲精品国偷自产在线观看蜜桃 | 2019av在线视频| 精品美女福利在线观看| 91精品国产高清自在线看香蕉网 | 天天干天天日天天谢综合156| 日韩在线视频观看有码在线| 涩爱综合久久五月蜜臀| 涩涩的视频在线观看视频| 人妻熟女中文字幕aⅴ在线| 色哟哟国产精品入口| 色婷婷精品大在线观看| 久久久极品久久蜜桃| 国产精品3p和黑人大战| 亚洲超碰97人人做人人爱| 蝴蝶伊人久久中文娱乐网 | 国产精品视频一区在线播放| 天天射夜夜操狠狠干| 日本一二三区不卡无| 大胸性感美女羞爽操逼毛片| 人妻凌辱欧美丰满熟妇| 97年大学生大白天操逼| 成人蜜桃美臀九一一区二区三区 | 偷拍3456eee| 国产精品黄色的av| 亚洲日本一区二区久久久精品| 亚洲国产最大av综合| 青青青青青免费视频| 欧美日韩在线精品一区二区三| 国产av自拍偷拍盛宴| 啪啪啪18禁一区二区三区| 亚洲av无硬久久精品蜜桃| 经典亚洲伊人第一页| 亚洲自拍偷拍精品网| 国产黄色大片在线免费播放| 日韩av有码一区二区三区4| 超鹏97历史在线观看| 国产九色91在线视频| 国产亚洲天堂天天一区| 熟女俱乐部一二三区| av中文字幕电影在线看| 水蜜桃一区二区三区在线观看视频 | 日韩欧美一级aa大片| yellow在线播放av啊啊啊| 亚洲粉嫩av一区二区三区| 熟女妇女老妇一二三区| 亚洲另类伦春色综合小| 99精品视频在线观看婷婷| 国产+亚洲+欧美+另类| 天天射夜夜操综合网| 人妻爱爱 中文字幕| 91大神福利视频网| 99热久久这里只有精品8| nagger可以指黑人吗| 亚洲精品午夜久久久久| 欧美色呦呦最新网址| 青娱乐在线免费视频盛宴| 国产大鸡巴大鸡巴操小骚逼小骚逼| 亚洲午夜高清在线观看| 日韩欧美一级黄片亚洲| av天堂中文免费在线| av俺也去在线播放| 午夜国产福利在线观看| 成人影片高清在线观看| 蜜臀av久久久久久久| 天天干天天操天天玩天天射 | 亚洲高清国产自产av| 狠狠躁夜夜躁人人爽天天久天啪| 狠狠嗨日韩综合久久| eeuss鲁片一区二区三区| 亚洲欧美成人综合在线观看| 国产精品国色综合久久| 免费黄高清无码国产| 欧美成人综合视频一区二区| 日韩在线中文字幕色| 亚洲国产40页第21页| 韩国男女黄色在线观看| 亚洲欧美在线视频第一页| 色花堂在线av中文字幕九九| 国产精品久久久久久久久福交 | 天天干天天操天天摸天天射| 国产又粗又猛又爽又黄的视频美国 | 青青青青视频在线播放| 一区二区三区另类在线| 天天日天天摸天天爱| 日美女屁股黄邑视频| 91片黄在线观看喷潮| 天天干天天搞天天摸| 中文字幕—97超碰网| 蜜臀av久久久久蜜臀av麻豆| 黄色中文字幕在线播放| av一本二本在线观看| 亚洲激情偷拍一区二区| 人人妻人人爽人人添夜|