gpt4 book ai didi

javascript - 如何在 JavaScript 文件中包含 CSS

转载 作者:太空宇宙 更新时间:2023-11-04 14:05:53 25 4
gpt4 key购买 nike

我是 HTML、CSS 和 JS 的新手。目前我正在使用 JavaScript 来创建饼图。我的疑问是如何在函数中包含 CSS hover 函数。

谁能帮我在下面的 JavaScript 代码的函数中包含 CSS hover

<script type="text/javascript">
function PieChart(id, o) {
this.includeLabels = true;
if (o.includeLabels == undefined) {
this.includeLabels = false;
}
else {
this.includeLabels = o.includeLabels;
}
this.data = o.data ? o.data : [30, 70, 45, 65, 20, 130];
this.labels = o.labels ? o.labels : ["First", "Second", "Third", "Fourth", "Fifth", "Sixth"];
this.colors = o.colors ? o.colors : [
["#bbddb3", "#1d8e04"], // green
["#e2f5b4", "#9edd08"], // yellow green
["#fdfbb4", "#faf406"], // yellow
["#fbd4b7", "#f2700f"], // orange
["#f8bdb4", "#ea2507"], // red
["#e2bcbd", "#9e2126"] // purple
];

this.canvas = document.getElementById(id);
}

PieChart.prototype = {

select: function(segment) {
var self = this;
var context = this.canvas.getContext("2d");
this.drawSegment(this.canvas, context, segment, this.data[segment], true, this.includeLabels);
},
draw: function() {

var self = this;
var context = this.canvas.getContext("2d");
for (var i = 0; i < this.data.length; i++) {
this.drawSegment(this.canvas, context, i, this.data[i], true, this.includeLabels);
}
},

drawSegment: function(canvas, context, i, size, isSelected, includeLabels) {
var self = this;
context.save();
var centerX = Math.floor(canvas.width / 2);
var centerY = Math.floor(canvas.height / 2);
radius = Math.floor(canvas.width / 2);

var startingAngle = self.degreesToRadians(self.sumTo(self.data, i));
var arcSize = self.degreesToRadians(size);
var endingAngle = startingAngle + arcSize;

context.beginPath();
context.moveTo(centerX, centerY);
context.arc(centerX, centerY, radius, startingAngle, endingAngle, false);
context.closePath();

isSelected ?
context.fillStyle = self.colors[i][1] :
context.fillStyle = self.colors[i][0];

context.fill();
context.restore();

if (includeLabels && (self.labels.length > i)) {
self.drawSegmentLabel(canvas, context, i, isSelected);

}
},

drawSegmentLabel: function(canvas, context, i, isSelected) {
var self = this;
context.save();
var x = Math.floor(canvas.width / 2);
var y = Math.floor(canvas.height / 2);
var angle = self.degreesToRadians(self.sumTo(self.data, i));

context.translate(x, y);
context.rotate(angle);
context.textAlign = 'center';
var fontSize = Math.floor(canvas.height / 25);
context.font = fontSize + "pt Helvetica";

var dx = Math.floor(canvas.width * 0.5) - 100;
var dy = Math.floor(canvas.height * 0.05);
context.fillText(self.labels[i], dx, dy+dy);
alert(self.labels[i]);
context.restore();
},

drawLabel: function(i) {
var self = this;
var context = this.canvas.getContext("2d");
var size = self.data[i];

self.drawSegmentLabel(this.canvas, context, i, size, true);

},

degreesToRadians: function(degrees) {
return (degrees * Math.PI)/180;
},

sumTo: function(a, i) {
var sum = 0;
for (var j = 0; j < i; j++) {
sum += a[j];
}
return sum;
}


}
</script>

最佳答案

  1. 创建样式元素并编写一些样式规则。
    var styleEl = document.createElement('style');styleEl.innerHTML = 'body{color:blue; ... other styles}';document.head.appendChild(styleEl);
  2. 设置cssText,新的规则会重写旧的;
    document.body.style.cssText = 'color:#abcdef;';
  3. 直接设置样式
    document.body.style.color = 'black';

可能还有一些其他技巧。

关于javascript - 如何在 JavaScript 文件中包含 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11356502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com