Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何用虚线制作进度条?_Javascript_Css_Sass_Progress Bar - Fatal编程技术网

Javascript 如何用虚线制作进度条?

Javascript 如何用虚线制作进度条?,javascript,css,sass,progress-bar,Javascript,Css,Sass,Progress Bar,也许你已经看过这样的进度条了?例如,共享链接。有什么办法吗?非常感谢。 HTML5 Canvas API是一个很好的纯JS解决方案,适用于这类问题 看看这个- 我认为画布不是最好的解决方案 您可以使用SVG轻松创建此功能: 将某些行作为示例,对其进行修改以解决您的问题: var svg = document.createElementNS("http://www.w3.org/2000/svg", "svg"); svg.setAttribute('width', '20

也许你已经看过这样的进度条了?例如,共享链接。有什么办法吗?非常感谢。
HTML5 Canvas API是一个很好的纯JS解决方案,适用于这类问题

看看这个-


我认为画布不是最好的解决方案

您可以使用SVG轻松创建此功能:

将某些行作为示例,对其进行修改以解决您的问题:

      var svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
      svg.setAttribute('width', '200');
      svg.setAttribute('height', '200');
      svg.setAttribute("viewBox", "0 0 200 200"); 
      svg.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xlink", "http://www.w3.org/1999/xlink");

    var myLine=document.createElementNS("http://www.w3.org/2000/svg", "line");
      with(myLine){
        setAttribute("x1", "100");
        setAttribute("y1", "5");
        setAttribute("x2", "100");
        setAttribute("y2", "15");
        setAttribute("stroke", "#ccc");
        setAttribute("stroke-width", "2");
        setAttribute("transform", "rotate(0,100,100)");

      }
    var myNodes=[];
    var els=100;
    var step = 360/els;
    for (var i=0;i<els;i++){
      myNodes[i]=myLine.cloneNode(true);
      myNodes[i].setAttribute("transform", "rotate("+i*step+",100,100)");
      svg.appendChild(myNodes[i]);
    }

    //make 30% red;
    var percent=30;
    for (i=0;i<=percent;i++){
      myNodes[i].setAttribute("stroke", "#f00");
    }
    document.body.appendChild(svg);
var svg=document.createElements(“http://www.w3.org/2000/svg“,“svg”);
setAttribute('width','200');
setAttribute('height','200');
setAttribute(“viewBox”、“02000”);
svg.setAttributeNS(“http://www.w3.org/2000/xmlns/“,”xmlns:xlink“,”http://www.w3.org/1999/xlink");
var myLine=文档.createElementNS('http://www.w3.org/2000/svg“,”行“);
带(myLine){
setAttribute(“x1”、“100”);
setAttribute(“y1”、“5”);
setAttribute(“x2”、“100”);
setAttribute(“y2”、“15”);
setAttribute(“笔划”,“#ccc”);
setAttribute(“笔划宽度”、“2”);
setAttribute(“变换”、“旋转(0100)”);
}
var myNodes=[];
var=100;
var阶跃=360/els;

对于(var i=0;i如果您想要一个简单的进度条,您可以使用HTML5的
元素(),它似乎得到了很好的支持:


然后,您可以在其上应用自定义样式,以便在进度增加时可以看到小点。

您好,欢迎使用StackOverflow。请花一些时间阅读帮助页面,特别是名为和的部分。更重要的是,请阅读。您可能还想了解。有一个名为ProgressBar的神奇库.js-
      var svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
      svg.setAttribute('width', '200');
      svg.setAttribute('height', '200');
      svg.setAttribute("viewBox", "0 0 200 200"); 
      svg.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xlink", "http://www.w3.org/1999/xlink");

    var myLine=document.createElementNS("http://www.w3.org/2000/svg", "line");
      with(myLine){
        setAttribute("x1", "100");
        setAttribute("y1", "5");
        setAttribute("x2", "100");
        setAttribute("y2", "15");
        setAttribute("stroke", "#ccc");
        setAttribute("stroke-width", "2");
        setAttribute("transform", "rotate(0,100,100)");

      }
    var myNodes=[];
    var els=100;
    var step = 360/els;
    for (var i=0;i<els;i++){
      myNodes[i]=myLine.cloneNode(true);
      myNodes[i].setAttribute("transform", "rotate("+i*step+",100,100)");
      svg.appendChild(myNodes[i]);
    }

    //make 30% red;
    var percent=30;
    for (i=0;i<=percent;i++){
      myNodes[i].setAttribute("stroke", "#f00");
    }
    document.body.appendChild(svg);