Pull to refresh
5
0
Alexander Leutsky @leutsky

Makeup for web

Send message

Интересная статья, спасибо!

На счёт увеличения рентабельности: почему бы просто не поднять стоимость изделия? (3-5-7%)

некоторые проблемы такого решения:


  • потеря оригинального значения tabIndex — это может сломать UX (обход при смене фокуса станет последовательным, а не таким, как задуман)
  • tabIndex не всегда равен -1, а может быть задан любым отрицательным числом — таким образом, могут появиться элементы, которые начнут получать фокус (например, при tab) после закрытия модального окна
  • препятствование сборщику мусора, да и потенциальное место для утечки памяти. У современной страницы DOM-дерево весьма динамично может меняться — это может привести к тому, что в this.interactiveElementsList и в this.blockElementsList могут остаться ссылки на уже удалённые из дерева элементы, но сборщик мусора их не удалит, пока не закроется модалка (а она может просто "упасть" из-за какой-то ошибки)
  • на реальной странице может быть очень много элементов, которые могут получать фокус — обработка всех этих элементов перед открытием модалки — пустая трата ресурсов.
  • внутри contains может проверяться много элементов (зависит от сложности DOM-дерева) — это приведет ещё к доп.нагрузке.

Стоит смотреть в сторону перехвата и перенаправления фокуса. Тут будут свои подводные камни, но это менее ресурсоёмкий подход.


Попробуйте такой простой код:


<button id="b1">Button 1</button>
<button id="b2">Button 2</button>
<button>Button 3</button>

<script>
  const b1 = document.getElementById('b1');
  const b2 = document.getElementById('b2');
  b2.addEventListener('blur', () => b1.focus());
</script>

Кнопка №3 не получит фокус при Tab, а само переключение фокуса будет ограничено между первых двух кнопок. Тоже самое можно сделать и с модальным окном — залочить фокус внутри него.


пару ссылок
https://github.com/theKashey/focus-lock
https://github.com/theKashey/react-focus-lock

Пожалуй, лучшее и простое в использовании ПВО против таких дронов
image

А после подбираем дрон, отламываем несущую часть и при поддержке 4х стволов помогаем толпе продвигаться дальше))
Был бы на нем еще LPT-порт, то тогда для ЧПУ станков было бы самое то.
Вариант с бесконтактным измерением уровня воды рассматривали? (ультразвук, свет и т.д)
чаще на максимум: фото, видео, доки. Итого почти 16Г
вот еще 5 копеек:

.block-center-pos {
  bottom: 15%;
  height: auto;
  left: 20%;
  position: absolute;
  right: 20%;
  top: 15%;
  width: auto;
}


width = 100% — left — right;
height = 100% — bottom — top;

т.е высота и ширина изменяются в зависимости от размеров родителя.
сидишь вот так на унитазе, ничего не подозреваешь, мысли там всякие в голове, а кто-то по блютусу пытается захлопнуть крышку твоего фаянсового «умного друга» или фотки скачивает, не говоря о видео трансляции)))
Для 'Read classes':

var classes = nElement.className.split(' ');


А для 'Toggle class':

var classes = " " + nElement.className + " ";
if (classes.indexOf(" " + 'testToggle' + " ") == -1) {
  nElement.className += " " + 'testToggle';
} else {
  nElement.className = classes.replace(" " + 'testToggle' + " ", " ").replace(/^ /, "").replace(/ $/, "");
}


вот теперь extjs отстает от native)
у вас, по сути, отставание на 10-20%, причем в операциях в миллисекунду, т.е. пользователь этого точно не заметит, даже при количестве в 1000 операций на одно его действие, что является редкостью.
Результаты jQuery можно немного улучшить:

'Append span':
вместо jQuery(document.body).append(jQuery('<span class="testspan">'));
записать jQuery(document.body).append('<span class="testspan">');


приблизительно скорость увеличивается на 20% в Хроме (в других не проверял), но это всё равно мало.

'Styling':
вместо jElement.css({'background-color': '#aaa'});
записать jElement.css('background-color', '#aaa');


+ 40% относительно исходного результата…

ps. порадовало, что extjs по некотором тестам немного native превосходит в некоторых браузерах))) надо как-нить заглянуть в его «кишки»
В head можно посмотреть. Их автор из cdn в основном подгружает.
Такими заявлениями ростелеком сам себе наносит ущерб по имиджу и становится менее конкурентным на фоне тех компаний, которые умеют производить блокировки правильно.
Забавный код) Круто!

[humor]
скоро на всех собеседованиях страны:
— А Вы писали код по Шекспиру?
— Увы, нет. Только по Маяковскому. Знаете, мне кажется, Шекспир не отвечает сегодняшним трендам. Я считаю, что нужно писать кратко, быстро и в четкую рифму…
[/humor]
интересно, на что рассчитывает Sharp с такой моделью? Т.к если не вдаваться во внутренности телефона, то тот же модельный ряд Nokia Lumia прочнее и дешевле.
Экран у девайса — знаменитая матрица Sharp, 4.7 дюйма, 1280×720 пикселей. Это очень приятная для глаз и использования матрица.
image


видимо, очень приятная матрица, что аж кто-то успел поцарапать экран))
Мобильные платежные системы через NFC напомнили фильм «Время», только вместо времени — деньги. Ведь можно сделать так, что просто прислонил телефоны и на экранах видно, как деньги перетекают…
Дело не в убеждении, а в потребности: игры, новые тренды в дизайне, отсутствие нативной возможности кастомизации в браузере и т.д.

Так что нужно знать и уметь кастомизировать (~решать нестандартные задачи), а не сидеть, забившись в угол от страха, укрепляя свои убеждения… (признаться, уже достали комментаторы, которые ссут что-либо реализовывать, ссылаясь на псевдо-мудрость и чушь)

Помимо Вашей статьи, на хабре есть еще минимум 3 (вместе с моей), в которых обсуждается решение задачи по кастомизации скролбаров. Также можно посмотреть исходники vkontakte и facebook, они также УЖЕ решили эту задачу.

Вы не побоялись кастомизировать браузерные скроллбары, и даже написали об этом статью. Так что лучше еще раз посмотрите на свое решение и выявите те места, в которых допустили ошибку или где не получилось достичь нужного результата. Еще раз их проработайте. Это вполне решаемая задача.

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

С профессионалами сейчас реально голяк… Так что не останавливайтесь на достигнутом.
и начало новой эры:

2011-2012 — от концепта в производство и успех
2013 — новая ОС для Raspberry PI — «Pidora»
2015 — на основе Raspberry PI создают автономного робота и дают кодовое название — «Pidorg»
2017 — Raspberry Pi Foundation запускает распределенную вычислительную сеть — pidor.net
2020 — сеть pidor.net выходит из под контроля человечества и организовывает производство pidorg'ов
2021 — человечество объявляет войну…

2029 — pidor.net отправляет в прошлое одного из киборгов, чтобы ликвидировать будущего предводителя человечества…
«разработчики и не подозревали, что новое название их продукта будет иметь такой(!!!) PR-эффект в России и СНГ»

Information

Rating
Does not participate
Registered
Activity

Specialization

Frontend Developer, Program Manager
Lead
JavaScript
Git
Python
CSS
Docker
Project management
React
MySQL
TypeScript
People management