- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用这个 jquery CircleChart.min.js 圆图插件。它在所有浏览器上工作正常,但在 Internet Explorer 11 IE11 上出现以下错误。我该如何修复它?
$(".circleChart#0").circleChart({
size:150,
value: 50,
text: 0,
onDraw: function(el, circle) {
circle.text(Math.round(circle.value) + "%");
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery-circlechart@2.3.0/src/circleChart.min.js"></script>
<html>
<body>
<div class="circleChart" id="0"></div>
</body>
</html>
最佳答案
问题在于所提供的脚本使用 ES6 语法和方法:
// ...
const defaults = {
// ...
Math.linearTween = (t, b, c, d) => c * t / d + b;
// ...
let copy = Object.assign({}, this);
解决方法是将脚本转换为 ES5 语法,使用 Babel首先(只需粘贴 https://cdn.jsdelivr.net/npm/jquery-circlechart@2.3.0/src/circleChart.min.js 中的代码),然后安装所需的 polyfill。
大<script>
下面的文本只是 circleChart.min.js
的 Babeled 和缩小版。 。在 IE11 上运行以下代码片段,它会按预期工作:
$(".circleChart#0").circleChart({
size:150,
value: 50,
text: 0,
onDraw: function(el, circle) {
circle.text(Math.round(circle.value) + "%");
}
});
<script src="https://cdn.polyfill.io/v2/polyfill.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>"use strict";(function($){"use strict";$.fn.circleChart=function(options){var defaults={color:"#3459eb",backgroundColor:"#e6e6e6",background:!0,speed:2000,widthRatio:0.2,value:66,unit:'percent',counterclockwise:!1,size:110,startAngle:0,animate:!0,backgroundFix:!0,lineCap:"round",animation:"easeInOutCubic",text:!1,redraw:!1,cAngle:0,textCenter:!0,textSize:!1,textWeight:'normal',textFamily:'sans-serif',relativeTextSize:1/7,autoCss:!0,onDraw:!1};Math.linearTween=function(t,b,c,d){return c*t/d+b};Math.easeInQuad=function(t,b,c,d){t/=d;return c*t*t+b};Math.easeOutQuad=function(t,b,c,d){t/=d;return-c*t*(t-2)+b};Math.easeInOutQuad=function(t,b,c,d){t/=d/2;if(t<1)return c/2*t*t+b;t--;return-c/2*(t*(t-2)-1)+b};Math.easeInCubic=function(t,b,c,d){t/=d;return c*t*t*t+b};Math.easeOutCubic=function(t,b,c,d){t/=d;t--;return c*(t*t*t+1)+b};Math.easeInOutCubic=function(t,b,c,d){t/=d/2;if(t<1)return c/2*t*t*t+b;t-=2;return c/2*(t*t*t+2)+b};Math.easeInQuart=function(t,b,c,d){t/=d;return c*t*t*t*t+b};Math.easeOutQuart=function(t,b,c,d){t/=d;t--;return-c*(t*t*t*t-1)+b};Math.easeInOutQuart=function(t,b,c,d){t/=d/2;if(t<1)return c/2*t*t*t*t+b;t-=2;return-c/2*(t*t*t*t-2)+b};Math.easeInQuint=function(t,b,c,d){t/=d;return c*t*t*t*t*t+b};Math.easeOutQuint=function(t,b,c,d){t/=d;t--;return c*(t*t*t*t*t+1)+b};Math.easeInOutQuint=function(t,b,c,d){t/=d/2;if(t<1)return c/2*t*t*t*t*t+b;t-=2;return c/2*(t*t*t*t*t+2)+b};Math.easeInSine=function(t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b};Math.easeOutSine=function(t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b};Math.easeInOutSine=function(t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b};Math.easeInExpo=function(t,b,c,d){return c*Math.pow(2,10*(t/d-1))+b};Math.easeOutExpo=function(t,b,c,d){return c*(-Math.pow(2,-10*t/d)+1)+b};Math.easeInOutExpo=function(t,b,c,d){t/=d/2;if(t<1)return c/2*Math.pow(2,10*(t-1))+b;t--;return c/2*(-Math.pow(2,-10*t)+2)+b};Math.easeInCirc=function(t,b,c,d){t/=d;return-c*(Math.sqrt(1-t*t)-1)+b};Math.easeOutCubic=function(t,b,c,d){t/=d;t--;return c*(t*t*t+1)+b};Math.easeInOutCubic=function(t,b,c,d){t/=d/2;if(t<1)return c/2*t*t*t+b;t-=2;return c/2*(t*t*t+2)+b};Math.easeOutCirc=function(t,b,c,d){t/=d;t--;return c*Math.sqrt(1-t*t)+b};Math.easeInOutCirc=function(t,b,c,d){t/=d/2;if(t<1)return-c/2*(Math.sqrt(1-t*t)-1)+b;t-=2;return c/2*(Math.sqrt(1-t*t)+1)+b};var Circle=function Circle(pos,bAngle,eAngle,cAngle,radius,lineWidth,sAngle,settings){var circle=Object.create(Circle.prototype);circle.pos=pos;circle.bAngle=bAngle;circle.eAngle=eAngle;circle.cAngle=cAngle;circle.radius=radius;circle.lineWidth=lineWidth;circle.sAngle=sAngle;circle.settings=settings;return circle};Circle.prototype={onDraw:function onDraw(el){if(this.settings.onDraw!==!1){var copy=Object.assign({},this);var units={'percent':rToP,'rad':function rad(e){return e},'default':rToD};copy.value=(units[this.settings.unit]||units['default'])(copy.cAngle);copy.text=function(text){return setCircleText(el,text)};copy.settings.onDraw(el,copy)}},drawBackground:function drawBackground(ctx){ctx.beginPath();ctx.arc(this.pos,this.pos,this.settings.backgroundFix?this.radius*0.9999:this.radius,0,2*Math.PI);ctx.lineWidth=this.settings.backgroundFix?this.lineWidth*0.95:this.lineWidth;ctx.strokeStyle=this.settings.backgroundColor;ctx.stroke()},draw:function draw(ctx){ctx.beginPath();if(this.settings.counterclockwise){var k=2*Math.PI;ctx.arc(this.pos,this.pos,this.radius,k-this.bAngle,k-(this.bAngle+this.cAngle),this.settings.counterclockwise)}else{ctx.arc(this.pos,this.pos,this.radius,this.bAngle,this.bAngle+this.cAngle,this.settings.counterclockwise)}
ctx.lineWidth=this.lineWidth;ctx.lineCap=this.settings.lineCap;ctx.strokeStyle=this.settings.color;ctx.stroke()},animate:function animate(el,ctx,time,startTime,move){var _this=this;var mspf=new Date().getTime()-time;if(mspf<1){mspf=1}
if(time-startTime<this.settings.speed*1.05&&(!move&&this.cAngle*1000<=Math.floor(this.eAngle*1000)||move&&this.cAngle*1000>=Math.floor(this.eAngle*1000))){this.cAngle=Math[this.settings.animation]((time-startTime)/mspf,this.sAngle,this.eAngle-this.sAngle,this.settings.speed/mspf);ctx.clearRect(0,0,this.settings.size,this.settings.size);if(this.settings.background){this.drawBackground(ctx)}
this.draw(ctx);this.onDraw(el);time=new Date().getTime();rAF(function(){return _this.animate(el,ctx,time,startTime,move)})}else{this.cAngle=this.eAngle;ctx.clearRect(0,0,this.settings.size,this.settings.size);if(this.settings.background){this.drawBackground(ctx)}
this.draw(ctx);this.setCurrentAnglesData(el)}},setCurrentAnglesData:function setCurrentAnglesData(el){var units={'percent':rToP,'rad':function rad(e){return e},'default':rToD};var f=units[this.settings.unit]||units['default'];el.data("current-c-angle",f(this.cAngle));el.data("current-start-angle",f(this.bAngle))}};var setCircleText=function setCircleText(el,text){el.data("text",text);$(".circleChart_text",el).html(text)};var scaleCanvas=function scaleCanvas(c){var ctx=c.getContext("2d");var dpr=window.devicePixelRatio||1;var bsr=ctx.webkitBackingStorePixelRatio||ctx.mozBackingStorePixelRatio||ctx.msBackingStorePixelRatio||ctx.oBackingStorePixelRatio||ctx.backingStorePixelRatio||1;var ratio=dpr/bsr;var oldWidth=c.width;var oldHeight=c.height;c.width=oldWidth*ratio;c.height=oldHeight*ratio;c.style.width=oldWidth+'px';c.style.height=oldHeight+'px';ctx.scale(ratio,ratio)};var rToD=function rToD(rad){return rad/Math.PI*180};var dToR=function dToR(deg){return deg/180*Math.PI};var pToR=function pToR(percent){return dToR(percent/100*360)};var rToP=function rToP(rad){return rToD(rad)/360*100};var rAF=function(c){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(callback){window.setTimeout(c,1000/60)}}();return this.each(function(idx,element){var el=$(element);var cache={};var _data=el.data();for(var key in _data){if(_data.hasOwnProperty(key)&&key.indexOf('_cache_')===0){if(defaults.hasOwnProperty(key.substring(7))){cache[key.substring(7)]=_data[key]}}}
var settings=Object.assign({},defaults,cache,_data,options);for(var _key in settings){if(_key.indexOf('_cache_')!==0)el.data('_cache_'+_key,settings[_key])}
if(!$("canvas.circleChart_canvas",el).length){el.append(function(){return $('<canvas/>',{'class':'circleChart_canvas'}).prop({width:settings.size,height:settings.size}).css(settings.autoCss?{"margin-left":"auto","margin-right":"auto","display":"block"}:{})});scaleCanvas($("canvas",el).get(0))}
if(!$("p.circleChart_text",el).length){if(settings.text!==!1){el.append("<p class='circleChart_text'>"+settings.text+"</p>");if(settings.autoCss){if(settings.textCenter){$("p.circleChart_text",el).css({"position":"absolute","line-height":settings.size+"px","top":0,"width":"100%","margin":0,"padding":0,"text-align":"center","font-size":settings.textSize!==!1?settings.textSize:settings.size*settings.relativeTextSize,"font-weight":settings.textWeight,"font-family":settings.textFamily})}else{$("p.circleChart_text",el).css({"padding-top":"5px","text-align":"center","font-weight":settings.textWeight,"font-family":settings.textFamily,"font-size":settings.textSize!==!1?settings.textSize:settings.size*settings.relativeTextSize})}}}}
if(settings.autoCss){el.css("position","relative")}
if(!settings.redraw){settings.cAngle=settings.currentCAngle?settings.currentCAngle:settings.cAngle;settings.startAngle=settings.currentStartAngle?settings.currentStartAngle:settings.startAngle}
var c=$("canvas",el).get(0);var ctx=c.getContext("2d");var units={'percent':pToR,'rad':function rad(e){return e},'default':dToR};var f=units[settings.unit]||units['default'];var bAngle=f(settings.startAngle);var eAngle=f(settings.value);var cAngle=f(settings.cAngle);var pos=settings.size/2;var radius=pos*(1-settings.widthRatio/2);var lineWidth=radius*settings.widthRatio;var circle=Circle(pos,bAngle,eAngle,cAngle,radius,lineWidth,cAngle,settings);el.data("size",settings.size);if(!settings.animate){circle.cAngle=circle.eAngle;rAF(function(){ctx.clearRect(0,0,settings.size,settings.size);if(settings.background){circle.drawBackground(ctx)}
if(settings.value!==0){circle.draw(ctx);circle.setCurrentAnglesData(el)}else{if(circle.settings.background){circle.drawBackground(ctx)}}
circle.onDraw(el)})}else{if(settings.value!==0){circle.animate(el,ctx,new Date().getTime(),new Date().getTime(),cAngle>eAngle)}else{rAF(function(){ctx.clearRect(0,0,settings.size,settings.size);if(circle.settings.background){circle.drawBackground(ctx)}
circle.onDraw(el)})}}})}})(jQuery)</script>
<div class="circleChart" id="0"></div>
关于javascript - 对象不支持属性或方法 Internet Explorer IE 11 上出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54122914/
像其他人一样,我需要在 Internet Explorer 6 和 Internet Explorer 7 上测试我的代码。现在,Internet Explorer 8 为开发人员提供了一些很棒的工具
我已经浏览了几个小时的注册表,但似乎无法找到控制 Internet Explorer 临时 Internet 文件设置的注册表。我想从自动更改为其他内容。 最佳答案 HKCU\Software\Mic
这个问题在这里已经有了答案: 10年前关闭。 Possible Duplicate: Running Internet Explorer 6, Internet Explorer 7, and Int
作为一名开发者,我发现新的 Internet Explorer 版本完全是一场噩梦。我关闭了 Windows 功能,但无法安装 Internet Explorer 10 。它说它已经安装,但事实并非如
是否有任何分析器工具可以调试DOM中的哪个javascript /对象导致Internet Explorer挂起/崩溃。 CPU使用率将超过60%,我想知道其背后的原因,是哪个脚本/ Flash Ob
我正在尝试确定Internet Explorer上TTF字体格式的支持状态。 (我手头没有任何Windows计算机可以尝试。)The table at caniuse指出,从版本9开始的IE支持TTF
是否可以在 Internet Explorer 中切换多个版本的 JDK/JRE? 想要使用 jdk 1.4、jdk 5 和 jdk 6。 谢谢,迈克尔 最佳答案 据我所知,这并不容易做到,因为 IE
这应该是IE8下载问题的老问题了。我使用 PHP 来设置响应头,如: header("Pragma: public"); header("Expires: 0"); header("Content-t
这个问题在这里已经有了答案: 10年前关闭。 Possible Duplicate: Running Internet Explorer 6, Internet Explorer 7, and Int
我正在使用新的Internet Explorer 11开发人员工具将文档模式切换为“8”,但条件注释仍然被忽略,也就是说,它们没有被正确解析并且表现得像普通注释。因此,浏览器不会请求/加载条件注释内的
我在我的一个站点上遇到 Internet Explorer 6 问题,我真的希望我安装它而不是 Internet Explorer 7。有没有一种快速的方法来做到这一点? 最佳答案 下载Microso
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and t
如何访问 Internet Explorer 运行实例的经典 Internet Explorer COM 自动化对象?也就是说,如果我在多个窗口中打开 Internet Explorer,如何从 Po
string filename = Server.UrlPathEncode(Path.GetFileName(_Filename))); Response.AddHeader("Content-Di
当我尝试使用 Apache 2.2 在 Windows7(64 位)上的 IE9 或 IE10 中打开 localhost 时,解析 URL 需要很长时间。其他浏览器没有问题并立即解析 URL,只有
我有一个批处理文件,必须启动 Internet Explorer 并打开 www.google.com .当整个页面加载完成时,它应该终止 IE 进程,即关闭该系统中的所有 IE 实例。我的批处理文件
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6 个月前关闭。 Improve t
基本上,无论我使用 IE 访问哪个网站,我都可以看到那些黑色/白色形状,一旦我将鼠标移到它们上,它们就会消失。 想知道是否有人知道可能导致这种情况的原因? 另外:http://imageshack.c
我检查了所有注册表,但找不到所有已安装扩展的列表。 此时,IE 扩展/加载项的任何一般位置都会有所帮助。 最佳答案 取自 here : 浏览器帮助对象 - 旨在增强浏览器功能的浏览器插件。 条目可以在
这是一个两部分的问题。我正在构建一个网页,我需要知道: 有没有办法检测 IE 是否启用了平滑滚动(如果是,如何)? 有没有办法强制 IE 关闭我网页的平滑滚动功能? 明确地说,我不是在问如何关闭整个计
我是一名优秀的程序员,十分优秀!