《精通javascript》几个简单的函数(二)

简介:
复制代码
/* *
 * 隐藏元素
 * @param {String} elem
 
*/
function  hide(elem){
    
var  curDisplay  =  getStyle(elem,  ' display ' );
    
    
if (curDisplay  !=   ' none ' ){
        elem.oldDisplay 
=  curDisplay;
    }
    elem.style.display 
=   ' none ' ;
}

/* *
 * 显示元素
 * @param {String} elem
 
*/
function  show(elem){
    elem.style.display 
=  elem.oldDisply  ||   ' block ' ;
}

/* *
 * 设置透明度
 * @param {Object} elem
 * @param {Object} level (0-100)
 
*/
function  setOpacity(elem, level){
    
if (elem.filters){  // 如果是IE
        elem.style.filter  =   ' alpha(opacity= '   +  level  +   ' ) ' ;
        
// 必须设置zoom,要不然透明度在IE下不生效  From:http://blog.csdn.net/dxx1988/article/details/6581430
        elem.style.zoom  =   1 ;
    } 
else  {  // 否则是W3C
        elem.style.opacity  =  level  /   100 ;
    }
}

/* *
 * 滑动
 * @param {Object} elem
 
*/
function  slideDown(elem){
    
// elem.style.height = '0px';
    
    show(elem);
    
var  h  =  fullHeight(elem);
    
    
for ( var  i = 0 ; i <= 100 ; i += 5 ){
        (
function (){
            
var  pos  =  i;
            
            setTimeout(
function (){
                elem.style.height 
=  (pos / 100) * h + 'px';
            }, (pos  +   1 *   5 );
        })();
    }
}
// slideDown($('pText'));
//
alert(fullHeight($('pText')));

/* *
 * 透明度渐显 From: http://mrthink.net/js-fadein-fadeout-fadeto/
 * @param {Object} elem
 * @param {Number} speed 淡入速度,正整数(可选)
 * @param {Number} opacity 淡入到指定的透明度,0~100(可选)
 
*/
function  fadeInThink(elem, speed, opacity){
    speed 
=  speed  ||   20 ;
    opacity 
=  opacity  ||   100 ;
    
    show(elem);
    setOpacity(elem, 
0 );
    
// 初始化透明度变化值为0
     var  val  =   0 ;
    
// 循环将透明值以5递增,即淡入效果
    ( function (){
        setOpacity(elem, val);
        val 
+=   5 ;
        
if  (val  <=  opacity) {
            setTimeout(arguments.callee, speed)
        }
    })();

}


/* *
 * 透明度渐显
 * @param {Object} elem
 
*/
function  fadeIn(elem){
    
// setOpacity(emel, 0);
    
    show(elem);
    
for ( var  i = 0 ; i <= 100 ; i += 10 ){
        (
function (){
            
var  pos  =  i;
            setTimeout(
function (){
                setOpacity(elem, pos);
            }, (pos 
+   1 *   10 );
        })();
    }
}

/* *
 * 透明度渐隐 From: http://mrthink.net/js-fadein-fadeout-fadeto/
 * @param {Object} elem
 
*/
function  fadeOut(elem){
    
var  val  =   100 ;
    
    (
function (){
        setOpacity(elem, val);
        val 
-=   5 ;
        
if (val  >=   0 ){
            setTimeout(arguments.callee, 
50 );
        } 
else   if (val  <   0 ){
            hide(elem);
        }
    })();
}

// fadeInThink($('pText'));

/* *
* 光标的水平位置
* @param {Object} e
*/
function  getX(e){
    e 
=  e  ||  window.event;
    
    
return  e.pageX  ||  e.clientX  +  document.body.scrollLeft;
}

/* *
* 光标的垂直位置
* @param {Object} e
*/
function  getY(e){
    e 
=  e  ||  window.event;
    
    
return  e.pageY  ||  e.clientY  +  document.body.scrollTop;
}

/* *
 * 获得鼠标相对于当前元素的X位置
 * @param {Object} e
 
*/
function  getElementX(e){
    
return  (e  &&  e.layerX)  ||  window.event.offsetX;
}

/* *
 * 获得鼠标相对于当前元素的Y位置
 * @param {Object} e
 
*/
function  getElementY(e){
    
return  (e  &&  e.layerY)  ||  window.event.offsetY;
}

/* *
 * 当前页面的高度
 
*/
function  pageHeight(){
    
return  document.body.scrollHeight;
}

/* *
 * 当前页面的宽度
 
*/
function  pageWidth(){
    
return  document.body.scrollWidth;
}

// alert(pageHeight());

/* *
 * 视口的高度
 
*/
function  windowHeight(){
    
var  de  =  document.documentElement;
    
    
return  self.innerHeight  ||  (de  &&  de.clientHeight)  ||  document.body.clientHeight;
}

/* *
 * 视口的高度
 
*/
function  windowWidth(){
    
var  de  =  document.documentElement;
    
    
return  self.innerWidth  ||  (de  &&  de.clientWidth)  ||  document.body.clientWidth;
}

/* *
 * 浏览器水平滚动位置
 
*/
function  scrollX(){
    
var  de  =  document.documentElement;
    
    
return  self.pageOffsetset  ||   (de  &&  de.scrollLeft)  ||  document.body.scrollLeft;
}

/* *
* 浏览器垂直滚动位置
 
*/
function  scrollY(){
    
var  de  =  document.documentElement;
    
    
return  self.pageYOffset  ||  (de  &&  de.scrollTop)  ||  document.body.scrollTop;
}
复制代码




本文转自豪情博客园博客,原文链接:http://www.cnblogs.com/jikey/archive/2011/07/25/2116696.html,如需转载请自行联系原作者
目录
相关文章
|
7月前
|
机器学习/深度学习 JavaScript 前端开发
JS进阶教程:递归函数原理与篇例解析
通过对这些代码示例的学习,我们已经了解了递归的原理以及递归在JS中的应用方法。递归虽然有着理论升华,但弄清它的核心思想并不难。举个随手可见的例子,火影鸣人做的影分身,你看到的都是同一个鸣人,但他们的行为却能在全局产生影响,这不就是递归吗?雾里看花,透过其间你或许已经深入了递归的魅力之中。
328 19
|
9月前
|
JavaScript
JS实现多条件搜索函数
JS封装的多条件搜索
|
11月前
|
JavaScript 前端开发
JavaWeb JavaScript ③ JS的流程控制和函数
通过本文的详细介绍,您可以深入理解JavaScript的流程控制和函数的使用,进而编写出高效、可维护的代码。
261 32
|
10月前
|
JavaScript 前端开发 Java
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
柯里化是一种强大的函数式编程技术,它通过将函数分解为单参数形式,实现了灵活性与可复用性的统一。无论是参数复用、延迟执行,还是函数组合,柯里化都为现代编程提供了极大的便利。 从 Redux 的选择器优化到复杂的数据流处理,再到深度嵌套的函数优化,柯里化在实际开发中展现出了非凡的价值。如果你希望编写更简洁、更优雅的代码,柯里化无疑是一个值得深入学习和实践的工具。从简单的实现到复杂的应用,希望这篇博客能为你揭开柯里化的奥秘,助力你的开发之旅! 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一
|
JavaScript 前端开发 安全
JavaScript函数详解
JavaScript函数的详细解析,包括函数的定义和调用方式(如一般格式、匿名函数、构造函数、自调用函数、箭头函数和严格模式)、函数参数(arguments对象、可变参数、默认参数值)、闭包的概念和应用实例。
JavaScript函数详解
|
前端开发 JavaScript 开发者
除了 Generator 函数,还有哪些 JavaScript 异步编程解决方案?
【10月更文挑战第30天】开发者可以根据具体的项目情况选择合适的方式来处理异步操作,以实现高效、可读和易于维护的代码。
|
JavaScript 前端开发
JavaScript 函数语法
JavaScript 函数是使用 `function` 关键词定义的代码块,可在调用时执行特定任务。函数可以无参或带参,参数用于传递值并在函数内部使用。函数调用可在事件触发时进行,如用户点击按钮。JavaScript 对大小写敏感,函数名和关键词必须严格匹配。示例中展示了如何通过不同参数调用函数以生成不同的输出。
|
存储 JavaScript 前端开发
JS函数提升 变量提升
【10月更文挑战第6天】函数提升和变量提升是 JavaScript 语言的重要特性,但它们也可能带来一些困惑和潜在的问题。通过深入理解和掌握它们的原理和表现,开发者可以更好地编写和维护 JavaScript 代码,避免因不了解这些机制而导致的错误和不一致。同时,不断提高对执行上下文等相关概念的认识,将有助于提升对 JavaScript 语言的整体理解和运用能力。
|
JavaScript 前端开发 Java
【javaScript数组,函数】的基础知识点
【javaScript数组,函数】的基础知识点
133 5
|
JavaScript 前端开发
js教程——函数
js教程——函数
322 4

热门文章

最新文章