Получение DOM к соседнему тегу
всем привет... есть код:
.... <div> <canvas></canvas> <script> window.onscroll = function() {getCanvas();} </script> <p>....</p> </div> .... много кода.... .... <div> <canvas></canvas> <script> window.onscroll = function() {getCanvas();} </script> <p>....</p> </div> .... собственно мне нужно функцией «getCanvas();», через DOM получить соседний canvas. для каждой вызванной функции канвас должен быть соседним. как это реализовать? есть идеи? P.S. id для канваса не предлагать... хочу автоматизировать определение соседнего канваса |
function getNextCanvas(currentCanvas) { var elements = document.getElementsByTagName('canvas'); for(var i = 0; i < elements.length; i++) { if (currentCanvas === elements[i]) { return elements[i + 1] || null; } } return null; } |
чтото не могу понять.... "getNextCanvas();" я должен использовать вместо "getCanvas();"?
что за параметр я должен передовать в "currentCanvas"? |
Цитата:
Цитата:
|
Цитата:
Может ли функция получить DOM объект, где находится вызов самой функции? |
Цитата:
Цитата:
|
нет... смотри...
в каждой части кода, эта функция должна выполниться 1 раз каждая. крометого... каждой функции, я буду передавать параметры для дополнительной обработки (для каждой свои). и несмотря на то что я передаю этой функции... она должна выполниться в нужное для меня время, с введёнными мной параметрами и только 1 раз каждая. встретиться она может и одна на странице. |
так ведь функция не будет выполнена сразу. Ты же навешиваешь событие, используя старушку-модель DOM левел 1. Вот только через мгновение твое только что определенное тобой свойство window.onscroll затрется другой функцией, следующей. А старая будет уничтожена сборщиком мусора как ненужный хлам. Модель обработчиков событий DOM Level 1 не предусматривает возможности добавить несколько обработчиков.
|
Вобще тебе стоит задуматься над архитектурой.
Зачем плодить теги скриптов? Зачем плодить обработчики (тем более на такое чувствительное к производительности событие как scroll )? Создай один скрипт, обойди все канвасы, навесь обработчик скролла (один!), который и будет всем рулить. |
просто я хотел сделать фишку... аналогичной этой.
там в некоторых местах, появляется анимация у картинок. пока не доматаешь... она срабатывать не будет точно. пуши аналогичную фишку на свой сайт.... но у меня она может встретиться 1 раз... а может несколько на странице. как сделать такое? может поможешь? |
Часовой пояс GMT +3, время: 13:25. |