Size: a a a

JavaScript — русскоговорящее сообщество

2020 April 17

🦜

🦜 in JavaScript — русскоговорящее сообщество
Timur Shubin
скидывай код
источник

🦜

🦜 in JavaScript — русскоговорящее сообщество
в пизду эти гадания
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
Покажите объявление класса, создание экземпляра и вызов метода.
источник

TS

Timur Shubin in JavaScript — русскоговорящее сообщество
источник

TS

Timur Shubin in JavaScript — русскоговорящее сообщество
Алексей Клименко
Покажите объявление класса, создание экземпляра и вызов метода.
Исправил, все работает
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
constructor(posX, posY) {
 this.posX = posX;
 this.posY = posY;
 this.checked = false;
}


И что, я не вижу, чтобы вы сюда id передавали.

А насчёт вот этого – panel.innerHTML += "<div class='square' id='square-" + j + "-" + i + "' onclick='Square.prototype.changeCondition(" + j + "," + i + ");'></div>"; – то это в HTML, обратной ссылки у вас нет.
источник

TS

Timur Shubin in JavaScript — русскоговорящее сообщество
Алексей Клименко
constructor(posX, posY) {
 this.posX = posX;
 this.posY = posY;
 this.checked = false;
}


И что, я не вижу, чтобы вы сюда id передавали.

А насчёт вот этого – panel.innerHTML += "<div class='square' id='square-" + j + "-" + i + "' onclick='Square.prototype.changeCondition(" + j + "," + i + ");'></div>"; – то это в HTML, обратной ссылки у вас нет.
Я убрал id из конструктора и добавил его в changeCondition
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
Кстати, вот тут вы что-то странное делаете:
field.push(new Square(i,j));
Square.prototype.draw(i,j);

Прототип используется не по назначению.
источник

TS

Timur Shubin in JavaScript — русскоговорящее сообщество
Заполняю поле
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
И когда вы сделаете вот так
Square.prototype.changeCondition(…)

То в

class …{

changeCondition(j, i) {
 if(!this.checked) {
 this.checked = true;


У вас не будет this!
источник

TS

Timur Shubin in JavaScript — русскоговорящее сообщество
Алексей Клименко
И когда вы сделаете вот так
Square.prototype.changeCondition(…)

То в

class …{

changeCondition(j, i) {
 if(!this.checked) {
 this.checked = true;


У вас не будет this!
Исправил на (!field[id].checked)
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
А ещё, panel.innerHTML += – это серьёзный урон производительности дерева.

Собираете HTML, единожды присваиваете.

Либо делаете .appendChild, как белый человек.
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
Timur Shubin
Исправил на (!field[id].checked)
Если field = new Array();, а id – это _строка_, а не индекс, то надо было field = Object.create(null);
источник

O

O in JavaScript — русскоговорящее сообщество
Кому интересно, делюсь хорошими книжками по Js которые читаю сейчас, «выразительный JavaScript» 3e издание
источник

j

jk in JavaScript — русскоговорящее сообщество
O
Кому интересно, делюсь хорошими книжками по Js которые читаю сейчас, «выразительный JavaScript» 3e издание
Спасибо.
источник

DV

Default Voiceб 🔥 in JavaScript — русскоговорящее сообщество
O
Кому интересно, делюсь хорошими книжками по Js которые читаю сейчас, «выразительный JavaScript» 3e издание
Очень прошу не постить в чате спираченые книги, чаты за это банят. Делись в личке, если хочешь
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
Есть страница с картинками разных размеров (неизвестных до прогрузки).

Нужно при наведении мыши – отображать overlay с увеличенной под 200% копией соответствующего изображения.

Однако она должна либо центрироваться по исходной картинке, либо пристыковываться к краям экрана, чтобы не уходить за них и оставаться всегда видимой (если не помещается – пусть центрируется по странице, масштаб подгонять не нужно).

Я взял position:fixed, и у него pointer-events:none, чтобы событиям мыши не мешал.
Но как лучше обращаться с координатами, чтобы получить то, что я хочу?

(jQuery и прочие библиотеки не предлагать, разве что только в качестве образца, если там именно то, что мне требуется).
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
Хм, видимо мне хватит getBoundingClientRect(), window.innerWidth, window.innerHeight и немного математики в лоб.
источник

L

Lev Tonov in JavaScript — русскоговорящее сообщество
Алексей Клименко
Есть страница с картинками разных размеров (неизвестных до прогрузки).

Нужно при наведении мыши – отображать overlay с увеличенной под 200% копией соответствующего изображения.

Однако она должна либо центрироваться по исходной картинке, либо пристыковываться к краям экрана, чтобы не уходить за них и оставаться всегда видимой (если не помещается – пусть центрируется по странице, масштаб подгонять не нужно).

Я взял position:fixed, и у него pointer-events:none, чтобы событиям мыши не мешал.
Но как лучше обращаться с координатами, чтобы получить то, что я хочу?

(jQuery и прочие библиотеки не предлагать, разве что только в качестве образца, если там именно то, что мне требуется).
Взять координаты мыши при наведении и увеличить в этих границах.
источник

АК

Алексей Клименко in JavaScript — русскоговорящее сообщество
Да координаты мыши мне не особо нужны.

Так, почти получилось…
источник