2010-05-02 5 views
0

Я работаю с SVG, специально для веб-контента, предназначенного для пользователей iPad. Я создал небольшой тип набора номера, который я называю «доска для сыра», которую я хотел бы использовать в качестве элемента интерфейса.Любые идеи о том, как реализовать событие touchMoveOver в Javascript?

http://appliedworks.co.uk/files/times/SVGTests/raphael.html

Щелкнув на кусок сыра (держать аналогию) Собирается будет делать «что-то». Этот бит прост. Тем не менее, я хотел бы, чтобы пользователь мог протащить палец по «сырной доске», уволив новое событие (прикосновение к MovedOver?) Каждый раз, когда их пальцы перемещаются по новому куску сыра. Но я не могу понять, как это сделать, поскольку для сенсорных интерфейсов нет эквивалента «mouseOver».

Если бы все было сделано из квадратов, я мог бы создать какой-то метод «rectContainsPoint» для вызова каждого «touchhesMoved», но этот подход здесь не сработает.

Если у кого-нибудь есть представление о том, как что-то подобное может быть достигнуто, я бы хотел его услышать.

ответ

0

Я не знаю, как они распространяются в SVG, но, безусловно, методы обработки событий прикосновения с JavaScript: http://rossboucher.com/2008/08/19/iphone-touch-events-in-javascript/

+0

это, я знаю, но нет события touchMovedOver, чтобы заменить событие mouseOver. Поскольку пользователи, как ожидается, будут касаться пальцами по экрану, похоже, что это событие, которое должно существовать. – gargantuan

+0

Я считаю, что SVG имеет функцию для получения элементов SVG-графика ниже заданной координаты. Связывая эту способность с расположением пальца, как это предусмотрено API-интерфейсом Touch Touch для iPhone, вы должны выяснить, какие элементы являются «mouseover» и «mouseout» и отправляют эти события самостоятельно. Это похоже на действительно интересную проблему. Отправьте мне iPhone, и я постараюсь вам помочь. Заранее спасибо. – icio

2

Я также не знаю, что происходит внутри SVG, но я думаю, что вы должны быть в состоянии для его реализации, используя событие «touchmove». В справочной библиотеке Safari есть хорошая статья о событиях iphone/ipad touch: http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html

0

Я думаю, вы правы, что нет эквивалента события mouseover для SVG. Посмотрите этот примерный пример разработчиком Flash, который opines on the sad situation.

iPhone не делает движение мыши, и если вы не можете переместить мышь между MouseDown и MouseUp события, разница между MouseUp и нажмите становится бессмысленным.

MouseDown, в теории, по-прежнему имеет действительную функцию как отдельное событие , который вызывается, когда пользователь прикасается к экрана независимо от того, что происходит позже. К сожалению, для теории, , это не так, как она работает на iPhone .

При касании элемента и оставить свой палец на месте на некоторое время, вы получите возможность де-ориентируя ее (т.е. вам позволено заявить вы не хотите следовать этой ссылке после все). В Условиях использования JavaScript я ожидал, что событие mesedown будет запущено, но не клик (я не был уверен в мыши). Вместо этого никакие события не срабатывают.

Смежные вопросы