// model
dispatch(Event.CHANGE);
// view
model.getCommand();
Все мышиные события предоставляют текущие координаты курсора в двух видах: относительно окна и относительно документа.
Пара свойств clientX/clientY содержит координаты курсора относительно текущего окна.
При этом, например, если ваше окно размером 500x500, а мышь находится в центре, тогда и clientX и clientY будут равны 250.
Можно как угодно прокручивать страницу, но если не двигать при этом мышь, то координаты курсора clientX/clientY не изменятся, потому что они считаются относительно окна, а не документа.
Координаты курсора относительно документа находятся в свойствах pageX/pageY.
Так как эти координаты — относительно левого-верхнего узла документа, а не окна, то они учитывают прокрутку. Если прокрутить страницу, а мышь не трогать, то координаты курсора pageX/pageY изменятся на величину прокрутки, они привязаны к конкретной точке в документе.
В IE8- этих свойств нет, но можно получить их способом, описанным в конце главы.
block.style.top = e.clientX+'px';
block.style.left = e.clientY+'px';
if (e.pageX)
{
return e.pageX;
}
else if (e.clientX)
{
return e.clientX+(document.documentElement.scrollLeft ||
document.body.scrollLeft) - document.documentElement.clientLeft;
}
<App>
<NavBar></NavBar>
<Right></Right>
<Container>
... я думал что комопнент контайнер
будет хранить в массиве все компоненты
[One, Two, Three] и по собыьтию будет
подставлять нужный
</Container>
</App>;
<App>
<NavBar></NavBar>
<Right></Right>
<Container>
<One></One>
</Container>
</App>;
<App>
<NavBar></NavBar>
<Right></Right>
<Container>
<Two></Two>
</Container>
</App>;
<App>
<NavBar></NavBar>
<Right></Right>
<Container>
<Three></Three>
</Container>
</App>;
Ну и все ограничения дублируются на бэкэнде в любом случае.
О чем я сейчас говорю?