2016-06-21 3 views
0

У меня есть .js-файл, который позволяет мне определить, какой браузер или ОС запускается, а затем интегрировать его в CSS, делая свои инструкции «if», например, если мобильный, установите для этого атрибуты. Поэтому я хочу, чтобы определенная функция javascript срабатывала при загрузке окна или тела, если и только в том случае, если платформа мобильная, а другая - функция по умолчанию. У меня есть возможность сделать это, я полагаю, но я не могу найти способ установить параметр onload на body {} через CSS, чтобы настроить оператор if относительно тела и платформы, являющейся мобильным. Есть ли способ в CSS изменить onload?Есть ли способ установить загрузку элемента через CSS?

Вот селектор браузера: http://www.dreamquest.io/css_browser_selector.js

А вот пример того, что я хочу, CSS, чтобы выглядеть.

.mobile body { 
    onload = "javascript:setBackgroundMobile"; 
} 

Edit: Хорошо, так что я добавил этот код на JavaScript:

document.addEventListener("DOMContentLoaded", function(event) { 
    if (window.screen.availHeight < "600") { 
    setBackgroundMobile(); 
    } 
    else if (window.screen.availHeight >= "600") { 
    setBackground(); 
    } 
}); 

На мой телефон андроид, и на моем ПК с Windows обоих, другой побежал успешно. Который я думаю, потому что на моем телефоне, мой поворот экрана является вертикальным вначале. Просто проверено, да, когда сайт загружен по вертикали, он загружает второй, если, а если он по горизонтали, он делает первый. Это проблематично, но это безвредно. Я кое-что придумаю. Спасибо за информацию, ребята.

+0

Использовать 'media-queries' – Rayon

+0

* установить параметр onload на body {} через CSS * --- ????? мне непонятно, что вы хотите, если у вас уже есть файл js, чтобы определить, почему вы не загрузили css onload? – DaniP

+0

Предоставьте свой код. –

ответ

2

Нет, нет способа сделать это с помощью CSS.

CSS управляет стилями. Он знает атрибуты HTML, потому что вы можете использовать их в селекторах, но это все. CSS не может создавать или изменять их и, вероятно, никогда не будет, поскольку он не был предназначен для этой цели.

+0

Спасибо. Интересно, есть ли способ обхода проблемы? – resriel

+0

Глядя на селектор браузера, который я представил выше, есть способ настроить оператор if, включающий window.onload, определяющий, на какой платформе пользователь включен? Я вообще не знаю javascript или jquery и этот .js-файл, хотя и короткий, мне очень трудно понять. – resriel

+1

@resriel, суть в том, что вы пытаетесь использовать атрибут 'onload' для запуска кода при инициализации страницы. Мы фактически прекратили это делать несколько лет назад, потому что, как вы поняли, это очень примитивно. Вы должны привязать функцию к событию [DOMContentLoaded] (https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded) (либо в простой JS, либо через набор инструментальных средств) и проверить наличие мобильного пользователя агента там. –

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