18 12
发新话题
打印

使用DIV+CSS如何实现幻灯片的效果?

使用DIV+CSS如何实现幻灯片的效果?

CSS+DIV是网站标准(或称“WEB标准”)中常用的术语之一,通常为了说明与HTML网页设计语言中的表格(table)定位方式的区别,因为XHTML网站设计标准中,不再使用表格定位技术,而是采用css+div的方式实现各种定位。

  CSS是英语Cascading Style Sheets(层叠样式表单)的缩写,它是一种用来表现 HTML 或 XML 等文件式样的计算机语言。

  DIV元素是用来为HTML文档内大块(block-level)的内容提供结构和背景的元素。DIV的起始标签和结束标签之间的所有内容都是用来构成这个块的,其中所包含元素的特性由DIV标签的属性来控制,或者是通过使用样式表格式化这个块来进行控制。

<div id="mContainer"></div>
<input class="btn" id="pauseBtn" onclick="doPause();" type="button" value="pause" />
  建立一个层,设置id为mContainer,作为图片的容器层。
  设置一个按钮来控制图片切换的暂停与继续。

  我们看下面的CSS代码:

#mContainer {
    width:225px;
    position:relative;
    height:168px;;
}
.mPhoto {
    filter:Alpha(opacity=0);
    left:0px;
    position:absolute;
    top:0px;
    moz-opacity:0.0;
}
.btn {
    border-right:#000 1px solid;
    border-top:#000 1px solid;
    margin-top:5px;
    font-size:9px;
    border-left:#000 1px solid;
    width:40px;
    border-bottom:#000 1px solid;
    font-family:verdana;
}
  这些代码我们都能看明白,需要指出的是类mPhoto的样式定义。
  主要是应用了滤镜将图片的透明度设置为零,完全透明。

我们看下面的javascript脚本:

var currentPhoto = 0;
var secondPhoto = 1;

var currentOpacity = new Array();
var imageArray = new Array("1.jpg","2.jpg","3.jpg","4.jpg","5.jpg","6.jpg","7.jpg","8.jpg");

var FADE_STEP = 2;
var FADE_INTERVAL = 10;
var pause = false;

function init() {
    currentOpacity[0]=99;
    for(i=1;i<imageArray.length;i++)currentOpacity=0;
    mHTML="";
    for(i=0;i<imageArray.length;i++)mHTML+="<div id=\"photo\" name=\"photo\" class=\"mPhoto\"><img src=\"" + imageArray  +"\"></div>";
    document.getElementById("mContainer").innerHTML = mHTML;

    if(document.all) {
        document.getElementsByName("photo")[currentPhoto].style.filter="alpha(opacity=100)";
    } else {
        document.getElementsByName("photo")[currentPhoto].style.MozOpacity = .99;
    }

    mInterval = setInterval("crossFade()",FADE_INTERVAL);
}

function crossFade() {
    if(pause)return;

    currentOpacity[currentPhoto]-=FADE_STEP;
    currentOpacity[secondPhoto] += FADE_STEP;

    if(document.all) {
        document.getElementsByName("photo")[currentPhoto].style.filter = "alpha(opacity=" + currentOpacity[currentPhoto] + ")";
        document.getElementsByName("photo")[secondPhoto].style.filter = "alpha(opacity=" + currentOpacity[secondPhoto] + ")";
    } else {
        document.getElementsByName("photo")[currentPhoto].style.MozOpacity = currentOpacity[currentPhoto]/100;
        document.getElementsByName("photo")[secondPhoto].style.MozOpacity =currentOpacity[secondPhoto]/100;
    }

    if(currentOpacity[secondPhoto]/100>=.98) {
        currentPhoto = secondPhoto;
        secondPhoto++;
        if(secondPhoto == imageArray.length)secondPhoto=0;
        pause = true;
        xInterval = setTimeout("pause=false",2000);
    }
}

function doPause()  {
    if(pause) {
        pause = false;
        document.getElementById("pauseBtn").value = "pause";
http://www.divcss5.com/
互相学习 共同进步!

TOP

这个问题不是很了解啊

TOP

回复 1# wolftears 的帖子

不错啊
http://www.divcss5.com/css-texiao/texiao269.shtml  

http://www.divcss5.com/css-texiao/texiao268.shtml   这两个地方都是幻灯片特效介绍
用真诚打动你我,用质量赢得信誉!携手同创,大有可为!

TOP

不是很了解!
徐州网络公司 www.0516pb.com

TOP

js不是很会

js能怎么学?好学吗
附件: 您所在的用户组无法下载或查看附件
中国冷冻食品门户(www.zg-ld.com)

TOP

!!!

TOP

都是JS不晓得 不明白哦。。。

TOP

学习css中

学习css中

TOP

说到底还是用JS实现,纯CSS也能实现的

TOP

回复 3# yang3wei 的帖子

嗯,就是这个,常用的,解决问题了。

TOP

 18 12
发新话题