Как получить текущую позицию изображения в jQuery?

Тестирование isset ($ this) не работало для меня, как упомянул troelskn «$ this будет установлен как контекст вызывающего абонента».

abstract class parent
{
    function bar()
    {
        if( isset( $this ) ) do_something();
        else static::static_bar();
    }

    function static static_bar()
    {
        do_something_in_static_context();
    }
}

class child extends parent
{
    ...
}

$foo = new child();
$foo->bar(); //results in do_something()
child::bar(); //also results in do_something()

В моем случае у меня есть родительский класс с объектом и статической контекстной функцией, которая выполняет ту же задачу в дочернем классе. isset ($ this) всегда возвращал true, однако я заметил, что хотя $ this переключается между классом child в объектном контексте и вызовом (?) класса в статическом контексте, чудесная магическая константа __class__ осталась родительской для класса!

Вскоре после нахождения функции is_a мы можем проверить, находимся ли мы в статическом контексте:

if(  is_a($this, __CLASS__) ) ...

Возвращает true в контексте объекта, false в статическом контексте.

Пожалуйста, протестируйте свои собственные реализации, так как я проверяю это только для моего конкретного сценария (уникальный случай вызова наследования) в 5.3.

К сожалению (для моего случая) я пока не могу найти способ вызвать static_bar(), так как $ this и static относятся к отдельному классу, а __class__ относится к родительскому классу. Мне нужен способ вызова child :: static_bar () ...

6
задан David Snabel-Caunt 19 May 2009 в 21:43
поделиться

2 ответа

Взгляните на position () :

var pos = $("#myimage").position(); // returns an object with the attribute top and left
pos.top;  // top offset position
pos.left; // left offset position
13
ответ дан 8 December 2019 в 18:41
поделиться

Вы сказали две вещи:

  1. вы хотите оставить изображение в фоновом режиме
  2. вы хотите иметь возможность изменять его положение в родительском элементе.

Итак вы должны установить изображение как «фоновое изображение» родительского блока с помощью «background-repeat: no-repeat».

Положение изображения можно контролировать с помощью свойства «background-position».

Конечно, могут быть альтернативные реализации, использующие в родительском div и умное взаимодействие «position: absolute» и «position: relative», но я видел, что перемещение изображений более плавное, если изображение является фоном.

Надежда, которая помогает.

Ура, jrh

0
ответ дан 8 December 2019 в 18:41
поделиться
Другие вопросы по тегам:

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