jQuery纵向/横向火灾函数

jQuery纵向/横向火灾函数,jquery,html,css,screen-orientation,Jquery,Html,Css,Screen Orientation,我正在使用jQuery为一个交互式网站触发不同的css转换,比如单击时将对象A移动到spot 1。现在,这些选项在不同的视口中应该是不同的 虽然使用类在css中很容易实现这一点,但我不知道当视口从横向变为纵向时如何启动函数只有桌面屏幕,不需要移动设备 所以我在找类似的东西 If "screen width" > "screen height" { //fire function 1, which contains something like $('#example').anima

我正在使用jQuery为一个交互式网站触发不同的css转换,比如单击时将对象A移动到spot 1。现在,这些选项在不同的视口中应该是不同的

虽然使用类在css中很容易实现这一点,但我不知道当视口从横向变为纵向时如何启动函数只有桌面屏幕,不需要移动设备

所以我在找类似的东西

If "screen width" > "screen height" {
  //fire function 1, which contains something like
  $('#example').animate({ "top": "5%", "left": "50%" }, 100);
}

If "screen height" > "screen width" {
  //fire function 2, which contains something like
  $('#example').animate({ "top": "50%", "left": "5%" }, 100);
}
因此,当我调整浏览器大小时,网站始终以最佳方式显示(无需重新加载页面)

我发现了一个有用的脚本,可以检测IE6的浏览器高度和宽度,但我无法在调整浏览器大小时使其正常工作


我感谢每一个提示和提示

您不需要JavaScript您可以使用媒体查询:

@media screen and (orientation: landscape) {
    /* code for landscape goes here */
}

@media screen and (orientation: portrait) {
   /* code for portrait goes here */
}
若要在方向为横向且在桌面上使用以下媒体查询时更改元素属性,它将检查屏幕是否至少为
1024px
(桌面标准)且屏幕方向是否为横向模式

@media screen and (min-width: 1024px) and (orientation: landscape) {
     #example {
        /* rules go here */
     }
}

你不需要JavaScript您可以使用媒体查询:

@media screen and (orientation: landscape) {
    /* code for landscape goes here */
}

@media screen and (orientation: portrait) {
   /* code for portrait goes here */
}
若要在方向为横向且在桌面上使用以下媒体查询时更改元素属性,它将检查屏幕是否至少为
1024px
(桌面标准)且屏幕方向是否为横向模式

@media screen and (min-width: 1024px) and (orientation: landscape) {
     #example {
        /* rules go here */
     }
}

当然,您可以使用css媒体查询,下面是一个示例

HTML

<div id="test">
    Content goes here...
</div>

当然,您可以使用css媒体查询,下面是一个示例

HTML

<div id="test">
    Content goes here...
</div>

试试这个脚本,您可以在调整大小时获得窗口高度和宽度,而无需使用jquery函数重新加载

$(window).resize(function () {
    var height = $(window).height();
    var width = $(window).width();
    console.log('width is : ' + width);
    console.log('height is : ' + height);    
    if (height > width) {
        do something...
    }
    if (height < width) {
        do something...
    }
});
$(窗口)。调整大小(函数(){
var height=$(window.height();
变量宽度=$(窗口).width();
console.log('宽度为:'+宽度);
console.log('高度为:'+高度);
如果(高度>宽度){
做点什么。。。
}
if(高度<宽度){
做点什么。。。
}
});

您可以添加在调整大小过程中需要执行的功能尝试此脚本您可以在调整大小过程中获得窗口高度和宽度,而无需使用jquery函数重新加载

$(window).resize(function () {
    var height = $(window).height();
    var width = $(window).width();
    console.log('width is : ' + width);
    console.log('height is : ' + height);    
    if (height > width) {
        do something...
    }
    if (height < width) {
        do something...
    }
});
$(窗口)。调整大小(函数(){
var height=$(window.height();
变量宽度=$(窗口).width();
console.log('宽度为:'+宽度);
console.log('高度为:'+高度);
如果(高度>宽度){
做点什么。。。
}
if(高度<宽度){
做点什么。。。
}
});

如果jQuery完全依赖于了解纵向模式(例如,操纵宽度),那么您可以添加在调整大小过程中需要执行的功能。您不能总是相信比较窗口/html/主体比率会得到与“@media(orientation:tartical)”相同的答案。我发现,根据浏览器的不同,可能存在一个小范围的不一致(奇怪的是,如果使窗口变宽,镀铬是正确的,但当窗口变窄时会滞后)


为了解决这个问题,我添加了一个虚拟(空)div并在横向模式下隐藏它。然后测试$(dummy div).is(':visible')以确定浏览器是否认为它处于纵向模式。

如果您的jQuery完全依赖于了解纵向模式(例如,操纵宽度),那么您不能总是相信比较窗口/html/主体比率会得到与'@media(orientation:tartical)相同的答案,根据浏览器的不同,可能会有一个小范围的不一致(奇怪的是,Chrome如果使窗口变宽是正确的,但是当窗口变窄时会滞后)


为了解决这个问题,我添加了一个虚拟(空)div并在横向模式下隐藏它。然后测试$(dummy div).is(':visible')以确定浏览器是否认为它处于纵向模式。

为什么不创建页面?为什么不创建页面?