Во-первых, вам нужно быть осторожнее с чувствительностью к регистру. Это должно быть clientWidth
(заглавная W) и top
(маленькая т). Во-вторых, когда вы устанавливаете CSS left
и top
, вы должны добавить суффикс +'px'
к значению; само по себе целое число недопустимо.
Также, если вы хотите узнать высоту окна просмотра, document.body
- это неправильное место для поиска. Это будет работать только в режиме IE Quirks, которого вы, как правило, хотите избежать, как чумы. Добавьте стандартную декларацию <!DOCTYPE
, и вы сможете использовать document.documentElement
в разных браузерах. (Или ответвление на window.innerHeight
для браузеров, отличных от IE.)
В любом случае, если нет больше CSS, который вы нам не показывает, установка стилей left
и top
не будет иметь никакого эффекта вообще, потому что div .render
не position: absolute
. Вы не показываете, как именно они прикреплены к документу, но, поскольку они, по-видимому, не являются абсолютно позиционированными, они являются частью потока документов и могут вызвать смещение / переформатирование страницы, когда они не видны. Если из-за этого элемент будет перемещен, он больше не будет находиться под указателем, и вы сразу получите событие отключения мыши.
(Это также могло бы произойти с абсолютным позиционированием, если находящийся объект находился под местом, где появилось всплывающее окно.)
(Кроме того, скрытие / скрытие немного избыточно. Оставьте style.display
в покое и просто установите className
в 'render'
или 'render hide'
.)