日期:2014-05-16  浏览次数:20299 次

var speed定义的值在IE和火狐下速度不一样
下面这段JS里,var speed = 30;后IE里还可以,火狐下飞快,怎么回事呢。要什么改才能两个浏览器差不多速度。
谢谢了。


<script language="javascript" type="text/javascript">
var browse = window.navigator.appName.toLowerCase();
var MyMar;
var speed = 30; //速度,越大越慢

var spec = 1; //每次滚动的间距, 越大滚动越快
var minOpa = 100; //滤镜最小值
var maxOpa = 100; //滤镜最大值
var spa = 2; //缩略图区域补充数值
var w = 0;
spec = (browse.indexOf("microsoft") > -1) ? spec : ((browse.indexOf("opera") > -1) ? spec*10 : spec*20);
function $(e) {return document.getElementById(e);}
function goleft() {$('photos').scrollLeft -= spec;}
function goright() {$('photos').scrollLeft += spec;}
function setOpacity(e, n) {
  if (browse.indexOf("microsoft") > -1) e.style.filter = 'alpha(opacity=' + n + ')';
  else e.style.opacity = n/100;
}
$('goleft').style.cursor = 'pointer';
$('goright').style.cursor = 'pointer';
$('mainphoto').onmouseover = function() {setOpacity(this, maxOpa);}
$('mainphoto').onmouseout = function() {setOpacity(this, minOpa);}
$('mainphoto').onclick = function() {location = this.getAttribute('name');}
$('goleft').onmouseover = function() {this.src = 'images/goleft2.jpg'; MyMar=setInterval(goleft, speed);}
$('goleft').onmouseout = function() {this.src = 'images/goleft.jpg'; clearInterval(MyMar);}
$('goright').onmouseover = function() {this.src = 'images/goright2.jpg'; MyMar=setInterval(goright,speed);}
$('goright').onmouseout = function() {this.src = 'images/goright.jpg'; clearInterval(MyMar);}
window.onload = function() {
  setOpacity($('mainphoto'), minOpa);
  var rHtml = '';
  var p = $('showArea').getElementsByTagName('img');
  for (var i=0; i<p.length; i++) {
  w += parseInt(p[i].getAttribute('width')) + spa;
  setOpacity(p[i], minOpa);
  p[i].onclick = function() {location = this.getAttribute('name');}
  p[i].onmouseover = function() {
  setOpacity(this, maxOpa);
  $('mainphoto').src = this.getAttribute('rel');
  $('mainphoto').setAttribute('name', this.getAttribute('name'));
  setOpacity($('mainphoto'), maxOpa);
  }
  p[i].onmouseout = function() {
  setOpacity(this, minOpa);
  setOpacity($('mainphoto'), minOpa);
  }
  rHtml += '<img src="' + p[i].getAttribute('rel') + '" width="0" height="0" alt="" />';
  }
  $('showArea').style.width = parseInt(w) + 'px';
  var rLoad = document.createElement("div");
  $('photos').appendChild(rLoad);
  rLoad.style.width = "1px";
  rLoad.style.height = "1px";
  rLoad.style.overflow = "hidden";
  rLoad.innerHTML = rHtml;
}
</script>

------解决方案--------------------
楼主有想过是你下面这个函数的问题吗:
JScript code

function goleft() {$('photos').scrollLeft -= spec;}