从JavaScript更改CSS样式?

问题描述:

我不想为了简单而使用jquery。我有三个网站,其中一个页面循环。我希望每个网页的缩放比例都是不同的标量值。我尝试在每个页面上应用一个类,但是使用switch语句,但它不起作用,它只能保持第三种样式。我不关心效率,它只会滚动三页,因此可以进行硬编码。谢谢从JavaScript更改CSS样式?

<style> 
#wrap { width: 1390px; height: 690px; padding: 0; overflow: hidden; } 
#frame.first { width: 1390px; height: 690px; border: 0px solid black; } 
#frame.first { zoom: 2; -moz-transform: scale(2); -moz-transform-origin: 0 0; } 
#frame.second { width: 1395px; height: 695px; border: 0px solid black; } 
#frame.second { zoom: 4; -moz-transform: scale(1); -moz-transform-origin: 0 0; } 
#frame.third { width: 1395px; height: 695px; border: 0px solid black; } 
#frame.third { zoom: .5; -moz-transform: scale(1); -moz-transform-origin: 0 0; } 
</style> 
<script type="text/javascript"> 
    var frames = Array('http://www.google.com, 5, 
         'http://www.yahoo.com', 5, 
         'http://www.ebay.com', 5); 

var i = 0, len = frames.length; 
function ChangeSrc() 
{ 
if (i >= len) { i = 0; } 
switch(i) 
{ 
case 0: 
    document.getElementById('frame').className = 'first'; 
    document.getElementById('frame').className 
case 1: 
    document.getElementById('frame').className = 'second'; 
    document.getElementById('frame').className 
case 2: 
    document.getElementById('frame').className = 'third'; 
    document.getElementById('frame').className 
}  
    document.getElementById('frame').src = frames[i++]; 
    setTimeout('ChangeSrc()', (frames[i++]*1000)); 
} 
window.onload = ChangeSrc; 
</script> 
</head> 

<body> 
<div id="wrap"> 
    <iframe src="" class="" id="frame" scrolling="no" frameborder="0"></iframe> 
</div> 
</body> 
</html> 
+0

这可能与页面加载和JavaScript运行后渲染CSS有关。它可能取决于浏览器。希望不要。 – htmlfarmer 2013-05-29 22:59:17

+0

document.getElementById(“wrap”)。style.width =“1390px”; – htmlfarmer 2013-05-29 23:00:28

您需要断开语句以防止切换到下一个语句。

switch(i) 
{ 
case 0: 
    document.getElementById('frame').className = 'first'; 
    break; 
case 1: 
    document.getElementById('frame').className = 'second'; 
    break; 
case 2: 
    document.getElementById('frame').className = 'third'; 
    break; 
}  

您的switch语句失败,因为它在每个case的末尾缺少break语句。如果没有break,适当的情况下和它下面的任何情况将执行。这就是为什么“只有第三个作品”