Dilettante_Pro,
читайте пост номер 9 рони, объясняю-при нажатии кнопки в не клонированном элементе я получаю данные из строки следующим образом- document.getElementById("имя оригинального инпута").value, но в клонированном элементе как мне при нажатии кнопки получить значение только уже из клонированной строки? |
Вот ваш пример из пост№9 в работающем виде с небольшим изменением
(строка 103) Вы это имеете в виду? <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <title>Cкролл</title> </head> <body> <style> body, html { margin: 0; padding: 0; } .column-left { float: left; width: 30%; background: #aef; } .column-right { margin-left: 30%; width: 70%; background: tan; overflow: auto; /* расшириться вниз захватить float'ы */ } .header { line-height: 60px; background: yellow; } .inner { margin: 1em; font-size: 130%; } #avatar { float: left; margin: 0 1em .5em 0; border: 1px solid black; text-align: center; background: white; } img { display: block; position: relative; z-index: 1001; } .fixed { position: fixed; left: 0; top: 0; font-size: 130%; width: 100%; background: yellow; } footer { position: relative; top: 15px; margin-bottom: 15px; clear: both; height: 800px; background: #456; } </style> <div id="s_bl"> <input type="text" size="80" id="first" class="text_input"> <input type="submit" value="Добавить элемент" onclick="add();" id="bdf"> </div> <div id="result"> </div> <footer id="foot"></footer> <script> var avatar = document.querySelector("#s_bl");//что подхватываем var clone = avatar.cloneNode(true); clone.className = "fixed"; var coords = avatar.getBoundingClientRect(); var foot = document.querySelector("#foot").getBoundingClientRect(); document.onscroll = function(e) { var _scroll = window.pageYOffset || document.documentElement.scrollTop; if(_scroll > coords.bottom && _scroll<foot.top) { document.body.appendChild(clone); } else if(clone.parentNode){ document.body.removeChild(clone); } if (_scroll>foot.top-coords.height){ clone.style.top = (document.querySelector("#foot").getBoundingClientRect().top - coords.height) + 'px'; } } function add(){ var div = document.createElement('div'); // div.innerHTML = '<br>Новый элемент</a><br>'; div.innerHTML = document.getElementById("first").value; document.getElementById("result").appendChild(div); } </script> </body> </html> Действительно, значение берется из оригинального инпута - клонированный инпут с таким же id игнорируется |
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <title>Cкролл</title> </head> <body> <style> body, html { margin: 0; padding: 0; } .fixed { position: fixed; left: 0; top: 0; font-size: 130%; width: 100%; background: yellow; } footer { position: relative; top: 15px; margin-bottom: 15px; clear: both; height: 800px; background: #456; } </style> <div id="s_bl"> <input type="text" size="80" id="first" class="text_input"> <input type="submit" value="Добавить элемент" onclick="add();" id="bdf"> </div> <div id="result"> </div> <footer id="foot"></footer> <script> var avatar = document.querySelector("#s_bl");//что подхватываем var coords = avatar.getBoundingClientRect(); var foot = document.querySelector("#foot").getBoundingClientRect(); document.onscroll = function(e) { var _scroll = window.pageYOffset || document.documentElement.scrollTop; if(_scroll > coords.bottom && _scroll<foot.top) { avatar.className = "fixed"; } else { avatar.className = ""; } if (_scroll>foot.top-coords.height){ avatar.style.top = (document.querySelector("#foot").getBoundingClientRect().top - coords.height) + 'px'; } } function add(){ var div = document.createElement('div'); // div.innerHTML = '<br>Новый элемент</a><br>'; div.innerHTML = document.getElementById("first").value; document.getElementById("result").appendChild(div); } </script> </body> </html> |
Я правильно вас понял, что вы избавились от клонирования. а теперь блок ездит и фиксируется, да?
Возникла такая проблема-код window.addEventListener("DOMContentLoaded", function() { //тут код, объявление переменных document.addEventListener("scroll", function(e) { //тут еще код }); });если я его ставлю в нижнюю часть html страницы прилипание работает, а если выношу весь этот код в отдельный js файл и подключаю в заголовках-то работать перестает и скрипт не выполняет прилипания блока. Думал может это связанно с document.addEventListener? Не подскажете как этот код сделать так, чтобы работал в отдельном файле и чтобы не загружать html страницу. Спасибо |
рони,
отдохни и не набивай себе пустых сообщений. Не понял-значит не твое. |
не флуди
|
Я максимально доступно ведь объяснил, почему это непонятно?
|
Начинающий-Js-кодер,
не могу вам помочь, не буду вам мешать, удалил свои сообщения. |
Начинающий-Js-кодер,
Пропало желание вам помогать |
Отчего так, милейший?
|
Часовой пояс GMT +3, время: 05:32. |