首页 > 其他分享 >JQ插件:Knob旋钮按钮

JQ插件:Knob旋钮按钮

时间:2023-06-08 16:38:02浏览次数:57  
标签:Knob knob 插件 angle ea JQ xy lineWidth data


在线演示



用法介绍:



分享一款超棒的jQuery旋钮插件 - jQuery knob



http://anthonyterrien.com/knob/



我要实现的效果:




JQ插件:Knob旋钮按钮_javascript



就是需要下方有一个缺口,用于显示一些文字。


我利用knob只显示了这个圆环,其中的文本数字都是在div中显示的,跟knob无关!




首先导入jquery和knob插件:


<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="js/jquery.knob.js"></script>




然后定义一个div用于显示圆环:



<div class="knob" data-width="250" data-height="250" data-bgcolor="#333" data-fgColor="#6B4F00" data-angleOffset="-140" data-angleArc="280" data-displayInput="false" data-readOnly="true" ></div>




注意设置其中的data-angleOffset和data-angleArc,这样一个环就出来了,默认应该是完整的圈圈。



JS代码:



$(".knob").knob({
   		change : function (value) {
      	},
      	release : function (value) {
          	console.log("release : " + value);
      	},
      	cancel : function () {
          	console.log("cancel : ", this);
       	},
       	draw : function () {//设置了data-skin="tron"才有效

         	// "tron" case
          	if(this.$.data('skin') == 'tron') {

             	var a = this.angle(this.cv)  // Angle
               	, sa = this.startAngle          // Previous start angle
               	, sat = this.startAngle         // Start angle
               	, ea                            // Previous end angle
               	, eat = sat + a                 // End angle
               	, r = 1;

               	this.g.lineWidth = this.lineWidth;

               	this.o.cursor
                 	&& (sat = eat - 0.3)
                  	&& (eat = eat + 0.3);

                  	if (this.o.displayPrevious) {
                     	ea = this.startAngle + this.angle(this.v);
                      	this.o.cursor
                         	&& (sa = ea - 0.3)
                          	&& (ea = ea + 0.3);
                      	this.g.beginPath();
                       	this.g.strokeStyle = this.pColor;
                       	this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, sa, ea, false);
                       	this.g.stroke();
                  	}

                  	this.g.beginPath();
                   	this.g.strokeStyle = r ? this.o.fgColor : this.fgColor ;
                   	this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, sat, eat, false);
                  	this.g.stroke();

                  	this.g.lineWidth = 2;
                  	this.g.beginPath();
                   	this.g.strokeStyle = this.o.fgColor;
                   	this.g.arc( this.xy, this.xy, this.radius - this.lineWidth + 1 + this.lineWidth * 2 / 3, 0, 2 * Math.PI, false);
                   	this.g.stroke();

                   	return false;
          	}
      	}
   	});




最后为其动态设置value:



$(".knob").val(data.loyalty.progress_percentage).trigger("change");



data.loyalty.progress_percentage是个百分比值,根据你的需要传入即可。



更多功能请参考网上其他文档。



还可以试试这个插件:


http://www.jqueryscript.net/chart-graph/Animated-Circle-Statistics-Plugin-With-jQuery-Canvas-Circliful.html



标签:Knob,knob,插件,angle,ea,JQ,xy,lineWidth,data
From: https://blog.51cto.com/u_5454003/6441234

相关文章

  • JQ插件:日期时间选择器date picker
    这个控件关键是它能支持在mobile中显示。iPhone和android中显示可能略有差别。下图是在android中的显示效果:再看一下用法首先导入JQ和datepicker插件:<linkrel="stylesheet"type="text/css"href="css/picker/default.css"/><linkrel="stylesheet&qu......
  • jquery 实现 点击按钮后倒计时效果,多用于实现发送手机验证码、邮箱验证码
    <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><title></title>......
  • VSCode 插件开发系列教程
    VSCode插件架构,VSCode是通过Electron实现跨平台的,而Electron则是基于Chromium和Node.js,比如VSCode的界面,就是通过Chromium进行渲染的。同时,VSCode是多进程架构,当VSCode第一次被启动时会创建一个主进程(mainprocess),然后每个窗口,都会创建一个渲染进程(Renderer......
  • Lombok插件
    1、简介Lombok是简化javabean开发的一款插件.在处理例如getset方法,构造器、tostring方法等可以帮助提高开发效率. 2、集成lombok(1)、idea安装lombok插件 (2)、项目集成lombok这里以spring-boot 2.3.4.RELEASE为例子,默认集成了lombok 3、实战(1)、@Data注解 ......
  • JQuery-XSS漏洞(CVE-2020-11022/CVE-2020-11023)
    JQuery-XSS漏洞(CVE-2020-11022/CVE-2020-11023)详细描述据NVD描述:在大于或等于1.2且在3.5.0之前的jQuery版本中,即使执行了消毒(sanitize)处理,也仍会执行将来自不受信任来源的HTML传递给jQuery的DOM操作方法(即html()、.append()等),从而导致xss漏洞。受影响版本大于等于1.2,小于......
  • Webpack 插件实现 CSS 样式尺寸单位转换
    Webpack插件实现CSS样式尺寸单位转换实现方式一插件代码以下是编写的一个Webpack插件,用于将样式文件中以rpx为单位的值转换为以px为单位的值(换算比率为1px=2rpx):constpluginName="CssSzieConvertPlugin";classCssSzieConvertPlugin{apply(compiler){......
  • 运维人员福音!自定义插件为运维提供更多可能
    想要轻松应对业务问题吗?想要想迪哥一样不再焦虑吗?想要实现指标监控自主性吗?倾情推荐嘉为蓝鲸一体化运维平台WeOps让监测更加随心应手只要能用工具解决的问题WeOps都能解决支持跨云跨管理,低负载采用Agent-Proxy-Server模式,轻松实现企业跨云跨网络的管理诉求。Agent启动内存仅需20M,资......
  • mybatis-plus分页插件新版本失效问题
    背景搭建新环境时,升级了下mybatis-plus的版本到3.5.3.1,结果发现原本的分页插件PaginationInterceptor已被剔除,从官网得知需使用PaginationInnerInterceptor,在此记录一下。<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifa......
  • qt 定义插件
    定义的接口----------------------------------------------#ifndefREGEXPINTERFACE_H#defineREGEXPINTERFACE_H#include<QString>classRegExpInterface{public:virtual~RegExpInterface(){}virtualQStringregexp(constQString&message)=0;};Q_DECLARE_INTERF......
  • 资源-vscode 插件
    2023-6bettercomments//todo会高亮gitlensliveserver如果有安装npm的就更好prettier-codeformatterremoveemptylines虽然可以正则替换但是还是这个方便rainbowcsvofficeviewer不会自动更新的。还是简单用这个查看一下autorenametag好像会导致bug?......