跟随滚动条漂浮的JS特效

王朝html/css/js·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

这是一个跟随滚动条漂浮的JS特效,就是说滚动条滚动而元素相对屏幕位置不变

网上有很多类似的效果,本代码比较起来有如下优点:

1. 兼容IE6.0+ & FF1.5+

2. 使用非常简单,属于菜鸟最爱的那种拿来就能用的,见下面说明

3. 元素之间不会起冲突,一页中可以有n个特效,多元素使用无代码冗余

缺点有:

1. 只能在声明为xHTML的文档中使用

2. 元素最好放在body下

3. 滚动时不可避免的会有闪烁(已经比较轻微,但追求完美者可能觉得不爽)

使用说明:

在页面中引用JS包,然后在需要特效的div上设定class为xScrollStick即可,当然不要忘记给每个元素写上你希望它固定的位置

示例1:

<div class="xScrollStick" style="left:0px;top:0px">

Content...

</div>

示例2:

<div class="xScrollStick positionStyleName">

Content...

</div>

演示:

运行代码框

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

<head>

<meta http-equiv="content-type" content="text/html; charset=gb2312" />

<title>xScrollStick Demo</title>

<script type="text/javascript">

//<![CDATA[

//********************/

// x 系列之 xScrollStick

// 作者:Hutia

// 未经同意不得转载或用于商业用途

//********************/

/*

说明:

x系列是Hutia开发的系列JS代码,配合相应的css后可以实现快速的自定义标签

目前xScrollStick支持的浏览器类型为:IE5.5, FF1.5

xScrollStick的标签为

<div class="xScrollStick">

Content...

</div>

支持属性:

支持方法:

*/

//**载入CSS*****

var xScrollStickCssFilePath="sp\/css\/xframe.css";

//document.write("<style>@import url("+xScrollStickCssFilePath+");</style>");

//**检测浏览器种类*****

var BROWSERNAME="";

switch(navigator.appName.toLowerCase()){

case "netscape":

BROWSERNAME="ns";

break;

case "microsoft internet explorer":

default:

BROWSERNAME="ie";

break;

}

//**设置初始化事件******

switch(BROWSERNAME){

case "ns":

window.addEventListener("load",_xScrollStick_init,false);

break;

case "ie":

default:

window.attachEvent("onload",_xScrollStick_init);

}

//**初始化函数******

function _xScrollStick_init(){

var allTheScrollSticks=document.getElementsByTagName("div");

for(var i=0;i<allTheScrollSticks.length;i++){

if(allTheScrollSticks[i].className.match(/^((xScrollStick)|(.+ +xScrollStick)|(xScrollStick +.+)|(.+ +xScrollStick +.+))$/))_xScrollStick_event_doInit(allTheScrollSticks[i]);

}

window_event_scroll();

}

//**事件响应函数区******

function _xScrollStick_event_doInit(element){

//初始化变量

element.offX=element.offsetLeft;

element.offY=element.offsetTop;

//设置方法

element.Stick=_xScrollStick_method_Stick;

//设置事件

switch(BROWSERNAME){

case "ns":

window.addEventListener("scroll",window_event_scroll,false);

break;

case "ie":

default:

window.attachEvent("onscroll",window_event_scroll);

}

//获取设置

//无

document.body.parentNode.onscroll=window_event_scroll;

}

function window_event_scroll(){

var allTheScrollSticks=document.getElementsByTagName("div");

for(var i=0;i<allTheScrollSticks.length;i++){

if(allTheScrollSticks[i].className.match(/^((xScrollStick)|(.+ +xScrollStick)|(xScrollStick +.+)|(.+ +xScrollStick +.+))$/))try{allTheScrollSticks[i].Stick();}catch(e){}

}

}

//**方法函数区******

function _xScrollStick_method_Stick(){

var x=this.offX, y=this.offY, po=this;

this.style.position="absolute";

x+=document.body.parentNode.scrollLeft;

y+=document.body.parentNode.scrollTop;

this.style.left=x+"px";

this.style.top=y+"px";

}

//**通用函数区***

//无

//]]>

</script>

<style>

.xScrollStick{

position:absolute;

padding:15px;

border:1px solid black;

width:120px;

height:24px;

}

.d1 { left:0px;top:0px; }

.d2 { right:0px;top:0px; }

.d3 { left:0px;bottom:0px; }

.d4 { right:0px;bottom:0px; }

</style>

</head>

<body style="text-align:center;">

<div class="xScrollStick d1">

<a href="http://www.163.com">俺是浮动条</a>

</div>

<div class="xScrollStick d2">俺是浮动条2</div>

<div class="xScrollStick d3">俺是浮动条3</div>

<div class="xScrollStick d4">俺是浮动条4</div>

<div style="top:0px;width:400px;height:2000px;">

afosdhfosdhg<br>

afosdhfosdhg<br>afosdhfosdhg<br>

afosdhfosdhg<br>afosdhfosdhg<br>

afosdhfosdhg<br>afosdhfosdhg<br>

afosdhfosdhg<br>afosdhfosdhg<br>

afosdhfosdhg<br>afosdhfosdhg<br>

afosdhfosdhg<br>

</div>

</body>

</html>

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

页面由两个个部分组成:

页面文件:

代码拷贝框

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

<head>

<meta http-equiv="content-type" content="text/html; charset=gb2312" />

<title>xScrollStick Demo</title>

<script type="text/javascript" src="sp/js/xscrollstick.js"></script>

<style>

.xScrollStick{

position:absolute;

padding:15px;

border:1px solid black;

width:120px;

height:24px;

}

.d1 { left:0px;top:0px; }

.d2 { right:0px;top:0px; }

.d3 { left:0px;bottom:0px; }

.d4 { right:0px;bottom:0px; }

</style>

</head>

<body style="text-align:center;">

<div class="xScrollStick d1">

<a href="http://www.163.com">俺是浮动条</a>

</div>

<div class="xScrollStick d2">俺是浮动条2</div>

<div class="xScrollStick d3">俺是浮动条3</div>

<div class="xScrollStick d4">俺是浮动条4</div>

<div style="top:0px;width:400px;height:2000px;">

afosdhfosdhg<br>

afosdhfosdhg<br>afosdhfosdhg<br>

afosdhfosdhg<br>afosdhfosdhg<br>

afosdhfosdhg<br>afosdhfosdhg<br>

afosdhfosdhg<br>afosdhfosdhg<br>

afosdhfosdhg<br>afosdhfosdhg<br>

afosdhfosdhg<br>

</div>

</body>

</html>

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

js:

//<![CDATA[

//********************/

// x 系列之 xScrollStick

// 作者:Hutia

// 未经同意不得转载或用于商业用途

//********************/

/*

说明:

x系列是Hutia开发的系列JS代码,配合相应的css后可以实现快速的自定义标签

目前xScrollStick支持的浏览器类型为:IE5.5, FF1.5

xScrollStick的标签为

<div class="xScrollStick">

Content...

</div>

支持属性:

支持方法:

*/

//**载入CSS*****

var xScrollStickCssFilePath="sp\/css\/xframe.css";

//document.write("<style>@import url("+xScrollStickCssFilePath+");</style>");

//**检测浏览器种类*****

var BROWSERNAME="";

switch(navigator.appName.toLowerCase()){

case "netscape":

BROWSERNAME="ns";

bre

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航