【问题标题】:CSS style not synchronizing with JavascriptCSS 样式与 Javascript 不同步
【发布时间】:2011-02-17 21:09:39
【问题描述】:

为了简单起见,我不想使用 jquery。我有三个网站,其中一页循环浏览。我希望每个网页都按不同的标量值进行缩放。我尝试在每个页面上应用一个类,但是使用 switch 语句,它应该在 google 上缩放 2 倍,在 yahoo 上缩放 4x,在 ebay 上缩放 0.5x。但是,当我运行代码时,它会以 2 倍缩放进入谷歌。然后它以 0.5 倍的速度进入雅虎,然后以 0.5 倍的变焦进入 ebay。我不在乎效率,它只会滚动三个页面,因此可以硬编码。谢谢

<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
  break;
case 1:
  document.getElementById('frame').className = 'second';
  document.getElementById('frame').className
  break;
case 2:
  document.getElementById('frame').className = 'third';
  document.getElementById('frame').className
  break;
}      
  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>

【问题讨论】:

  • 您是否要为外部 iframe 创建缩略图?由于同源政策,我怀疑这是否可能实现。

标签: javascript html css iframe


【解决方案1】:

您的变量不应命名为框架。当您命名 var 框架时,您正在搞乱 window.frames。将其命名为其他名称。

在这里使用 for 循环是错误的,因为它不会给您任何时间来加载页面。您可能想使用setTimeout 来调用每次迭代。

【讨论】:

  • 你能告诉我如何使用 setTimeout 来调用每个迭代吗?谢谢
【解决方案2】:

我不确定这是否是导致您的问题的原因,但您似乎错过了 Google 的结束语:

var frames = Array('http://www.google.com, 5,
                   'http://www.yahoo.com', 5,
                   'http://www.ebay.com', 5);

应该是:

var frames = Array('http://www.google.com', 5,
                   'http://www.yahoo.com', 5,
                   'http://www.ebay.com', 5);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 2023-02-13
    • 2014-02-06
    • 2011-08-23
    相关资源
    最近更新 更多