我在可汗學院學習JavaScript,需要幫助創建一個收音機類型按鈕。對於這段代碼,我寧願不使用html標籤。如何使用javascript創建單選按鈕(我不想使用html標籤)?
我最初有一個表情符號,可以隨着mouseX和mouseY動作一起移動。但是,添加按鈕功能(工作)後,表情符號不起作用。這似乎是一個或兩個案例。有沒有辦法我可以重新排序我的代碼,使兩者都有效?
基本上我想要一個與mouseX和mouseY(鼠標的X,Y位置)一起移動的表情符號,並且能夠添加一個按鈕功能,該功能會向表情符號頂部或底部添加一個圓圈,具體取決於按鈕被點擊。我希望表情符號在添加圓圈後仍然可以移動。右側底部的兩個矩形是按鈕。白色圓圈是表情符號,背景是粉紅色的圓圈和粉紅色的空白屏幕。
我嘗試用drawClick內的mouseClicked或drawExmoji內部或外部的各種組合對代碼進行重新排序。但是到目前爲止,我還沒有找到一種能夠提供我所需要的方式的機會。是否有可能使用純粹的JavaScript做到這一點? TIA
編輯:
這裏的鏈接到我的工作我的代碼中。我沒有把它放在jsfiddle中,因爲我不知道如何使用html標籤並向它添加代碼。 https://www.khanacademy.org/computer-programming/spin-off-of-simple-buttons-with-functionsobject-params/4602551803707392
至於解釋我想發生什麼,那是在我的文章的第3段?如果還不清楚,請告訴我。
這裏是我到目前爲止的代碼:
var x = 250;
var y = 300;
var btnwidth = 100;
var btnheight = 30;
//to highlight the button that is pressed
var highlightbox = function(hix, hiy, hiw, hih) {
noFill();
stroke(56, 247, 8);
strokeWeight(5);
rect(hix, hiy, hiw, hih);
};
//outer circle of the emoji face, the idea was for it to move along with the mouse but now it doesn't
var X = constrain(mouseX, 190, 210);
var Y = constrain(mouseY, 115, 140);
var W = 160;
var H = W;
var drawEmoji = function() {
var X = constrain(mouseX, 190, 210);
var Y = constrain(mouseY, 115, 140);
var W = 160;
var H = W;
fill(247, 242, 242);
stroke(0, 51, 255);
strokeWeight(3);
ellipse(X,Y,W,H);
};
//background behind the emoji
var drawBackground = function() {
background(250, 187, 187);
fill(191, 130, 130);
stroke(255, 0, 0);
strokeWeight(3);
ellipse(200,200,400,400);
fill(247, 207, 247);
rect(x, y, btnwidth, btnheight);
fill(173, 207, 250);
rect(x, y+50, btnwidth, btnheight);
};
drawBackground();
drawEmoji();
var draw = function() {
//mouse click function for the button, when it's clicked a circle appears on the emoji
mouseClicked = function(){
drawBackground();
drawEmoji();
if (mouseX > x && mouseX < (x + btnwidth) && mouseY > y && mouseY < (y + btnheight)) {
highlightbox(x, y, btnwidth, btnheight);
stroke(68, 0, 255);
fill(247, 207, 247);
ellipse(X - 49,Y - 50,W/3,H/3);
}
else if (mouseX > x && mouseX < (x + btnwidth) && mouseY > y + 50 && mouseY < (y + 50 + btnheight)) {
highlightbox(x, y + 50, btnwidth, btnheight);
stroke(68, 0, 255);
fill(173, 207, 250);
ellipse(X+1,Y+100,W/3,H/3);
}
};
};
嗨,歡迎來到SO。請提供一個在線工作的代碼示例,例如http://jsfiddle.net,它可以幫助我們爲您提供幫助 – JNF
您無法說明「它不工作」以及您希望如何工作。 –
@JNF我已經添加了一個鏈接 https://www.khanacademy.org/computer-programming/spin-off-of-simple-buttons-with-functionsobject-params/4602551803707392 – quirkypink