Не могу понять это, почему функция onclick на изображении не отбрасывает тень каждый раз, когда вы щелкаете? Не могли бы вы помочь, я программист-самоучка, был бы признателен. (Посмотрите мой файл Javascript).
Конечный результат должен быть похож на этот https://jenniferdewalt.com/more_drop_shadow.html, но она написала его в jQuery, и я еще не знаю эту структуру
КОД
var newBlur = 0;
var newSpread = 0;
document.getElementById("catIMG").addEventListener("click", shadowIMG);
function shadowIMG() {
var myShadow = genShadow();
document.getElementById("catIMG").style.boxShadow = myShadow;
console.info(myShadow);
}
function genShadow() {
var arr = [0, 0, newBlur, newSpread,];
newBlur +=1;
newSpread +=5;
var newShadow = '"' + arr[0] + 'px ' + arr[1] + 'px ' + arr[2] + 'px ' + arr[3] + 'px ' + 'Black' + '"' ;
return newShadow;
}body
{
margin: 0;
background-color: lightgrey;
}
input {
position: absolute;
left: 10%;
width: 100px;
height: 50px;
font-size: 20px;
color: white;
background-color: green;
}
#blueTop {
font-size: 30px;
font-family: Arial;
width: 100%;
height: 100px;
background-color: mediumpurple;
}
#catIMG {
position: absolute;
left: 50%;
top: 15%;
transform: translate(-50%);
width: 750px;
height: 500px;
cursor: pointer;
}
#catText {
position: absolute;
left: 50%;
top: 800px;
transform: translate(-50%);
width: 750px;
text-align: center;
font-size: 50px;
font-weight: 100;
color: rgb(50,20,0);
cursor: pointer;
}
h5 {
position: absolute;
left: 50%;
top: 1000px;
transform: translate(-50%);
font-size: 25px;
cursor: pointer;
}<form>
<input id = "testButton"type = "button" value = "Test"/>
</form>
<div id = "blueTop"></div>
<img id = "catIMG" src = "./more_grumpy_shadow.png"/>
<h1 id = "catText">"You will always be lucky if you know how to make friends with strange cats."</h1>
<h5>- Colonial proverb</h5>


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Проблема в этой строке:
var newShadow = '"' + arr[0] + 'px ' + arr[1] + 'px ' + arr[2] + 'px ' + arr[3] + 'px ' + 'Black' + '"' ;
Вы добавляете дополнительные цитаты.
// JavaScript source code
var newBlur = 2;
var newSpread = 2;
//functions
document.getElementById("catIMG").addEventListener("click", shadowIMG);
function shadowIMG() {
var myShadow = genShadow();
document.getElementById("catIMG").style.boxShadow = myShadow;
debugger;
console.info(myShadow);
}
function genShadow() {
var arr = [10, 10, 10, 10,];
newBlur +=1;
newSpread +=5;
var newShadow = '' + arr[0] + 'px ' + arr[1] + 'px ' + arr[2] + 'px ' + arr[3] + 'px ' + ' black' + '' ;
console.info(newShadow);
return newShadow;
}body
{
margin: 0;
background-color: lightgrey;
}
input {
position: absolute;
left: 10%;
width: 100px;
height: 50px;
font-size: 20px;
color: white;
background-color: green;
}
#blueTop {
font-size: 30px;
font-family: Arial;
width: 100%;
height: 100px;
background-color: mediumpurple;
}
#catIMG {
position: absolute;
left: 50%;
top: 15%;
transform: translate(-50%);
width: 750px;
height: 500px;
cursor: pointer;
}
#catText {
position: absolute;
left: 50%;
top: 800px;
transform: translate(-50%);
width: 750px;
text-align: center;
font-size: 50px;
font-weight: 100;
color: rgb(50,20,0);
cursor: pointer;
}
h5 {
position: absolute;
left: 50%;
top: 1000px;
transform: translate(-50%);
font-size: 25px;
cursor: pointer;
}<html lang = "en" xmlns = "http://www.w3.org/1999/xhtml">
<head>
<meta charset = "utf-8" />
<title></title>
</head>
<body>
<form>
<input id = "testButton"type = "button" value = "Test"/>
</form>
<div id = "blueTop"></div>
<img id = "catIMG" src = ""/>
<h1 id = "catText">"You will always be lucky if you know how to make friends with strange cats."</h1>
<h5>- Colonial proverb</h5>
</body>
</html>нет необходимости в дополнительной работе, которую вы делаете. Сделайте это простым, используя свойство стиля javascript, увеличивайте blur-radius и spread-radius всякий раз, когда пользователь нажимает кнопку.
var i = 0;
var j = 3;
document.getElementById("makeshadow").addEventListener("click", function() {
i++;
j = i * 3;
document.getElementById("catIMG").style.boxShadow =
"rgba(0, 1, 0, 0.35) 0px 0px "+i+"px "+j+"px";
});body
{
margin: 0;
padding:20px;
} <html lang = "en" xmlns = "http://www.w3.org/1999/xhtml">
<head>
<link href = "./dropShadow.css" type = "text/css" rel = "stylesheet"/>
<meta charset = "utf-8" />
<title></title>
</head>
<body>
<img id = "catIMG" src = "http://via.placeholder.com/350x150"/>
<button id = "makeshadow">Button</button>
</body>
</html>Пожалуйста, помимо кода, объясните, что вы сделали и почему это решило проблему.
@Master Arrodox Я думаю, что этот ответ следует принять, поскольку он дает самое простое и правильное решение вашего вопроса
Удаление кавычек у переменной newShadow решило проблему, спасибо всем, кто мне помог.
Большое спасибо, я не могу поверить, что что-то настолько простое может решить проблему :), я бы никогда не нашел этого сам.