jquery函数继续运行mousemove事件?

时间:2013-03-23 12:00:25

标签: jquery html button

我写了这个脚本,在网页上制作了一个可转动的按钮。 它工作得很好,但它不想让功能得到。它一直在括号内运行代码。知道如何解决这个问题吗? 这是我现在的代码。

如果您按下鼠标并拖动,则值会发生变化。但现在它无处不在,只有当你点击按钮而不是拖动时才会发生。

function pressed(){
var PosibleVal = new Array(8,41,74,107,140,174);
$(window).on("mousemove", function(e) {
    if (e.which == 1) { // if left mouse button is pressed
      var posY=(e.pageY - 158)*(-1); // read the mouse Y-position 

        if(posY<0)
        {
            posY=0;
        }
        if(posY>180)
        {
            posY=180;
        }
        var ar = Math.round(posY/33); //Round number 

        var cssPosY = "-webkit-transform:rotate("+PosibleVal[ar]+"deg)";
        $("#innerheater").attr("style", cssPosY); // change rotation
    } 
});

} 

HERE是该示例的链接。(仅适用于chrome和safari)

1 个答案:

答案 0 :(得分:0)

我会这样做的

<script type="text/javascript">
$(document).ready(function()
{
    var PosibleVal = new Array(8,41,74,107,140,174);
    $('#heater').on("mousemove", function(e)
    {
         if (e.which == 1) {
         var posY=(e.pageY - 158)*(-1);

         if(posY<0)
            posY=0;
         if(posY>180)
            posY=180;
         var ar = Math.round(posY/33); //geen komma getal
         var cssPosY = "-webkit-transform:rotate("+PosibleVal[ar]+"deg)";
         $("#innerheater").attr("style", cssPosY);
    } 
});
</script>

在#heater div上使用onMouseMove事件对我来说更合乎逻辑。 然后,您可以将<div id="heater" onclick="pressed()">替换为<div id="heater">