あら、御機嫌よう、
ここに私の問題があります。私はこのJavascriptを持っていますが、「位置」と呼ばれる私の変数は、入力したときに割り当てられた値を保持しません
under[i].addEventListener("click", function(){
alert(position.y + " " + position.x);
score[i].setAttribute("style","-webkit-transform: translateY(-" + position.y + "px); -webkit-transition: .5s ease-in-out .01s;");
under[i].classList.add("popout");
score[i].classList.add("popScore");
under[i].classList.remove("underlayer_score");
score[i].classList.remove("scores_teams");
});
このイベントリスナーの前または後にチェックすると、値がまだその変数に割り当てられているため、奇妙です。私はまだ Javascript の初心者なので、私の説明が明確でない場合は申し訳ありません。
ご協力ありがとうございました。
Javascript は次のとおりです。
<script>
var under = new Array(10);
score = new Array(10);
var position = 0;
for(var i = 0; i <= 2; i++){
under[i] = document.getElementsByClassName('underlayer_score')[i];
score[i] = document.getElementsByClassName('scores_teams')[i];
}
function getPosition(element) {
var xPosition = 0;
var yPosition = 0;
while(element) {
xPosition += (element.offsetLeft - element.scrollLeft + element.clientLeft);
yPosition += (element.offsetTop - element.scrollTop + element.clientTop);
element = element.offsetParent;
}
return { x: xPosition, y: yPosition };
}
for(var i = 0; i <= 2; i++){
position = getPosition(score[i]);
under[i].addEventListener("click", function(){
alert(position.y + " " + position.x);
score[i].setAttribute("style","-webkit-transform: translateY(-" + position.y + "px); -webkit-transition: .5s ease-in-out .01s;");
under[i].classList.add("popout");
score[i].classList.add("popScore");
under[i].classList.remove("underlayer_score");
score[i].classList.remove("scores_teams");
});
alert(position.y);
position.x = 0;
position.y = 0;
}
</script>