竖屏图片滚动html5,JavaScript实现图片DIV竖向滑动的方法

/p>

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

图片滑动展示效果

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);

}

};

#idGlideView {

height:314px;

width:325px;

margin:0 auto;

}

#idGlideView div {

width:325px;

height:314px;

}

鼠标移到这里试试看!
鼠标移到这里试试看!
https://www.jb51.net/

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值