欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS實現(xiàn)圓形進(jìn)度條拖拽滑動

 更新時間:2021年10月19日 17:16:24   作者:Initail  
這篇文章主要為大家詳細(xì)介紹了JS實現(xiàn)圓形進(jìn)度條拖拽滑動,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了JS實現(xiàn)圓形進(jìn)度條拖拽滑動的具體代碼,供大家參考,具體內(nèi)容如下

效果展示

半圓進(jìn)度條效果

圓形進(jìn)度條

代碼實現(xiàn)

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  <title> 圓形進(jìn)度條拖拽滑動 </title>
</head>
<body>
<canvas id="canvasId" width="400" height="400"></canvas>
<script type="text/javascript">
    var canvas = document.getElementById("canvasId");
    var ctx = canvas.getContext("2d");
    var ox = 200;
    var oy = 200;
    var or = 180;
    var br = 15;
    var moveFlag = false;

    function offset(r,d) {//根據(jù)弧度與距離計算偏移坐標(biāo)
        return {x: -Math.sin(r)*d, y: Math.cos(r)*d};
    };

    function draw(n) {
        ctx.clearRect(0,0,canvas.width,canvas.height);
        ctx.strokeStyle = "#99a";
        ctx.lineWidth = 5;
        ctx.beginPath();
        ctx.arc(ox,oy,or,0,Math.PI,true);//半圓
        // ctx.arc(ox,oy,or,0,2*Math.PI,true);//整圓
        ctx.stroke();
        ctx.strokeStyle = "#69f";
        ctx.lineWidth = 5;
        ctx.beginPath();
        ctx.arc(ox,oy,or,Math.PI,(n*2+0.5)*Math.PI,false);
        // ctx.arc(ox,oy,or,0.5*Math.PI,(n*2+0.5)*Math.PI,false);
        ctx.stroke();
        ctx.fillStyle = "#69f";
        ctx.font = "80px Arial";
        ctx.textAlign = "center";
        ctx.textBaseline = "middle";
        ctx.fillText(Math.round(n*100-25)+"%",ox,oy);
        ctx.fillStyle = "#00f";
        ctx.beginPath();
        var d =  offset(n*2*Math.PI,or);
        ctx.arc(ox+d.x,oy+d.y,br,0,2*Math.PI,true);
        ctx.fill();
    }

    var on = ("ontouchstart" in document)? {
        start: "touchstart", move: "touchmove", end: "touchend"
    } : {
        start: "mousedown", move: "mousemove", end: "mouseup"
    };

    function getXY(e,obj) {
        var et = e.touches? e.touches[0] : e;
        var x = et.clientX;
        var y = et.clientY;
        return {
            x : x - obj.offsetLeft + (document.body.scrollLeft || document.documentElement.scrollLeft),
            y : y - obj.offsetTop  + (document.body.scrollTop || document.documentElement.scrollTop)
        }
    }

    canvas.addEventListener(on.start, function(e) {
        moveFlag = true;
    }, false);

    canvas.addEventListener(on.move, function(e) {
        if (moveFlag) {
            var k = getXY(e,canvas);
            var r = Math.atan2(k.x-ox, oy-k.y);
            var hd = (Math.PI+r)/(2*Math.PI);

            // 半圓的滑動范圍判斷
            if (hd <= 0.75 && hd >= 0.25) {
                draw(hd);
            }
        }
    }, false);

    canvas.addEventListener(on.end, function(e) {
        moveFlag = false;
    }, false);

    draw(0.25);
</script>

</body>
</html>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • uniapp介紹與使用以及小程序?qū)崟r獲取視頻播放時間

    uniapp介紹與使用以及小程序?qū)崟r獲取視頻播放時間

    這篇文章主要給大家介紹了關(guān)于uniapp介紹與使用以及小程序?qū)崟r獲取視頻播放時間的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用uniapp具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-02-02
  • 你知道JavaScript Symbol類型怎么用嗎

    你知道JavaScript Symbol類型怎么用嗎

    這篇文章主要介紹了你知道JavaScript Symbol類型怎么用嗎,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 基于JS實現(xiàn)html中placeholder屬性提示文字效果示例

    基于JS實現(xiàn)html中placeholder屬性提示文字效果示例

    這篇文章主要介紹了基于JS實現(xiàn)html中placeholder屬性提示文字效果,涉及javascript事件響應(yīng)及頁面元素屬性動態(tài)操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2018-04-04
  • 深入理解js數(shù)組的sort排序

    深入理解js數(shù)組的sort排序

    下面小編就為大家?guī)硪黄钊肜斫鈐s數(shù)組的sort排序。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • layui 圖片上傳+表單提交+ Spring MVC的實例

    layui 圖片上傳+表單提交+ Spring MVC的實例

    今天小編就為大家分享一篇layui 圖片上傳+表單提交+ Spring MVC的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • JS實現(xiàn)網(wǎng)頁煙花動畫效果

    JS實現(xiàn)網(wǎng)頁煙花動畫效果

    這篇文章主要為大家詳細(xì)介紹了JS實現(xiàn)網(wǎng)頁煙花動畫效果,點擊鼠標(biāo)煙花向四周擴(kuò)散,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • javascript 四十條常用技巧大全

    javascript 四十條常用技巧大全

    本文給大家整理了有關(guān)js四十條常用技巧,本文介紹的非常詳細(xì),具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-09-09
  • JavaScript中創(chuàng)建原子的方法總結(jié)

    JavaScript中創(chuàng)建原子的方法總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于JavaScript中創(chuàng)建原子的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • es6中??與||區(qū)別小結(jié)

    es6中??與||區(qū)別小結(jié)

    本文主要介紹了es6中??與||區(qū)別小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • JS簡單數(shù)組排序操作示例【sort方法】

    JS簡單數(shù)組排序操作示例【sort方法】

    這篇文章主要介紹了JS簡單數(shù)組排序操作,結(jié)合實例形式分析了javascript使用sort方法進(jìn)行數(shù)組排序的相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05

最新評論