无法在调整窗口大小时动态添加类
Unable to add class dynamically on window resize
这是我试图添加类的div
<div id="sidebar" class="addthis_recommended_horizontal col-lg-4 col-md-4 col-sm-6 col-xs-12""></div>
这就是我使用的脚本
<script>window.onresize=function()
{var width=document.getElementById("#sidebar").clientWidth;
if(width<640) {document.getElementById("#sidebar").setAttribute("class",".sidebar");}
</script>
添加这个类后,这个CSS代码更改的宽度
.sidebar.at4-recommended-item{width:45%!important}
但是这个类没有被添加,我不知道为什么?
编辑我正在使用媒体查询。在这种情况下,两个类具有相同的名称。如果我更改其中一个,那么另一个也会更改,所以我正在动态添加一个类,并且我需要更改的是一个div,而不是整个窗口宽度。
为什么人们如此热衷于在这里对每个问题进行投票
由于在调整窗口大小时要更改元素的宽度,因此理想情况下应该使用CSS3的@media查询!
在您的情况下,@media查询将是:
<style>
@media (max-width: 640px){
#sidebar{
width: 45%;
}
}
</style>
仅仅为此目的编写Javascript是个坏主意。
了解更多信息:CSS@media-queries|MDN-
编辑:
如果您是动态添加类,只需在@media-query:中提及即可
<style>
@media (max-width: 640px){
.sidebar{
width: 45%;
}
}
</style>
保持简单。:)
通过document.getElementById
选择元素时不要使用#
。#
用于css/jQuery选择器,而不是纯JavaScript。并且您在窗口大小调整到640
以下时添加了一个类名,在640
以上调整时也应该考虑删除该类。
请尝试使用以下代码:
<script>
window.onresize=function() {
var sidebar = document.getElementById("sidebar");
var width = sidebar.clientWidth;
if(width<640) {
sidebar.className ="sidebar";
}
else{
sidebar.className = ""; //assuming this element doesn't have any other classes.
}
}
</script>
如果你想使用jQuery,那么
<script>
window.onresize=function() {
var sidebar = $("#sidebar");
var width = sidebar.width();
if(width<640) {
sidebar.addClass("sidebar");
}
else{
sidebar.removeClass("sidebar");
}
}
</script>
相关文章:
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 动态分配GA增强型电子商务跟踪器
- onkeyup无法动态创建多个文本区域
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 使用javascript将动态表从一个html页面打印到另一个html页
- 如何使Javascript动态html表及其上的事件
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 使用jQuery对图像进行居中和动态调整大小时出现问题
- 无法在调整窗口大小时动态添加类
- "类型错误:can't将未定义转换为对象“t”;当动态调整2D阵列的大小时
- 当PHP类动态调整图像大小时,Zurb Foundation中的Interchange.js出现问题
- 调整大小时Javascript和CSS动态宽度浮动闪烁
- Webkit只在调整大小时应用动态加载的css样式(通过ajax)
- 当更改页面大小时,动态地重新计算选择框的鼠标位置
- 动态设置小时和分钟的时间选择器
- 让Canvas在浏览器窗口调整大小时动态调整大小
- 动态计算小时总和
- 当我需要大小时,使用动态内容运行jQuery
- 改变屏幕大小时的动态Javascript