jQuery Использование textIndent при анимации
Ну собственно вот код который отлично работает в ИЕ и FF, а вот Opera этого не понимает что ли ...
$(document).ready(function(){ $("#enterhere").focus(function() { if($(this).attr("value")=="что ищем?") { $(this).animate({"textIndent":"-100"},"slow",0,function() { $(this).attr("value",""); $(this).css("textIndent","0"); }); } }); }); |
Отрицательный textIndent не работает?
|
Цитата:
Анимация отрабатывает textIndent=-100 а визуально этого как то не видно :). |
Ну так попробуйте в CSS записать, чтобы проверить, работает ли в Opera отрицательный text-indent для элементов ввода?
|
Цитата:
Работает и в том случае если писать вот так вот $(this).css("textIndent","-100");а вот сама анимация с textIndent не работает. |
А если единицы измерения написать?
$(this).animate({"textIndent":"-100px"}, … |
Цитата:
|
Да, действительно не работает, проверил. Ну попробуйте как-то так:
$(document).ready(function(){ $("#enterhere").focus(function () { if(this.value == "что ищем?") { var input = this; (function () { if (input.value) { input.value = input.value.slice(1); setTimeout(arguments.callee, 100); } }()); } }); }); |
Цитата:
|
Цитата:
http://www.opera.com/support/bugs/ |
да опера вообще галимый недобраузер. Задрали её тупые глюки.
|
Ругаться все горазды. А читать стандарты кто будет?
Цитата:
Минус в карму тебе, Flounder, не захотел разобраться даже. |
Цитата:
Зануда ты какой то, subzey. Поставь ещё штоль минус, может из меня отрицательный персонаж получиться тут :) |
Повторюсь, ругаться все горазды.
|
Цитата:
|
Гхм-м... Провел изолированный тесу, оказалось, что помогает не display, а то, что я вместо .style.textIndent="..." использовал .style="text-indent: ...".
Flounder, извини меня, пожалуйста, я баклан и пи?добол. |
А вот и фикс для сложившейся ситуёвины.
if (window.opera){ // Опера онли document.addEventListener('DOMAttrModified', function(e){ // при изменении аттрибута любого элемента на странице if (arguments.callee.skip || e.attrName != "style") return; // если установлен .skip, или если изменился аттрибут не style - на выход var trigger = (e.srcElement||e.target); // кто же вызвал объект? switch (trigger.tagName.toLowerCase()){ // и в зависимости от его имени тега case "input": case "textarea": case "select": case "option": case "optgroup": arguments.callee.skip = true; // временно дизаблим себя же. Это безопасно, никто вклиниться не успеет. trigger.style = e.newValue; // прописываем style явным образом. arguments.callee.skip = false; // снова подключаем себя break; }; }, true); // капчуринг }; Подключать на странице как можно выше. |
Цитата:
Прощения заслужишь ты тотчас... А фичу, что ты выше изложил Придумал то случайно уж не сам ли? Респект тебе тогда и уважуха. |
Цитата:
|
«Вы должны добавить отзыв кому-то ещё, прежде чем сможете снова добавить его Flounder.»
Уже трижды плюсанул других, все равно такая ерунда. Не забуду. Вечером пойду по форуму Фикс, да, самописный. Раз уж .style="text-indent: …" работает, грех этим не воспользоваться. Вообще, при всей моей привязанности к Опере, мне начинает казаться, что суровые норверские девелоперы поторопились с релизом. Хотя, ходят слухи о том, что версии 10.2 не будет, а будет сразу 10.5, и это все может быть неспроста. Upd: Вернул взад. |
Цитата:
|
Для использования ее как браузера, а не средства для разработки (тут плохо, спору нет) -- имхо очень хороша. А если пользователю нравится -- он использует, и разработчикам так или иначе придется под нее подстраиваться (возьмите ИЕ6).
|
Подниму-ка темку.
Кто-нибудь знает, как заставить Оперу реагировать на text-indent в textarea? |
Мой сайт в Opera-11 тоже перестал работать.
Проблема тоже с ОТРИСОВКОЙ при анимации. Т.е. animate работает, но не орисовывается результат. Два дня искал причину. Нашел. Делюсь. У меня была конструкция: <div class=...> <span class=...> <div class=...> меню с анимацией. </div> </span> </div> (Коментировать не надо. Сам знаю.) Так вот проблема в этом <span> Убрал (заменил на div) и все заработало. И еще: Увидеть, что именно отрисовка не работает легко. Достаточно во время анимации прокрутить окно обозревателя по вертикали. Или после анимации распахнуть поверх другое окно и опять схлопнуть... |
Вдогонку.
Глубоко не копал, но ощещение, что проблема в установке по умолчанию "displey:" для span (а может и не только). Я пробовал ставить у своего span displey:block и начинало отрисовываться... Аналогично :inline-block |
именно displey:block?
|
Ну апчепятка. Ну бывает.
Здесь же форум вовсе не языкознавцев... Признаю свою вину, меру, степень, глубину... Но решение именно там. Сегодня проделал несколько экспериментов и все более убежден, что animate глючит именно из-за display: по умолчанию. У меня вообще примитив... Никаких там textIndent. И не отрисовывалось. |
Часовой пояс GMT +3, время: 22:53. |