让图片DIV竖向滑动的JavaScript特效代码

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

<html xmlns="http://www.w3.org/1999/xhtml"><head>

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

<title>图片滑动展示效果</title>

<script type="text/javascript">

var $$ = function (id) {

return "string" == typeof id ? document.getElementById(id) : id;

};

function Event(e){

var oEvent = document.all ? window.event : e;

if (document.all) {

if(oEvent.type == "mouseout") {

oEvent.relatedTarget = oEvent.toElement;

}else if(oEvent.type == "mouseover") {

oEvent.relatedTarget = oEvent.fromElement;

}

}

return oEvent;

}

function addEventHandler(oTarget, sEventType, fnHandler) {

if (oTarget.addEventListener) {

oTarget.addEventListener(sEventType, fnHandler, false);

} else if (oTarget.attachEvent) {

oTarget.attachEvent("on" + sEventType, fnHandler);

} else {

oTarget["on" + sEventType] = fnHandler;

}

};

var Class = {

create: function() {

return function() {

this.initialize.apply(this, arguments);

}

}

}

Object.extend = function(destination, source) {

for (var property in source) {

destination[property] = source[property];

}

return destination;

}

var GlideView = Class.create();

GlideView.prototype = {

//容器对象 容器宽度 展示标签 展示宽度

initialize: function(obj, iHeight, sTag, iMaxHeight, options) {

var oContainer = $$(obj), oThis=this, len = 0;

this.SetOptions(options);

this.Step = Math.abs(this.options.Step);

this.Time = Math.abs(this.options.Time);

this._list = oContainer.getElementsByTagName(sTag);

len = this._list.length;

this._count = len;

this._height = parseInt(iHeight / len);

this._height_max = parseInt(iMaxHeight);

this._height_min = parseInt((iHeight - this._height_max) / (len - 1));

this._timer = null;

this.Each(function(oList, oText, i){

oList._target = this._height * i;//自定义一个属性放目标left

oList.style.top = oList._target + "px";

oList.style.position = "absolute";

addEventHandler(oList, "mouseover", function(){ oThis.Set.call(oThis, i); });

})

//容器样式设置

oContainer.style.height = iHeight + "px";

oContainer.style.overflow = "hidden";

oContainer.style.position = "relative";

//移出容器时返回默认状态

addEventHandler(oContainer, "mouseout", function(e){

//变通防止执行oList的mouseout

var o = Event(e).relatedTarget;

if (oContainer.contains ? !oContainer.contains(o) : oContainer != o && !(oContainer.compareDocumentPosition(o) & 16)) oThis.Set.call(oThis, -1);

})

},

//设置默认属性

SetOptions: function(options) {

this.options = {//默认值

Step:20,//滑动变化率

Time:3,//滑动延时

TextTag:"",//说明容器tag

TextHeight:
0//说明容器高度

};

Object.extend(this.options, options || {});

},

//相关设置

Set: function(index) {

if (index < 0) {

//鼠标移出容器返回默认状态

this.Each(function(oList, oText, i){ oList._target = this._height * i; if(oText){ oText._target = this._height_text; } })

} else {

//鼠标移到某个滑动对象上

this.Each(function(oList, oText, i){

oList._target = (i <= index) ? this._height_min * i : this._height_min * (i - 1) + this._height_max;

if(oText){ oText._target = (i == index) ? 0 : this._height_text; }

})

}

this.Move();

},

//移动

Move: function() {

clearTimeout(this._timer);

var bFinish = true;//是否全部到达目标地址

this.Each(function(oList, oText, i){

var iNow = parseInt(oList.style.top), iStep = this.GetStep(oList._target, iNow);

if (iStep != 0) { bFinish = false; oList.style.top = (iNow + iStep) + "px"; }

})

//未到达目标继续移动

if (!bFinish) { var oThis = this; this._timer = setTimeout(function(){ oThis.Move(); }, this.Time); }

},

//获取步长

GetStep: function(iTarget, iNow) {

var iStep = (iTarget - iNow) / this.Step;

if (iStep == 0) return 0;

if (Math.abs(iStep) < 1) return (iStep > 0 ? 1 : -1);

return iStep;

},

Each:function(fun) {

for (var i = 0; i < this._count; i++)

fun.call(this, this._list[i], (this.Showtext ? this._text[i] : null), i);

}

};

