В safari по умолчанию ширина окна составляет 980px, поэтому, если ваш javascript начнет выполняться до загрузки окна, ширина будет 980px, даже если ваш метатег viewport определяет ширину как «ширина устройства».
Если вы обнаружите, что добавление метатега <meta name="viewport" content="width=device-width" />
не решит вашу проблему, убедитесь, что ваш код Javascript выполняется только после загрузки окна.
В ванильном Javascript:
console.log(window.innerWidth) // might be the default width
window.onload= function () {
console.log(window.innerWidth) // should now be device width
//... your code here ...
}
В качестве альтернативы, если используется jQuery:
console.log(window.innerWidth) // might be the default width
$( document ).ready(function () {
console.log(window.innerWidth) // should now be device width
//... your code here ...
})