미디어 쿼리가 다른 창 폭에 대한 대안 스타일을 제공하는 좋은 솔루션입니다. 아쉽게도 <script>
요소가 비슷하게 진행될 수있는 media
특성이 없습니다.
그러나 미디어 쿼리에 따라 브라우저에서 선택한 스타일 시트에 따라 원하는 .js
파일을로드하는 스크립트로드 스크립트를 제공 할 수 있습니다. 나는 이것을 직접적이고 우아한 방식으로하는 법을 알지 못한다. 그러나 그것을위한 좋은 해킹이있다. 각 .css
을 고유 선언 (더미, 중요하지 않거나 디자인에 따라 다름)으로 "표시"하고 브라우저에서 적용된 스타일 시트를 판별하기 위해 페이지가로드 된 후 JS에서 확인해야합니다. 다음과 같이
<style media="handheld, screen and (max-width:1023px)">
body { margin-top: 0px }
</style>
<style media="screen and (min-width:1024px)">
body { margin-top: 1px }
</style>
를 첨부 JS :
html로는 다음과 같이 할 수
function onLoad() {
var head = document.getElementsByTagName('head')[0];
var body = document.getElementsByTagName('body')[0];
var mark = window.getComputedStyle(body).getPropertyValue('margin-top');
var script = document.createElement('script');
script.setAttribute('src', mark=='0px' ? 'handheld.js' : 'screen.js');
head.appendChild(script);
}
이 작업을 수행하지만, 단지 당 하중으로. 사용자가 브라우저 창 크기를 조정하는 데 반응하는 반응을 얻으려면 widow의 너비를 추적하고 필요할 때 페이지를 다시로드해야합니다.
왜 다른 자바 스크립트 파일이 필요합니까? 사용자가 창 크기를 조정하면 어떻게됩니까? –
나는 다양한 너비에 대해 서로 다른 코드가 필요하다는 것을 거의 의심하지 않고 논리에 더 잘 부합합니다. –
미디어 쿼리를 사용하면 좋을 것입니다. js가 필요한 많은 요소는 더 이상 모바일 스타일 시트와 함께 존재하지 않습니다. 브라우저가 특정 너비 아래로 떨어지면 개인적으로 js로드를 중지하고 싶습니다. –