Показать сообщение отдельно
  #1 (permalink)  
Старый 15.09.2012, 15:04
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Почему не работает код
<!DOCTYPE HTML>
<html>
<head>
  
<style>

#s1, #s2, #s3 {
  border-radius: 5px;
  background: #E0E0E0;
  background: -moz-linear-gradient(left top , #E0E0E0, #EEEEEE) repeat scroll 0 0 transparent;
  background: -webkit-gradient(linear, left top, right bottom, from(#E0E0E0), to(#EEEEEE));
  background: linear-gradient(left top, #E0E0E0, #EEEEEE);
  width: 310px;
  height: 15px;
  margin: 15px;
}
#p1, #p2, #p3 {
  width: 10px;
  height: 25px;
  border-radius: 3px;
  position: relative;
  left: 10px;
  top: -5px;
  background: blue;
  cursor: pointer;
}
</style>

</head>
  <body>

    <div id="s1">
        <div id="p1"></div>
    </div>
    
    <div id="s2">
        <div id="p2"></div>
    </div>
    
    <div id="s3">
        <div id="p3"></div>
    </div>

  <script>
    function func() {

        func.sliders = function(event) {
          var parent = this.parentNode; // контейнер ползунка
          var thumbCoords = this.getBoundingClientRect();
          var shiftX = event.pageX - thumbCoords.left;


          var sliderCoords = parent.getBoundingClientRect();

          document.onmousemove = function(event) {

            var newLeft = event.pageX - shiftX - sliderCoords.left;

            if (newLeft < 0) {
                newLeft = 0;
            }
            var rightEdge = parent.offsetWidth - this.offsetWidth;
            if (newLeft > rightEdge) {
                newLeft = rightEdge;
            }

            this.style.left = newLeft + 'px';
          };

        document.onmouseup = function() {
            document.onmousemove = document.onmouseup = null;
        };
       };

    document.getElementById("p1").onmousedown = func.sliders; 
    document.getElementById("p2").onmousedown = func.sliders; 
    document.getElementById("p3").onmousedown = func.sliders;
      
    }
    
    func();

      

  </script>  
  </body>
</html>


Хочу чтоб три слайдера работали от одной функции, которая должна быть методом общей функции.
Как ни пытался не получается.
Помогите разобраться в чем причина?

Последний раз редактировалось dmitry111, 16.09.2012 в 02:01.
Ответить с цитированием