`
leeleo
  • 浏览: 323378 次
  • 性别: Icon_minigender_1
  • 来自: 贵阳
社区版块
存档分类
最新评论

js图片切换

阅读更多
<!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>
<style type="text/css">
#focus_m{position:relative; width:420px; height:384px; background:#133775}
.f_img_roll{width:350px; height:300px; position:relative;}
.f_img_roll img{position:absolute; left:0; top:0; width:350px; height:300px;}
.f_img_tree{position:absolute; width:75px; height:300px; right:3px; top:0;}
.f_img_tree div{position:absolute; z-index:300; top:3px; right:0; width:75px; height:47px; background:url(http://www.kuanghong.com/han/images/mask.gif) no-repeat;}
.f_img_tree ul{margin:0; padding:0; list-style:none; position:absolute; right:0;}
.f_img_tree li{width:60px; height:45px; border:1px solid #0066cc; margin-top:3px;}
.f_img_tree img{width:54px; height:39px; border:3px solid #000066; vertical-align:top;}
.f_con{color:#fff; height:70px;}
.f_con .title{font-size:14px; height:30px; line-height:30px; margin-top:5px; font-weight:bold; text-align:center;}
.f_con .title a:link, .f_con .title a:visited{color:#fff; text-decoration:none}
.f_con .title a:hover{text-decoration:underline}
.f_con .con{font-size:12px; padding:0 10px; height:40px; line-height:150%;}
</style>
<script type="text/javascript">
function $A(iterable) {
var results = [];
for (var i = 0; i < iterable.length; i++)results.push(iterable);
return results;
}
Function.prototype.bind = function() {
var __method = this, args = $A(arguments), object = args.shift();
return function() {
return __method.apply(object, args.concat($A(arguments)));
}
}
var imgs = [
{max:'http://www.kuanghong.com/han/images/img_1.jpg', min:'http://www.kuanghong.com/han/images/img_1s.jpg', [url='#']url:'#'[/url], title:'标题01标题01标题01标题01标题01', con:'内容01内容01内容01内容01内容01内容01内容01内容01内容01内容01内容01内容01内容01内容01内容01内容01内容01内容01'},
{max:'http://www.kuanghong.com/han/images/img_2.jpg', min:'http://www.kuanghong.com/han/images/img_2s.jpg', [url='#']url:'#'[/url], title:'标题02标题02标题02标题02标题02', con:'内容02内容02内容02内容02内容02内容02内容02内容02内容02内容02内容02内容02内容02内容02内容02内容02内容02内容02'},
{max:'http://www.kuanghong.com/han/images/img_3.jpg', min:'http://www.kuanghong.com/han/images/img_3s.jpg', [url='#']url:'#'[/url], title:'标题03标题03标题03标题03标题03', con:'内容03内容03内容03内容03内容03内容03内容03内容03内容03内容03内容03内容03内容03内容03内容03内容03内容03内容03'},
{max:'http://www.kuanghong.com/han/images/img_4.jpg', min:'http://www.kuanghong.com/han/images/img_4s.jpg', [url='#']url:'#'[/url], title:'标题04标题04标题04标题04标题04', con:'内容04内容04内容04内容04内容04内容04内容04内容04内容04内容04内容04内容04内容04内容04内容04内容04内容04内容04'},
{max:'http://www.kuanghong.com/han/images/img_5.jpg', min:'http://www.kuanghong.com/han/images/img_5s.jpg', [url='#']url:'#'[/url], title:'标题05标题05标题05标题05标题05', con:'内容05内容05内容05内容05内容05内容05内容05内容05内容05内容05内容05内容05内容05内容05内容05内容05内容05内容05'},
{max:'http://www.kuanghong.com/han/images/img_6.jpg', min:'http://www.kuanghong.com/han/images/img_6s.jpg', [url='#']url:'#'[/url], title:'标题06标题06标题06标题06标题06', con:'内容06内容06内容06内容06内容06内容06内容06内容06内容06内容06内容06内容06内容06内容06内容06内容06内容06内容06'}
];
function Focus(){ this.initialize.apply(this, arguments) };
Focus.prototype = {
initialize: function(imgObj, focus, tim, speed){
this.imgs= imgObj;
this.tim= tim*1000||2000;
this.speed= speed||0.3;
this.img_m= null;// 大图
this.img_m2= null;// 大图2
this.lis= [];// 小图列表
this.mask= null;// 蒙板
this.title= null; // 标题
this.con= null;// 内容
this.cur= 0;// 当前位置
this.t= null; // 整体计时
this.tm= null;// mask位置
this.ti= null;// img 切换
this.stoped= true;// 停止状态
this.tem= 0;// 临时数据
this.loaded= {imgs:[], num:0};// 加载进度
this.getElement(document.getElementById(focus));
this.preload();
},
preload: function(){
for(var i=0; i<this.imgs.length; i++){
this.loaded.imgs= new Image();
this.loaded.imgs.onload= this.load_num.bind(this);
this.loaded.imgs.src= this.imgs.max;
}
},
load_num: function(){
this.loaded.num++;
if(this.loaded.num == this.imgs.length)
this.start();
},
getElement: function(focus){ // 获得蒙板,小图列表,标题/内容容器等。。。
var ds = focus.getElementsByTagName('div');
for(var i=0; i<ds.length; i++)
switch(ds.className){
    case 'f_img_roll': 
    this.img_m    = document.createElement('img');
    this.img_m2    = document.createElement('img');
    this.img_m.src    = this.imgs[0].max;
    this.img_m.style.zIndex    = 101;
    this.img_m2.style.zIndex= 100;
    ds.onmouseover    = this.stop.bind(this);
    ds.onmouseout    = this.start.bind(this);
    ds.appendChild(this.img_m);
    ds.appendChild(this.img_m2);
    
    case 'f_img_tree':
    this.mask    = document.createElement('div');
    this.mask.onmouseover    = this.stop.bind(this);
    this.mask.onmouseout    = this.start.bind(this);
    var ul        = document.createElement('ul');
    var oThis    = this;
    for(var n=0; n<this.imgs.length; n++){
    this.lis[n]    = document.createElement('li');
    this.lis[n].n    = n;
    this.lis[n].innerHTML= '<img src="'+this.imgs[n].min+'" />';
    this.lis[n].onmouseover= function(){ this.style.border = "1px solid #cc0000"; }
    this.lis[n].onmouseout= function(){ this.style.border = "1px solid #0066cc"; }
    this.lis[n].onclick    = function(){ if(oThis.lis[oThis.cur]!= this) oThis.nextFrame.call(oThis, this.n); }
    ul.appendChild(this.lis[n]);
    };
    ds.appendChild (this.mask);
    ds.appendChild (ul);
    break;
    case 'title':
    this.title    = ds; 
    this.title.innerHTML    = this.imgs[0].title;
    this.title.parentNode.onmouseover= this.stop.bind(this);
    this.title.parentNode.onmouseout= this.start.bind(this);
    break;
    case 'con':
    this.con    = ds;
    this.con.innerHTML    = this.imgs[0].con;
    break;
}
},
nextFrame: function(n){
if(this.t)clearTimeout(this.t);
if(this.tm)clearInterval(this.tm);
if(this.ti)clearInterval(this.ti);
if(n)this.cur = n-1;
var top = 0, posTo = 0;
if(n!=0 && this.imgs[this.cur+1]){
posTo = this.lis[this.cur+1].offsetTop;
this.cur = this.cur+1;
}else{
posTo = this.lis[0].offsetTop;
this.cur = 0;
}
this.tem = this.mask.offsetTop;
this.tem > posTo? top = 1 : top = 0;
this.tm = setInterval(this.moveTo.bind(this, top, posTo), 25);
},
moveTo: function(top, posTo){
if(!top){
if((this.tem+2) >= posTo+1){
    clearInterval(this.tm);
    this.mask.style.top = posTo+'px';
    this.img_swap();
    return;
}
this.tem += (posTo - this.tem) * this.speed
}else{
if((this.tem-2) <= posTo-1){
    clearInterval(this.tm);
    this.mask.style.top = posTo+'px';
    this.img_swap();
    return;
}
this.tem -= (this.tem-posTo)*this.speed;
}
this.mask.style.top = this.tem+'px';
},
img_swap: function(){
var t, b;
if(this.img_m.style.zIndex > this.img_m2.style.zIndex){
t = this.img_m;
b = this.img_m2;
}else{
t = this.img_m2;
b = this.img_m;
}
this.title.innerHTML= '<a href="'+this.imgs[this.cur].url+'">'+this.imgs[this.cur].title+'</a>';
this.con.innerHTML= this.imgs[this.cur].con;
b.src    = this.imgs[this.cur].max;
/MSIE/.test(navigator.userAgent) ? 
this.tem = t.style.filter ? t.style.filter.replace(/^.+=(\d+).+$/,'$1') : 100
: this.tem = t.style.opacity ? t.style.opacity*100 : 100;
if(this.ti)clearInterval(this.ti);
this.ti= setInterval(this.img_hid.bind(this, t, b), 25);
},
img_hid: function(t,b){
this.tem -= 7;
if (/MSIE/.test(navigator.userAgent))
t.style.filter= 'alpha(opacity='+this.tem+')';
else
t.style.opacity = this.tem/100;
if(this.tem <=0){
clearInterval(this.ti);
var tz= t.style.zIndex;
var bz= b.style.zIndex;
t.style.zIndex= bz
b.style.zIndex= tz;
if (/MSIE/.test(navigator.userAgent))
    t.style.filter= 'alpha(opacity=100)';
else
    t.style.opacity= 1;
if(this.stoped) return;
this.start(); // 继续循环
}
},
start: function(){
if(this.t) clearTimeout(this.t);
this.t= setTimeout(this.nextFrame.bind(this, null), this.tim);
this.stoped = false;
},
stop: function(){
clearTimeout(this.t);
this.stoped = true;
}
}
window.onload = function(){
var focus = new Focus(imgs,'focus_m');
//focus.start();
}
</script>
</head>
<body>
<div id="focus_m">
<div class="f_img_roll"></div><div class="f_img_tree"></div>
<div class="f_con">
<div class="title"></div>
<div class="con"></div>
</div>
</div>
</body>
</html>

 

分享到:
评论

相关推荐

    js 图片切换 js 图片切换js 图片切换

    根据提供的信息,我们可以总结出以下关于“JS图片切换”的知识点: ### 一、JS图片切换的概念 JavaScript(简称JS)是一种轻量级的编程语言,它被广泛应用于Web开发中,用于实现网页上的动态效果。JS图片切换是指...

    JavaScript图片切换效果.rar

    JavaScript图片切换效果是一种常见的网页动态展示技术,常用于制作轮播图、相册或产品展示等。这种效果可以通过JavaScript库,如jQuery,或者原生JavaScript实现。本资源"JavaScript图片切换效果.rar"提供了一个实例...

    javascript图片切换特效

    JavaScript图片切换特效是一种常见的网页动态效果,用于展示一组图片并以特定的方式进行切换,提高用户体验,增加网站的吸引力。在网页设计中,这种特效通常应用于相册、广告轮播或产品展示等场景。本文将深入探讨...

    JavaScript图片切换展示效果.rar

    这个“JavaScript图片切换展示效果.rar”压缩包文件包含了一个使用纯JavaScript实现的图片自动切换功能,旨在帮助开发者了解如何在不依赖外部库如jQuery或Bootstrap的情况下创建这种效果。 首先,我们需要理解...

    js图片切换(网上找来的,ie和火狐兼容的)

    JavaScript图片切换的核心在于通过JavaScript函数来控制DOM元素(通常是`&lt;img&gt;`标签)的显示和隐藏。在提供的SlideTrans文件中,可能包含了实现这一功能的JavaScript代码、HTML结构和可能的CSS样式。以下是一些关于...

    FLASH图片切换、javascript图片切换

    "FLASH图片切换"和"javascript图片切换"是两种常用的技术手段,各有其特点和适用场景。 首先,我们来谈谈“FLASH图片切换”。Flash是一种由Adobe公司开发的多媒体创作平台,它曾广泛用于创建动画、交互式内容和网页...

    启明星JS图片切换系统源码.rar

    启明星JS图片切换系统是一款基于JavaScript的动态焦点图展示解决方案,专为ASP.NET环境设计。该系统的核心功能是实现网页上图片的自动轮播和手动切换,为网站增添视觉吸引力,提升用户体验。以下是对该系统及其相关...

    js 图片切换 上一张下一张效果

    在JavaScript编程中,图片切换效果是一种常见的网页交互功能,它为用户提供了一种动态浏览多张图片的方式。在本文中,我们将深入探讨如何使用JavaScript实现图片切换的“上一张”和“下一张”功能。 首先,我们需要...

    简单的js图片切换,简单的js图片切换

    简单的js图片切换简单的js图片切换简单的js图片切换简单的js图片切换简单的js图片切换简单的js图片切换简单的js图片切换简单的js图片切换简单的js图片切换简单的js图片切换简单的js图片切换简单的js图片切换

    js图片切换,点击切换

    "js图片切换,点击切换"这一主题涉及到JavaScript(简称JS)技术在实现动态图片展示中的应用。JavaScript是一种广泛使用的客户端脚本语言,它允许我们通过用户的交互(如点击事件)来改变页面内容,提供更丰富的用户...

    js图片 切换 轮换效果 swf版

    "js图片切换轮换效果swf版"是一个专为网页设计打造的JavaScript组件,它能够实现多张图片在页面上自动循环播放的效果,为浏览者带来视觉上的动态体验。这种效果在网站的首页、产品展示或滑块部分尤为常见。 ...

    JavaScript图片切换滑动效果

    JavaScript图片切换滑动效果是一种常见的网页动态展示技术,它通过编程方式实现图片的平滑过渡,为用户带来更丰富的视觉体验。在网页设计中,这种效果通常用于相册、产品展示或者广告轮播等场景。以下将详细讲解实现...

    90个js图片切换代码

    在"90个js图片切换代码"这个资源包中,很可能包含了多种不同的图片轮播或幻灯片展示的实现方式,这些都是网页设计中常用的元素,能够提升用户体验,吸引用户注意力。 1. **基础概念**: - **图片切换**:是指在...

    js图片切换ll

    首先,我们要了解JavaScript图片切换的基础概念。在网页上,图片通常由HTML的`&lt;img&gt;`标签来显示,而JavaScript则可以用来操作这些元素,实现动态效果。图片切换可以通过改变`&lt;img&gt;`标签的`src`属性,或者使用CSS来...

    兼容好的当当网JS图片切换特效

    首先,我们需要理解JavaScript图片切换的基本原理。通常,这种特效是通过动态改变HTML中的图片源(`src`属性)或者使用CSS来改变图片的显示状态来实现的。当用户点击或触发某种事件时,JavaScript代码会执行相应的...

    JavaScript图片切换展示效果

    JavaScript图片切换展示效果是网页设计中常见的功能,用于在页面上动态展示多张图片,提升用户体验。这种效果可以通过JavaScript编程语言实现,结合HTML和CSS来完成。本项目中包含了一个简单的图片轮播示例,我们...

    javascript图片切换,可设置切换方式

    JavaScript图片切换是一种常见的网页动态效果,它允许用户在多个图像之间进行平滑过渡,从而提升用户体验,尤其是在展示产品图片或创建幻灯片展示时。在这个主题中,我们将深入探讨JavaScript如何实现图片切换,并...

    js图片切换特效

    JavaScript(简称JS)是一种广泛用于网页和网络应用的编程语言,...总的来说,JavaScript图片切换特效的实现方式多样,可以根据项目需求选择合适的方法。熟练掌握这一技巧,可以让你的网页更加吸引人,提升用户体验。

Global site tag (gtag.js) - Google Analytics