Обнаружьте, когда мышь уедет через начало страницы с jQuery

Конечно, Вы. То, что отличается относительно наследования, - то, что при определении класса он наследуется частный другим классам/структурам. Если Вы определите структуру и получите ее из класса или структуры, то это будет общедоступное наследование по умолчанию:

// the following two are equivalent except that one time class is 
// used and the other time struct
struct f : g { };
class f : public g { };

, Если Вы задаетесь вопросом, как необходимо перенести структуры C - я встроил бы их как участник в класс. Поскольку структуры C не были разработаны, чтобы быть наследованными от (не думайте ни защищенный ни виртуальный деструктор в структурах C - у них не может быть одного). Они - простые агрегаты, которые собирают данные. И помещение их как участники использует их как таковой (поскольку в "точке имеет пару x и координаты y").

структуры C также подвергают участников, которые возможно не должны быть подвергнуты в классе. Включение позволяет точное управление тем, что выставляется и что не получают/функции множества, и можно все еще позволить ему дать Вам копию или ссылку на содержавший явный объект структуры C.

8
задан Lobe 24 October 2009 в 11:35
поделиться

2 ответа

Проблема появляется, если ваше окно прокручивается вниз, добавьте к странице несколько
s и прокрутите вниз на одну строку, и вы увидите ее.

Поэтому вместо того, чтобы проверять, <= 1 ли e.pageY, вычтите scrollTop:

if (e.pageY - $(window).scrollTop() <= 1)
    {    
    // do something
    }
13
ответ дан 5 December 2019 в 12:59
поделиться

Я использовал другую технику, работает почти во всех браузерах. Уловка заключается в использовании $ ("body") или $ (window) .

$ (window) не работают для IE, но $ ( "body") частично работает для FF, так как тело может не заполнять все окно.

Вот полный код страницы:

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script><script>
  var mouseX = 0;
  var mouseY = 0;
  var theFrame;
$(function() {
    theFrame = $("body"); //$(window) for non-IE
      theFrame.mousemove( function(e) {
        //horizontal distance from edge
        mouseX = Math.min(theFrame.width() - e.pageX, e.pageX);
        //vertical distance from top
        mouseY = e.pageY;
        $("#mx").html(mouseX);
        $("#my").html(mouseY);
      });
    theFrame.mouseout(function() {
        if(mouseY<=mouseX)
            $("#in_out").html("out-top");
        else
            $("#in_out").html("out");
    });
    theFrame.mouseover(function() {
        $("#in_out").html("in");
    });
});
</script> 
</head>
<body>
<span id="in_out"></span>
<br />Hor: <span id="mx"></span>
<br />Ver: <span id="my"></span>

</body>
</html>
0
ответ дан 5 December 2019 в 12:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: