Требуется доработка скрипта.
Я сам не силен в скриптах, небольшие знания программирования школьного курса есть, для понимания... В общем есть скрипт плавающего меню (при прокрутке), отлично работает на браузерах эксплорер и опера, на мозиле и хроме - подглючивает в одном моменте. Функция скрипта: при старте страницы определяет, где должен быть модуль относительно головы страницы, а при прокрутке прилепляется к верху странице и остается на этом месте. Глюк состоит в том, что при использовании якорей на странице, либо обновлении в произвольном месте, скрипт подгружается с параметром первоначального отступа от верха странице. Если наглядно, то это так: выглядит.
А еще хотел использовать этот скрипт дважды на странице, для разных блоков. Все перемешалось и работола по сценарию второго скрипта, несмотря на то, что переменные m1, m2, s и top менял на альтернативные. Помогите уроком, решением... Вот скрипт: <script type="text/javascript"> var m1 = 240; /* высота шапки в пикселях */ var m2 = 20; /* отступ, когда во время прокрутки шапка уже не видна */ /* функция кроссбраузерного определения отступа от верха документа к текущей позиции скроллера прокрутки */ function getScrollTop() { var scrOfY = 0; if( typeof( window.pageYOffset ) == "number" ) { //Netscape compliant scrOfY = window.pageYOffset; } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) { //DOM compliant scrOfY = document.body.scrollTop; } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) { //IE6 Strict scrOfY = document.documentElement.scrollTop; } return scrOfY; } /* функция, которая устанавливает верхний отступ для «плавающего» фиксированного вертикального меню в зависимости от положения скроллера и видимости шапки */ function marginMenuTop() { var top = getScrollTop(); var s = document.getElementById("socializ"); if (top+m2 < m1) { s.style.top = (m1-top) + "px"; } else { s.style.top = m2 + "px"; } } /** функция регистрирует вычисление позиции «плавающего» меню при прокрутке страницы **/ function setMenuPosition(){ if(typeof window.addEventListener != "undefined"){ window.addEventListener("scroll", marginMenuTop, false); } else if(typeof window.attachEvent != "undefined"){ window. attachEvent("onscroll", marginMenuTop); } } /** регистрируем вызов необходимых функций после загрузки страницы **/ if(typeof window.addEventListener != "undefined"){ window.addEventListener("load", setMenuPosition, false); } else if(typeof window.attachEvent != "undefined"){ window. attachEvent("onload", setMenuPosition); } </script> |
Часовой пояс GMT +3, время: 18:45. |