2

我对 jquery 还是很陌生,想知道是否有人可以帮助我。我有一个小脚本,可以检测光标的位置并跟随它的图像。如果单击鼠标按钮,我不知道如何让图像停止/开始跟随。任何人都可以帮我指出写作方向吗?

<!doctype html>
<head>
<title>Follow</title>
<link href="stylesheets/standard.css" rel="stylesheet">
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function() {
$("html").mousemove(function (e) {
var xPos = e.pageX;
var yPos = e.pageY;
$("#foxlocation").html("The fox is at: " + xPos + ", " + yPos);
$("#imgFollow").offset({left:e.pageX,top:e.pageY});
});
});
</script> 
</head>
<body>
<h1>Test</h1>
<h2 id="foxlocation"></h2>
<img id="imgFollow" width="75px" height="75px" src="images/fox.jpg"></img>
<footer>Test2</footer>
</body>
</html>
4

3 回答 3

4
$(document).ready(function () {
    var init = true;
    $(document).on('click', function () {
        $(this)[init ? 'on' : 'off']('mousemove', follow);
        init = !init;
    });

    function follow(e) {
        var xPos = e.pageX;
        var yPos = e.pageY;
        $("#foxlocation").html("The fox is at: " + xPos + ", " + yPos);
        $("#imgFollow").offset({
            left: e.pageX,
            top: e.pageY
        });
    }
});

小提琴

编辑:

从初始化函数开始,最简单的方法是触发一次点击:

    $(document).on('click', function () {
        $(this)[init ? 'on' : 'off']('mousemove', follow);
        init = !init;
    }).trigger('click');

小提琴

于 2013-03-21T21:25:49.067 回答
0

这是一个例子:LIVE EXAMPLE

使用我的解决方案,图像在页面加载后直接跟随鼠标而无需用户交互

我正在使用 CSS 属性

#imgFollow{
    position:absolute;
}

而你的代码除了.css()而不是.offset()

$(document).ready(function () {
    $(window).mousemove(function (e) {
        var xPos = e.pageX;
        var yPos = e.pageY;
        $("#foxlocation").html("The fox is at: " + xPos + ", " + yPos);
        $("#imgFollow").css({
            left: e.pageX,
            top: e.pageY
        });
    });
});
于 2013-03-21T21:28:52.350 回答
0

尝试这个!

$(document).ready(function() {
    $("html").mousemove(function (e) {
        follow(e);
    })
    .click( function () {
        var foo = $.data( this, 'events' ).mousemove;
        if(typeof foo = 'function') {
          $(this).off('mousemove');
        } else {
          $(this).mousemove( function (e) {
            follow(e);
          });
        }
    });
});

function follow(e){
  var xPos = e.pageX;
  var yPos = e.pageY;
  $("#foxlocation").html("The fox is at: " + xPos + ", " + yPos);
  $("#imgFollow").offset({left:e.pageX,top:e.pageY});
}
于 2013-03-21T21:35:35.517 回答