webBG - програмисти, машинно обучение, javascript, python, php, питам, говорим, публикации

Деактивирайте функцията по подразбиране, когато докоснете известно време в браузъра Safari на Ipad

Продължаването на натискане по подразбиране на екрана (напр. задържане на натискане за 1 секунда) ще покаже опция за запазване на изображение/копие. Въпреки това, бих искал да изключа тази функция за моето уеб приложение, възможно ли е? Опитах се да заменя събитието touchmove с selectall, но не работи. Благодаря за помощта.

addEventListener('touchmove', function(e) { e.preventDefault(); }, true);
19.12.2012

  • Сигурни ли сте, че слушате правилното събитие ('touchmove')? Ако искам да запазя изображение на моя iPad, не мога да движа пръста си (много) или изскачащият прозорец няма да се покаже. 19.12.2012
  • Със сигурност touchmove не е правилното събитие, затова се чудя кое е правилното име на събитието. 19.12.2012
  • Разгледайте различните манипулатори на събития за събития с докосване. (Не съм сигурен, че дори можете да предотвратите диалоговия прозорец за запазване?) 19.12.2012

Отговори:


1

Реших, че си струва да споменем, че можете да направите това с чист CSS. Вероятно не е страхотна идея, защото нито IE10, нито Opera Mobile я поддържат. Но може да се направи и в бъдеще това вероятно ще бъде по-добър начин, отколкото с JavaScript. Или ако говорите само за iPhone и iPad, този метод ще работи много добре. Ето пример на CodePen.

Кодът е прост:

.notouch {
    pointer-events: none;
}

Просто дайте клас notouch на всяко изображение, което искате да въздействате.

Ако искате да го направите за всяко изображение на страницата, направете следното:

img {
    pointer-events: none;
}

И трябва да произнеса задължителна реч за използваемостта. Правейки това, вие отменяте функционалността по подразбиране, която хората очакват да бъде там през цялото време. За вас е наистина лошо изживяване да изключите нещо подобно, освен ако нямате наистина, наистина добра причина да го направите. Така че, моля, уверете се, че го правите.

Редактиране:

За да се отървете от лупата, използвайте този код:

.notouch {
    pointer-events: none;
    -webkit-user-select:none;
}

С -webkit-user-select, зададено на „няма“, може дори да не се налага да изключвате събитията с указател, но не съм сигурен в това. Актуализирах и CodePen.

20.12.2012
  • Благодаря, ако събитията на показалеца са деактивирани, показва се мангифер, има ли начин да го деактивирате също? 20.12.2012
  • Мисля, че намерих начин. Отговорът се актуализира. 21.12.2012

  • 2

    Може да е полезно да деактивирате не само preventDefault, но и други свойства:

    e.preventDefault(); 
    e.cancelBubble = true;
    e.returnValue = false;
    return false;
    

    Също и събитието, сигурен ли си, че е touchmove?

    19.12.2012
  • stopPropagation е само за IE, OP иска функционалност на iPad. 19.12.2012
  • Нови материали

    Записване на грешки — Как да записвате грешки във вашето приложение, за да ги отстраните по-късно
    Записването на грешки е важна част от „обработването на грешки“. Накратко, когато възникнат определени грешки в програмите, вие искате да знаете за това. Това е особено важно при грешки. Ти..

    Кратко въведение в теорията на графите
    Кратко въведение в теорията на графите Втора част: внедряване на python на пълни графики В моята предишна статия въведох три основни концепции за графите: върхове, ръбове и тегла. В тази..

    Днес ще пиша за машинно обучение. Смятам се за ентусиаст, а не за експерт, така че имайте това предвид. С това казано, искам...
    Днес ще пиша за машинно обучение. Смятам се за ентусиаст, а не за експерт, така че имайте това предвид. С това казано искам да обясня защо машинното обучение има значение. За да бъда съвсем..

    Какво е структурно типизиране и как Typescript го използва в своя полза?
    Всички знаят тези дни, че „Typescript е строго синтактично надмножество на JavaScript и добавя незадължително статично въвеждане към езика.“. Но какво всъщност означава? Защо миграцията от..

    3 начина за премахване на дубликати от масив в Javascript
    Вие сте уеб разработчик? Програмист ли си? Тогава ще сте запознати с JavaScript и различните му вградени функции, методи и т.н. за различни реализации, проблеми и цели. Един от тези широко..

    Архитектура и обучение на конволюционни невронни мрежи (7 точки):
    Тази публикация предоставя подробности за архитектурата на Конволюционната невронна мрежа (CNN), функциите и обучението на всеки слой, завършвайки с резюме на обучението на CNN...

    Създайте разширение за Chrome с помощта на Angular
    Този урок е базиран на манифеста на разширението на chrome версия 3 (MV3), а също и на Angular версия 2+ (2, 3 и...). Ако не сте използвали манифест версия 3, можете да следвате този урок ,..