首页 > 代码库 > 写轮播图遇到的那些基础知识

写轮播图遇到的那些基础知识

1.使用定时器造成的性能问题及解决方法(学习自某博主,不允许外传!)

  用 clearInterval(timerid);来清除,往往不能马上停止,用什么方法比较好解决?

  优化方案如下:
 
  1. var timeout = false; //启动及关闭按钮  
  2. function time()  
  3. {  
  4.   if(timeout) return;  
  5.   Method();  
  6.   setTimeout(time,100); //time是指本身,延时递归调用自己,100为间隔调用时间,单位毫秒  
  7. }
  总结
  一般不用setInterval,而用setTimeout的延时递归来代替interval。
  setInterval会产生回调堆积,特别是时间很短的时候。
 
2.使用CSS与HTML问题及注意事项
  如何用原生js获取style属性值?
  为什么不使用 .style.xxx?
  原因:  
            用document.getElementById(‘element‘).style.xxx可以获取元素的样式信息,可是它获
      取的只是DOM元素style属性里的样式规则,对于通过class属性引用的外部样式表,就拿不到
      我们要的信息了。
 
  解决:
             DOM标准里有个全局方法getComputedStyle,可以获取到当前对象样式规则信息,如:
      getComputedStyle(obj,null).paddingLeft,就能获取到对象的左内边距。但是事情还没完,
      万恶的IE不支持此方法,它有自己的一个实现方式,那就是currentStyle,不同于全局方法
      getComputedStyle,它是作为DOM元素属性存在的,如:obj.currentStyle.paddingLeft

写轮播图遇到的那些基础知识