Получение 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, время: 06:10. |