如何使用jQuery自动切换样式表?

时间:2012-02-08 21:56:33

标签: jquery safari css

我会再试一次。我的问题被删除一次,显然是因为已经问过similar question。当作为对类似问题的回复发布时,它被删除了,显然是因为不够相似。

我的问题:

这是(类似问题的解决方案,上面的链接)跨浏览器兼容,即这适用于所有浏览器吗?另外,应该添加到jQuery文件中以使样式表自动切换(白天的灯光样式和夜间的黑暗样式)?

*如果.js用于javascript文件,.jq用于jQuery?这是我第一次看到jQuery解决方案,因为我通常在ol'搜索引擎中输入'javascript'。

希望这会得到回答,并且不会第三次删除。

4 个答案:

答案 0 :(得分:2)

您无需切换样式表,只需切换样式即可。

<body class='day'>

<body class='night'>

然后你可以:

.day {
    background-color:#ffffff
}

.night {
    background-color:#808080
}

然后您可以使用以下方法对其进行控制:

$('body').removeClass('day')
$('body').removeClass('night')

在它周围包含一些基于日期时间的逻辑,你就可以开始了。

您还可以对这样的其他页面元素进行子类化以继续主题:

.day h1 { ...  }
.night h1 { ... }

答案 1 :(得分:1)

jQuery是一个Javascript框架,意味着它抽象了一些基本的,低级的Javascript功能,因此它更容易用于更高级的东西,如UI效果,HTTP请求和DOM操作。但实际上,他们都有.js扩展名。

也就是说,我会建议一种替代的,轻量级的解决方案,而不是切换实际的样式表,从而避免额外的网络请求。一段时间I blogged about this simple method,它只需要一行jQuery。

答案 2 :(得分:1)

Diodius的回答可能是最好的选择,但由于这不是你要求的,我给出了下面的代码。也就是说,我认为你应该强烈考虑Diodius的回答。

  

这是(类似问题的解决方案,上面的链接)跨浏览器兼容,即这适用于所有浏览器吗?

是。我应该在大多数现代浏览器中工作。

  

此外,应该添加到jQuery文件中以使样式表自动切换(白天的灯光样式和夜间的黑暗样式)?

我不确定你的意思是“添加到jQuery文件中”。你没有向jQuery文件添加任何内容,只需引用它,然后在你的javascript中提供jQuery。

所以要根据你有这样的时间来改变你的风格:

<link type="text/css" rel="stylesheet" id="timeofdaystyle" href="day.css"/>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(function() {
  var d = new Date();
  var hour = d.getHours();
  if (hour < 8 || hour > 20) {
     //between 8pm and 8am
     $('#timeofdaystyle').attr('href', 'night.css');
  } else {
     /* this is unnecessary really, because you already have it set to day.css, 
      but I'll add it as an example */
     $('#timeofdaystyle').attr('href', 'day.css');
  }
});
</script>
  

*如果.js用于javascript文件,.jq用于jQuery?这是我第一次看到jQuery解决方案,因为我通常在ol'搜索引擎中输入'javascript'。

不,.js文件用于所有JavaScript。 jQuery是JavaScript,因此使用.js扩展名。

我希望有所帮助。

答案 3 :(得分:0)

我不会切换样式表。我会在正文中添加一个类,然后切换该类。如果你有2个样式表。一个人说移动另一个有桌面样式,这只是检测浏览器和改变身体类别的问题。它是跨浏览器兼容的并且不会令人头疼。