登录论坛 | 注册会员 设为首页 | 收藏本站
当前位置 : 首页>软件学院>程序开发>网页设计>正文
 
纯JS实现网页漂浮广告效果的代码

http://www.dbit.cn 2010/3/22 7:23:39  来源:东北IT网  编辑:叶子
 

floatAd.setCenter = function() {
    this.top = this.getScrollTop()   floatAd.getBrowser().height;
    this.left = (this.getScrollLeft()   floatAd.getBrowser().width - this.control.clientWidth) / 2;
    this.control.style.top = this.top   'px';
    this.control.style.left = this.left   'px';   
};

/* fadeIn */
floatAd.fadeIn = function(callback) {
    var _this = this,  _top = 0;
    this.control.style.display = 'block'; // *要提前显示.不然无法取得clientWidth
    this.setCenter();
    var _timer = window.setInterval(function() {
        _this.control.style.top = _this.getScrollTop()   _this.getBrowser().height - (  _top)   'px';
        if(_top >= _this.control.clientHeight) {
            window.clearInterval(_timer);
            callback && callback();
        }
    }, 2);
};

/* fadeOut */
floatAd.fadeOut = function() {
    var _this = this, _num = 0, _top = _this.control.clientHeight;
    window.clearTimeout(this.timer);
    var _timer = window.setInterval(function() {
        if(_top <= 0) {
            window.clearInterval(_timer);
            _this.control.style.display = 'none';
        } else {
            _this.control.style.top = _this.getScrollTop()   _this.getBrowser().height - (--_top)   'px';
        }
    }, 2);
    this.control.style.top = (parseInt(this.control.style.top, 10)   100)   'px';
};
var newAd = 'start';
document.getElementById('show').onclick = function() {
    if(newAd == 'start') {
        newAd = floatAd.init('ad', { fadeTime: 10 });
    }
}

下面给大家讲下这个程序的原理,附有示例下载哦。

程序原理

整个广告运行具有四步动作.

1. 初始化时隐藏于页面最底部.

2. 自底向上升起.直到整个广告漂浮出来

3. 启动检测.滚动时保持广告始终处于页面中间最底部.

4. 到达自定义间隔时间.广告自动渐隐.

整个实现最重要的就是控制广告距离文档(非窗口)最顶部的距离.(scrollTop + browser.clientHeight).这里提供了获取这几个值的代码.

获取scrollTop, scrollLeft

注意Chrome和Safari即使在标准doc模式下的根文档也是document.body而不是document.documentElement

floatAd.getScrollTop = function(node) {
    
var doc = node ? node.ownerDocument : document;
    
return doc.documentElement.scrollTop || doc.body.scrollTop;
};

floatAd.getScrollLeft 
= function(node) {
    
var doc = node ? node.ownerDocument : document;
    
return doc.documentElement.scrollLeft || doc.body.scrollLeft;
};

本新闻共3页,当前在第2页  1  2  3  

收藏】【打印】【进入论坛
  相关文章:

 
 
 
最新文章

抢先苹果,消息称英特尔芯片采用台积电
三星揭晓业内首款单条 512GB DDR5 内存
vivo 高端新机爆料:120Hz 曲面屏 + 天
vivo Y21 在印度正式上市:Helio P35 芯
微星推出 GeForce RTX 3080 Sea Hawk X
消息称三星 Galaxy Tab S8 系列平板将放
机械革命推出 F6 轻薄本:16 英寸全面屏
英特尔 12 代 Alder Lake CPU 600 系列
雷军:向小米手机 1 首批用户每人赠送价
小米李明谈用户被踢出 MIUI 测试版:大

推荐文章
1
2
3
4
5
6
7
8
9
10
叛逆嫩模性感写真
宫如敏不雅照疯传 看张馨予韩一菲兽兽谁
不惧孔子抢位 阿凡达游戏影音配置推荐
2015第十七届“东北安博会”火爆招商
第十六届东北国际公共安全防范产品博览
2016年第五届中国国际商业信息化博览会
2016年第五届中国国际POS机及相关设备展
互联网电视熟了吗 2013最火电视深解析
桑达获邀出席2015中国(广州)国际POS机
宝获利报名参加“2015年度中国POS机行业
八卦图解 More>>
叛逆嫩模性感写真 宫如敏不雅照疯传 看张馨予韩一菲
周伟童魔鬼身材日本性感写真图  联想V360笔记本模特写真