日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

canvas转盘-拯救选择困难

發布時間:2024/8/23 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 canvas转盘-拯救选择困难 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉盤-拯救選擇困難

    • 效果圖
    • 簡介
    • 代碼

效果圖

簡介

每到飯點就糾結吃什么,不如直接roll點。

  • 詞條框中輸入選項,選項用逗號(中英都可)隔開。
  • 點擊設置詞條,會根據詞條(沒有輸入則獲取代碼中的默認詞條)繪制等比例扇形圖。
  • 點擊start 開始旋轉,根據旋轉角度計算結果,旋轉角度以及旋轉時間是完全隨機的,有時會很快有時會很慢。
  • 注意:選項不宜過多,雖然對功能沒影響,不過文本會顯示不開。另外可以將文件傳到手機隨身攜帶,沒有過多的腳本,大部分瀏覽器兼容

    代碼

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>轉盤</title><style>.base{width: 400px;margin: 20px auto;}.wrap {position: relative;width: 400px;height: 400px;}#cv {position: relative;border-radius: 100%;border: 1px solid #f4f4f4;box-shadow: 8px 5px 10px 2px #ddd;}.pointer {position: absolute;width: 100%;height: 100%;left: 0;top: 0;}.pointer-center,.pointer-line {position: absolute;border: 1px solid #ddd;background: #fff;}.pointer-center {left: 0;right: 0;top: 0;bottom: 0;margin: auto;width: 20px;height: 20px;border-radius: 100%;}.pointer-line {left: 0;right: 0;top: calc(33% + 17px);bottom: 0;margin: auto;width: 8px;height: 33%;border-radius: 0 0 4px 4px/0 0 50% 50%;border-top: 0;}.handle {display: block;width: auto;height: 30px;padding: 3px 10px;margin: 20px auto 0;line-height: 30px;font-size: 20px;font-weight: bold;color: #F44336;text-align: center;cursor: pointer;border: 1px solid #D0D0D0;border-radius: 3px;}.handle:hover {color: mediumseagreen;}#custom {width: 400px;height: 100px;margin-top: 20px;border-radius: 3px;padding: 2px;outline: none;border: 1px solid #D0D0D0;}</style> </head> <body> <div class="base"><div class="wrap"><canvas id="cv" width="400px" height="400px"></canvas><div class="pointer"><i class="pointer-center"></i><i class="pointer-line"></i></div></div><span class="handle" id="start">start</span><textarea type="text" id="custom"></textarea><div class="handle" id="setting">設置詞條</div><div style="font-size: 14px;text-align: center">設置轉盤選項,不輸入則添加默認值</div><div class="handle" id="see" style="height:auto">查看詞條</div> </div> <script>var defaultStr = '選項1,選項2,選項3,選項4,選項5';var colors = ['#92dfff', '#ffb884', '#b5ff80', '#f7ff45'];var setting = document.getElementById('setting'),custom = document.getElementById('custom'),see = document.getElementById('see');setting.addEventListener('click', function () {render(custom.value)});see.addEventListener('click',function(){this.innerHTML=defaultStr.split(/,|,/).join('<br>');});function render(str) {var itemStr = str || defaultStr;var items = itemStr.split(/,|,/).map(function (item) {return {label: item}});var len_items = items.length, len_colors = colors.length;//len_items % len_colors < len_colors 多出的items 部分從顏色盤的順位取色避免相鄰重色//計算開始順位索引var ondex = len_items - len_items % len_colors;//匹配顏色var i;for (i = 0; i < ondex; i++) {items[i].color = colors[i % len_colors];}for (; i < items.length; i++) {items[i].color = colors[i % len_colors + 1];}var drawing, start, context, cx, cy;//創建畫布document.querySelector('.wrap').innerHTML = document.querySelector('.wrap').innerHTML;drawing = document.getElementById('cv');start = document.getElementById('start');context = drawing.getContext("2d");cx = drawing.width / 2;cy = drawing.height / 2;//繪制var per = 2 * Math.PI / items.length;//各扇區角度var startAngle = 0.5 * Math.PI, endAngle = startAngle + per;//初始角度//重置中心點context.translate(cx, cy);items.forEach(function (item) {context.beginPath();context.moveTo(0, 0);//中心點context.lineTo(0, cy);//正方向context.arc(0, 0, cy, startAngle, endAngle);context.lineTo(0, 0);context.fillStyle = item.color;context.fill();context.closePath();//繪制文字context.rotate(0.5 * per);context.font = '400 12px Arial';context.textAlign = 'center';context.fillStyle = '#000';context.fillText(item.label, 0, cy * 0.8);//旋轉畫板context.rotate(0.5 * per);});start.addEventListener('click', function () {var angle, time;//隨機旋轉角度angle = parseInt(Math.random() * 8000);time = 4 + angle / 360 * 0.5;drawing.style = 'transform:rotate(0deg);transition:none';setTimeout(function () {drawing.style = 'transform:rotate(' + angle + 'deg);transition:transform ' + time + 's cubic-bezier(0.15, 0.72, 0.25, 1) 0s';//計算旋轉角度相對于初始角度偏角占360度的比例setTimeout(function () {var anglePer, rollNum,result;anglePer = angle % 360 / 360;//旋轉過的面板數(注意是逆向旋轉)rollNum = Math.ceil(anglePer / (1 / len_items));result = items[len_items - rollNum].label;//輸出結果console.log(result);alert(result);}, time * 1000)})})}</script> </body> </html>

    總結

    以上是生活随笔為你收集整理的canvas转盘-拯救选择困难的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日韩av影片在线观看 | 在线观看午夜 | 在线观看91av| 午夜久久久久久久久 | 伊人88| 黄色av网站网址 | 日韩毛片在线观看 | 伊人伊人伊人 | 麻豆视频污 | 一级黄色a级片 | 最新版天堂资源在线 | 色呦呦在线观看视频 | 九九色综合 | 禁漫天堂黄漫画无遮挡观看 | 国产91精品欧美 | 深夜av| 亚洲AV无码国产日韩久久 | 亚洲品质自拍视频 | 天天综合av| 琪琪射 | 免费高清黄色 | 91九色偷拍| 波多野结衣电车痴汉 | 亲子乱对白乱都乱了 | 成人免费无码大片a毛片抽搐色欲 | 成人性生交视频免费观看 | 成人爱爱视频 | 国产精品高潮呻吟久久久久久 | 色欲久久久天天天精品综合网 | 国语对白做受69 | 国产精品野外户外 | 午夜秋霞影院 | 中文字幕 日本 | 久久亚洲在线 | 丰满的女人性猛交 | 国产免费又黄又爽又色毛 | 亚洲成人日韩在线 | 黄色大片网站在线观看 | 国产视频a | 久久久久久欧美精品se一二三四 | 伊人影院在线视频 | 高清毛片aaaaaaaaa片 | 香蕉色网| 国产精品美女高潮无套 | 国产色一区 | 少妇视频网 | 国产成人无码性教育视频 | 麻豆视频在线观看 | 青青草日韩 | 国产大片一区二区 | 猛1被调教成公厕尿便失禁网站 | 久久影| 中文字幕11页中文字幕11页 | 亚洲激情一区二区 | 激情内射亚洲一区二区三区爱妻 | 久久久久亚洲国产 | 免费在线观看亚洲 | 一级性视频 | 欧美久久一级 | 成人污污视频 | 中文在线а√在线 | 国产欧美一区二区精品久久久 | 国产精品一区二区三区不卡 | 亚州男人天堂 | 97精品人妻一区二区三区蜜桃 | 中文字幕亚洲一区二区三区五十路 | 久草中文在线 | 国产精品一区在线看 | 精品色图| 91在线视频国产 | 制服.丝袜.亚洲.中文.综合懂 | 黄片毛片一级 | 波多野结衣在线网址 | 国产真实伦对白全集 | 名人明星三级videos | 中文字幕免费在线看线人动作大片 | 少妇高潮一区二区三区99 | 在线欧美一区二区 | 91精品久久久久久久久中文字幕 | 在线观看黄色的网站 | 一本色道久久综合狠狠躁 | a级在线观看网站 | 粉嫩aⅴ一区二区三区四区五区 | 国产毛片久久久久久国产毛片 | 精品99视频 | 色戒电影未测减除版 | 久久久久蜜桃 | 2019国产精品视频 | 久久精久久 | 免费观看一区二区三区视频 | 伊人tv| 黄色99 | 国产无套免费网站69 | 免费看裸体视频网站 | 在线免费黄网 | 激情91| 中文字幕免费高清 | 国产黄色一级片 | 天天5g天天看 |