2013-01-06 2 views
-2

jquery.but와 함께 플레이어 볼륨 슬라이더와 같은 슬라이더를 디자인했습니다. 문제는 FIREFOX에서만 처음입니다. 슬라이더를 드래그하면 정상이지만 두 번째 시간에는 브라우저가 드래그하는 것처럼 드래그합니다. 처음부터 드래그 한 후 빈 영역을 클릭하고 슬라이더를 다시 드래그하십시오. 여기에 문제가 있습니까? 나쁜 영어로 죄송합니다.파이어 폭스는 두 번째로 자체 div를 드래그합니다.

EDIT :

http://codepen.io/anon/pen/bjChB

HTML :

<div id="btn_container"> 

    <div id="button"></div> 

</div> 

CSS :

div#btn_container{ 
width:200px; 
height:60px; 
position:absolute; 
background:red; 
margin:auto; 
right:0;left:0;top:0;bottom:0; 
} 
div#button{ 
width:60px; 
height:60px; 
background:blue; 
position:absolute; 
left:0px;top:0px; 
} 

JQuery와 :

$(document).ready(function() { 
    var pressed = false; 
    var $this; 
    var x; 
    $("div#button").mousedown(function(e){ 
     pressed = true; 
     $this = $(this); 
     var offset = $this.offset(); 
     var inside = e.pageX - offset.left; 
     $(document).mousemove(function(e){ 
      if(pressed){ 
       var parentOffset = $this.parent().offset(); 
       x = e.pageX - parentOffset.left; 
       if(x <= $this.parent().width() - $this.width() + inside && x >= 0 + inside) 
        $this.css({"left":x - inside}); 
      } 
     }); 
    }); 
    $(document).mouseup(function(){ 
     if(pressed){ 
      if(x > $this.parent().width() - $this.width() - 30) 
       $this.animate({"left":$this.parent().width() - $this.width()} , 50); 

      pressed = false; 
     } 
    }); 

}); 
+2

코드를 게시하면 도움이 될 수 있습니다! – jtheman

+0

나는 코드를 추가했으나 파이어 폭스보다 다른 모든 브라우저에서 작동하므로 파이어 폭스의 다른 웹 사이트에서도이 문제를 보아왔다. – user1447420

+0

확실한 코드가 중요합니다! 브라우저 불일치가 무엇인지 알아내는 것은 매우 어렵습니다. 하지만이 경우 jsfiddle이 효과적 일 것입니다. – jtheman

답변

2

mousedowne.preventDefault();을 추가하면 파이어 폭스가 사용하려고하는 모든 행동을 막을 수 있습니다.

+0

감사합니다.이 솔루션이 내 것보다 낫다. – user1447420

0

이 코드를 CSS에 추가 했으므로 div가 선택되지 않습니다.이 문제가 해결되었습니다.

-moz-user-select: none; 
-khtml-user-select: none; 
-webkit-user-select: none; 
-ms-user-select: none; 
user-select: none; 
관련 문제