Nexus,
всё понял, спасибо большое! |
Скажите пожалуйста. Всё равно не получается скрыть скролл во время открытого popup окна. В чём может быть причина..
html, body{ min-height: 100%; } body { font: 100%/1.5em Lato, sans-serif; background-color: #f3f3f3; position: relative; border: 5px solid #c6faf7; } .body-hide-scroll{ overflow: hidden !important; } /*Popup*/ #nav-overlay.nav-active { opacity: 1; visibility: visible; } #nav-overlay { opacity: 0; visibility: hidden; position: fixed; top: 0; left: 0; height: 100%; width: 100%; z-index: 3; background-color: black; } |
.body-hide-scroll соответственно назначается body после открытия popup-окна, и то что он успешно присваивается нет сомнений, но при этом ничего не происходит скролл остается на месте.
|
Nlk, это точно скролл "body"?
|
Nexus,
Popup-окно у меня становиться во весь размер сайта соответственно размер body наверно или html документа. Самому popup-окну я тоже добавлял overflow: hidden но никакого эффекта. |
Или возможно вы имели в виду вложенность данного popup-окна. Да у меня есть родитель данного элемента тег header - он почти без стилей..
|
Видимо родителем данного элемента должен быть напрямую body?!
|
Попробовал всё равно не хочет работать..
|
|
Nexus,
В вашем примере всё прекрасно работает, очередной раз низкий поклон. Буду разбираться где у себя напортачил. |
Блин, разобрался в чём была проблема, reset от Eric Meyer
html { overflow-y: scroll; } Вот и думай стоит их использовать.. |
Ребят, объясните пожалуйста, почему в данном цикле получаем результат 110, это связано с сложением строк и чисел?
function bin (num) { var res = ""; while(num>0) { res=num%2; num=Math.floor(num/2); } return res; } document.write(bin(6)) |
Nlk, у меня результатом вашего кода получается ни что иное как единица.
Конвертировать число в другую СС можно так: alert((6).toString(2));//6 hex to bin |
Nexus, извините в примере была ошибка, обновил данные.. Не могу понять почему единица у меня выходит 0 при первом цикле res=6%2+"" ведь равняется 0?
function bin (num) { var res = ""; while(num>0) { res=num%2+res; //обновлено num=Math.floor(num/2); } return res; } document.write(bin(6)) |
Nlk, обратите внимание на то, как у вас формируется результат.
Строка 4: остаток от деления num на 2 вставляется не в конец строки, а в начало. |
Nexus,
Блиин, вроде такой простой пример, а тупил очень долго. Спасибо |
Здравствуйте! Подскажите пожалуйста, хочу сделать постраничную прокрутку сайта. Никак не могу придумать как это реализовать лучше. Не знаю как отловить событие скрола, было ли оно сделано наверх или вниз. Есть вот такое стандартное начало:
document.addEventListener("scroll", myFunction); function myFunction() { var scrolled = window.pageYOffset || document.documentElement.scrollTop; scrolled } Может можно замыкание сделать чтоб сравнить с предыдущим scrolled, или весь scrolled закидывать в массив и потом сравнивать с предыдущим значением, если больше значит вниз скрол если меньше значит наверх. |
Nlk, на jq (принцип должен быть понятен):
var last_scroll_top=0; $('html,body').scroll(function(){ var sTop=$(this).scrollTop(); if(sTop<last_scroll_top) alert('to top'); else alert('...'); }); |
Вопрос по теме querySelectorAll, но с другим уклоном.
Подскажите, а почему в данном наброске, все элементы NodeList'a пустые?? <input type='number' min='1' name='aa' style='width:100%' > <input type='number' min='1' name='aa' style='width:100%' > <input type='number' min='1' name='aa' style='width:100%' > <input type='number' min='0' name='bb' style='width:100%' onchange="suma();"> <p id="demo"></p> <script> function suma() { var aa = document.querySelectorAll('input[name="aa"]'); for (var i = 0; i < aa.length; i++) { document.getElementById("demo").innerHTML = "Results =" + aa[i].innerHTML; } } |
Taichi, в строке 14 замените "innerHTML" на "value".
|
Taichi,
Цитата:
|
Посему мне подсказали записывать переменные чезез aa[], что бы через цикл добраться до каждого. Спасибо большое, ошибка мелкая а проблем много.
|
Taichi, Dilettante_Pro имел ввиду, что изменяя свойство "innerHTML", элемента #demo в строке 13 вы постоянно перезаписываете контент этого поля.
|
Задача предстоит такая:
var aa = document.querySelectorAll('form.intake input[name="aa[]"]'), bb = document.querySelectorAll('form.intake input[name="bb[]"]'); Мне нужно каждый инпут аа[] умножить на инпут bb[], и вывести в инпут сс[], а потом все результаты сложить в переменную FullPay. И все это в динамике, так как инпуты можно как добавлять так и удалять. function FullPay() { var aa = document.querySelectorAll('form.intake input[name="aa[]"]'), bb = document.querySelectorAll('form.intake input[name="bb[]"]'); alert(aa); for (var i = 0; i < aa.length; i++) { cc[i] = aa[i]*bb[i]; document.getElementById("cc[]").innerHTML = "Results =" + cc[i].value } } $('form.intake').on('input', 'click','input[name="aa[]"], input[name="bb[]"]', FullPay); но что то, я чувствую, не осилю сам =( |
function FullPay() { var aa = document.querySelectorAll('form.intake input[name="aa[]"]'), bb = document.querySelectorAll('form.intake input[name="bb[]"]'), cc = document.querySelectorAll('form.intake input[name="cc[]"]'), FullPay = document.querySelector('.FullPay'); for (var i = 0; i < aa.length; i++) { cc[i].value = (+aa[i].value||0) * (+bb[i].value||0); FullPay.innerHTML += +cc[i].value; } } Вот, уперся в проблему, точнее две. Не могу сделать так что бы переменная сс[i] заходила в тот инпут который нужно, выходит только со смещением, то есть выводит сумму в последний инпут сс[]. И еще, не выходит правильно сложить результат в FullPay. Подскажите, что куда и как правильно? |
Taichi,
function FullPay() { var aa = document.querySelectorAll('form.intake input[name="aa[]"]'), bb = document.querySelectorAll('form.intake input[name="bb[]"]'), cc = document.querySelectorAll('form.intake input[name="cc[]"]'), full = document.querySelector('.FullPay'), sum = 0; for (var i = 0; i < aa.length; i++) { cc[i].value = (+aa[i].value||0) * (+bb[i].value||0); sum += +cc[i].value; }; full.innerHTML = sum } |
Вложений: 1
Я выносил тоже переменную из цикла, но у меня не заработало. И ваш пример у меня, чего то, не работает:(
Прикрепил скрин формы. |
Цитата:
|
Вложений: 1
Сейчас, поднастрою антенну для телепатии, а то действительно слабо передает.
Прикрепил скин формы для варианта: function FullPay() { var aa = document.querySelectorAll('form.intake input[name="aa[]"]'), bb = document.querySelectorAll('form.intake input[name="bb[]"]'), cc = document.querySelectorAll('form.intake input[name="cc[]"]'), full = document.querySelector('.FullPay'); for (var i = 0; i < aa.length; i++) { cc[i].value = (+aa[i].value||0) * (+bb[i].value||0); full.innerHTML += parseInt (+cc[i].value); } } |
Не знаю, почему, но если объявить какую то переменную опосля
FullPay = document.querySelector('.FullPay'); Скрипт, как будто бы теряет его из памяти. :blink: |
Taichi,
не называйте одинаково функции и переменные!!! function FullPay() { var aa = document.querySelectorAll('form.intake input[name="aa[]"]'), bb = document.querySelectorAll('form.intake input[name="bb[]"]'), cc = document.querySelectorAll('form.intake input[name="cc[]"]'), FullPay = document.querySelector('.FullPay'); for (var i = 0; i < aa.length; i++) { cc[i].value = (+aa[i].value||0) * (+bb[i].value||0); FullPay.innerHTML += parseInt (+cc[i].value); } } |
Taichi,
пост №66 исправил |
Цитата:
var last_scroll_top=0; $('html,body').scroll(function(){ var sTop=$(this).scrollTop(); if(sTop<last_scroll_top) alert('to top'); else alert('...'); }); А каким образом обновляются данные у переменной last_scroll_top не отображено ?! |
Цитата:
...= ... |
рони,
Возможно так? var last_scroll_top=0; $('html,body').scroll(function(){ var sTop=$(this).scrollTop(); if(sTop<last_scroll_top) alert('to top'); else alert('...'); last_scroll_top = sTop; // таким образом? }); |
Nlk, да.
|
Nexus,рони,
Спасибо! |
Где то ошибся?
document.addEventListener("scroll", myFunction); var lastScrolled = 1; function myFunction() { var scrolled = window.pageYOffset || document.documentElement.scrollTop; var scrolledThis = this.scrolled; if (scrolledThis < lastScrolled) { alert("TOP"); } else { alert("BOTTOM"); } lastScrolled = scrolledThis; } |
document.addEventListener("scroll", myFunction); var lastScrolled = 1; function myFunction() { var scrolled = window.pageYOffset || document.documentElement.scrollTop; if (scrolled < lastScrolled) { alert("TOP"); } else { alert("BOTTOM"); } lastScrolled = scrolled; } |
Nexus,
какое счастье, работает) Буду 'крутить' далее, спасибо. |
Часовой пояс GMT +3, время: 01:10. |