</script>

<style type="text/css">

#idGlideView {

height:314px;

width:325px;

margin:0 auto;

}

#idGlideView div {

width:325px;

height:314px;

}

</style>

</head>

<body>

<div id="idGlideView">

<div style="background-color:#006699;"> 鼠标移到这里试试看!</div>

<div style="background-color:#FF9933;"> 鼠标移到这里试试看!</div>

</div>

<div><A href="http://www.999jiujiu.com/">http://www.999jiujiu.com/</A></div>

<SCRIPT>

var gv = new GlideView("idGlideView", 314, "div", 280,"");

</SCRIPT>

</body>

</html>

时间: 2024-10-08 13:48:58

让图片DIV竖向滑动的JavaScript特效代码的相关文章

JavaScript特效之图片特效放大,缩小,旋转

效果图如下: 效果代码如下: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author" content=""> <m

原生js实现tab选项卡里内嵌图片滚动特效代码

<!DOCTYPE HTML><html lang="en-US"><head><meta charset="UTF-8"><title>原生js实现tab选项卡里内嵌图片滚动特效代码</title><meta name="keywords" content="原生js实现tab选项卡里内嵌图片滚动特效代码" /><meta name=&

竖向二级导航菜单特效的实现

竖向二级导航菜单特效的实现:在网页设计中,导航菜单的应用非常频繁,横向二级导航菜单的应用可能会多一些,垂直导航菜单可能稍稍少一些,当然这是相对而言的,竖向二级导航菜单的使用也是非常的频繁的,下面就简单介绍一下如何实现此功能,咱们这里只是介绍如何实现,关于美化方面不是重点,先看一段代码实例: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="a

JavaScript特效(调试笔记)

JavaScript特效 一.在网页上显示当前的时间日期,例如:“2016年3月26日 星期六”. js源代码: 1 function getTime() { 2 var today = new Date(); //返回当日的日期和时间. 3 var year = today.getFullYear(); //获得当前的年份 4 var month = today.getMonth() + 1; //获得当前的月份 5 var day = today.getDate(); //获得当前的日期 6

JavaScript特效源码(4、鼠标特效)

1.鼠标感应--渐现特效 鼠标感应渐显图片[平时很模糊的图片鼠标一放上就显示清楚] [修改图片名称即可][共2步] ====1.将以下代码加入HTML的<head></head>之间: <script language="JavaScript1.2"> function makevisible(cur,which){ if (which==0) cur.filters.alpha.opacity=100 else cur.filters.alpha.

javascript特效源码(2、图像特效)

1.不停闪烁的图像 不停闪烁的图片[修改显示的图片及链接地址后根据说明进行共1步] 1.以下代码放在一个新建页面的HTML的<body></body> 区即可:[页面上必须什么都没有] <HTML> <HEAD> <TITLE>Blink image</TITLE> </HEAD> <BODY ONLOAD="soccerOnload()" topmargin="0">

JavaScript特效源码(3、菜单特效)

1.左键点击显示菜单 左键弹出式菜单[推荐][修改显示的文字及链接即可][共2步] ====1.将以下代码加入HEML的<head></head>之间: <style type="text/css"> body{font: 9pt "宋体"; margintop: 0px ; color: #ffffff; background: #000000} a.{ font: 9pt "宋体"; cursor: han

展示图片和平移滑动

实现展示图片和平移滑动 需求 在展示框内展示图片,并通过左右按钮平滑的向左向右滑动展示 思路 创建一个外层容器 内层定义使用 transition 进行滑动 点击左右按钮时计算左右滑动距离 使用translateX 进行偏移 完整代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"

【JavaScript】在同一个网页中实现多个JavaScript特效

在网页中,如果出现两次<script type="text/javascript"></script>标签,所有的JavaScipt脚本都不会再生效,只能出现一次<script type="text/javascript"></script>标签,但是,同一个网页中常常需要多个JavaScript特效. 一.基本目标 在网页中挂载两个JavaScript时钟,其中一个是每1秒走一次的正常时间,另外一个是每3秒才走一次的