Ну так может они и есть разные? Страница открыта в разном расширении, с разным зумом, не убраны разные стандартные отступы\размеры шрифта?
Пример то приведи.
Общий ответ без примера очевиден: getBoundingClientRect выдаёт точное значение, ищи проблему на своей стороне.
kapac_er, если у девайса какой-то особый драйвер и нет софта с настройками - можно попробовать поставить стандартный виндовый драйвер "USB Audio Device" или типа того.
Также стоит почитать мануал к девайсу, мб там написано что-то по этому поводу.:)
DIVSIDE, таки почитай статью. Пространство цветов видео и пространство цветов самой страницы - разные. В видео вообще нет никакого RGB, там YUV и то как браузер, система и драйвер преобразует YUV в RGB зависит от цветовых профилей и погоды на юпитере.
Что значит "доступа к серверу нет"? А к чему есть? Ты юзерскрипт пишешь или сторонний клиент к чему-то?
Если свой клиент, то пока мыль только одна - использовать service-worker и уже из него решать что отправлять. Он вроде как ещё некоторое время живёт после ухода с сайта, и т.о. можно будет отличить закрытие вкладки от закрытия браузуера или обновления.
Но нужно экспериментировать и широко тестировать.
Если же не надо отличать закрытие всего браузера от закрытия вкладки(а нафига?), только от обновления, то тут уже по-проще.
P.S. Может тебе проще вообще visibilitychange использовать, а не закрытие? Ну или вообще забить - и слать всегда офлайн при анлоад и онлайн при старте, и пофиг что мигать будет.
DIVSIDE, я, собсно, привел ссылки на статьи: первая расскажет, что работа с цветовыми профилями в разных браузерах(и не только) отличается. Т.е. в одном это #1e1e1e, а в другом не #1e1e1e(хотя, конечно, проверить не помешает); вторая расскажет как сделать прозрачное видео с кроссбраузерно.
zolope, ещё вариант если прозрачная часть видео статическая - можно просто наложить css mask. Ну и особый вариант, существовавший до появления видео с прозрачностью, - воспроизводить видео через canvas и руками там регулировать прозрачность.
ssawyer, про прозрачность ничего не было, лол. Картинка шакальная, ничего не понятно.
Но прозрачность можно всему этому дерьму сразу придать, если не страшно что текст прозрачный слегка будет. Иначе таки придётся фильтры подключать. Ну или городить дублирование в html: подложка с прозрачностью и невидимым текстом, и поверх неёё тоже амое без bg и с видимым текстом.
Впрочем сделать так чтобы была внешняя тень но небыло внутренней(под прозрачностью) - это вообще стандартными средствами никак. Проще послать разошедшегося дизайнера нахрен.
А если это говно хочет заказчик - фигач 1 пнгшку под один размер. Не твои проблемы.
Либо если хочешь сделать это своей проблемой - нарежь пнгшку в спрайт и расположи как надо, можно даже табличкой, как в старые добрые времена ie6. Будет работать и не требует напряжения мозга. Мб где-то в интернете даже сохранились тулзы для этого.
Первой что приходит на ум - посмотреть в настроках драйвера, возможно там есть возможность отключить.
Второе - использовать AutoHotkey(или аналоги), чтобы заблокировать медиа клавиши volume up\down(колонка с вероятностью 99% под капотом использует именно их).
Возможно есть какое-то решение в самой в винде, но тут уже не скажу - надо интенсивно гуглить.
От похожих проблем с PNG помогало удалить информацию о цветовом профиле из меты файла.
С видео всё намного сложнее, т.к. в ход идёт hardware acceleration и всевозможные твики и настройки в драйверах применяемые отдельно к видео. Но попробовать поискать инфу по конкретному использованному кодеку можно. Возможно стоит погуглить предпочтительные настройки кодирования и кодеки под web.
Гарантированным же решением вижу только не использовать сплошной фон, а использовать видео с прозрачным фоном.
P.S. Допускаю, что есть волшебная пилюля, но я о такой не слышал.
Очевидно зависит от аудитории. Смотришь с каких браузеров ходят на твой сайт и прикидываешь какой процент аудитории ты готов потерять ради свистоперделок.:)
Настолько могу судить теоретически, никогда этого не ковыряв: раз апдейты микрокода могут патчить инструкции, то запилив такой свой можно будет попатчить и CPUID.
Но это задача не для слабых. Нигде ты не найдёшь достаточно инфы, придётся самому ковыряться в очень низкоуровневом коде, окирпичив ни одну мать и физически спалив ни один проц.:)
leeroyjenkins176, для float: left - минимально 0px, максимально - середина экрана, значение по центру clamp: (ширина картинки + минимальная ширина - ширина контейнера) * 100000.
Т.е. если <ширина картинки + минимальная ширина текста> больше чем <ширина контейнера> - то значение там 100000 * что-то плюсовое, а если меньше то 100000 * что-то минусовое.
Граничные случаи когда может сломаться:
a) экран шире 200000px.
b) разница между шириной контейнера и <ширина картинки + минимальная ширина текста> сильно меньше 1px(но не равно 0).
Оба случая кране маловероятны, хоть и возможны.:)
P.S. Я специально в переменные вынес, чтоб лучше читалось, чего и тебе рекомендую.:)
Ну так а lang откуда берётся то и как сохраняется?
Когда ты "переходишь по страницам" - переходы виртуальные, на клиенте, если на клиенте lang изменился то он и остаётся. Когда ты обновляешь страницу - отрабатывает загрузка с нуля и если на сервере(или в url) никак lang не сохранён то и будет значение по умолчанию.
Детальнее - сам смотри.
Порядок в объекте js придумали рептилойды: сначала числовые ключи по числовому порядку, потом строковые ключи по порядку добавления в объект.
Как старпёр я помню всё развитие спецификаций: сначала порядок был неопределён, но по факту был везде по добавлению, потом порядок по добавлению закрепили и это было прекрасно, а потом какой-то гений придумал "фичу" с числовыми ключами и порядок стал абсолютно бесполезен, вынуждая переходить на иные варианты.
WbICHA, а оно и не монолит, всё равно дохрена. Кровавый энтерпрайз. Так получилось что я никогда по всяким лендингам-одностраничникам не работал, мб там проще.
Дохрена это не часы, если что, но и минута перед каждым коммитом - напряг.
Пример то приведи.
Общий ответ без примера очевиден:
getBoundingClientRect
выдаёт точное значение, ищи проблему на своей стороне.