zoukankan      html  css  js  c++  java
  • jQuery实例:图片展示效果

    http://www.corange.cn//uploadfiles/1105_73259.jpg


    先看Html:

    HTML 代码
    <div id="photoShow">
    <div class="photo">
    <img src="p1.jpg" />
    <span>张娜拉,韩国的</span>
    </div>
    <div class="photo">
    <img src="p2.jpg" />
    <span>My Digital Story</span>
    </div>
    <div class="photo">
    <img src="p3.jpg" />
    <span>不知道是什么图来的</span>
    </div>
    <div class="photo">
    <img src="p4.jpg" />
    <span>我的Logo,Studio拼错了都不知道,汗一个。</span>
    </div>
    <div class="photo">
    <img src="p5.jpg" />
    <span>四季图吧这是,但我分不清夏和秋</span>
    </div>
    </div>
    </div>
    然后我们写一个CSS来控制一下这个HTML的样式,CSS比较菜,将就吧,达到效果就好:

    CSS
    #photoShow{}{
    border: solid 1px #C5E88E;
    overflow: hidden; /**//*图片超出DIV的部分不显示*/
    580px;
    height: 169px;
    background: #C5E88E;
    position: absolute;
    }
    .photo{}{
    position: absolute;
    top: 0px;
    490px;
    height: 169px;
    }
    .photo img{}{
    490px;
    height: 169px;
    }
    .photo span{}{
    padding: 5px 0px 0px 5px;
    490px;
    height: 30px;
    position: absolute;
    left: 0px;
    bottom: -32px; /**//*介绍内容开始的时候不显示*/
    background: black;
    filter: alpha(opacity=50); /**//*IE透明*/
    opacity: 0.5; /**//*FF透明*/
    color: #FFFFFF;
    }
    完成上面的准备工作后,我们下面开始jQuery代码。
    首先就是做一些初始化的工作:

    $(document).ready(function(){
    var imgDivs = $("#photoShow>div");
    var imgNums = imgDivs.length; //图片数量
    var divWidth = parseInt($("#photoShow").css("width")); //显示宽度
    var imgWidth = parseInt($(".photo>img").css("width")); //图片宽度
    var minWidth = (divWidth - imgWidth)/(imgNums-1); //显示其中一张图片时其他图片的显示宽度
    var spanHeight = parseInt($("#photoShow>.photo:first>span").css("height")); //图片介绍信息的高度
    imgDivs.each(function(i){
    $(imgDivs[i]).css({"z-index": i, "left": i*(divWidth/imgNums)});
    $(imgDivs[i]).hover(function(){
    //处理鼠标进入的时候
    },function(){
    //处理鼠标离开的时候
    });
    });
    });首先我们定义了一些变量,方便我们后面使用。
    然后就是使用了一个 each() 的函数在每一个匹配的元素进行事件处理。这里是每一个<div class="photo"> 元素分别进行事件的处理。
    然后看一下下面这一句:$(imgDivs[i]).css({"z-index": i, "left": i*(divWidth/imgNums), "top":"0px"});这句是通过CSS来控制每一个图片的层次和显示位置。然后就是用一个 hover() 函数来处理鼠标的hover事件。
    首先看一下鼠标进入图片的时候该怎么处理:$(imgDivs[i]).hover(function(){
    //$(this).find("img").css("opacity","1");
    $(this).find("span").stop().animate({bottom: 0}, "slow");
    imgDivs.each(function(j){
    if(j<=i){
    $(imgDivs[j]).stop().animate({left: j*minWidth}, "slow");
    }else{
    $(imgDivs[j]).stop().animate({left: (j-1)*minWidth+imgWidth}, "slow");
    }
    });
    },function(){
    //处理鼠标离开时候的事件
    });在这里所有的动画效果都是通过 animate() 函数修改CSS来控制元素的显示位置来实现的。
    这里注意一下就是在调用 animate() 函数前都调用了 stop() 函数。stop() 函数是用来停止当前元素的所有执行中的事件。
    j<=i 的判断就是判断鼠标hover的当前图片和该图片前面的图片与该图片后面的图片的分割线。
    鼠标离开的处理也差不多,下面之完整的代码:$(document).ready(function(){
    var imgDivs = $("#photoShow>div");
    var imgNums = imgDivs.length; //图片数量
    var divWidth = parseInt($("#photoShow").css("width")); //显示宽度
    var imgWidth = parseInt($(".photo>img").css("width")); //图片宽度
    var minWidth = (divWidth - imgWidth)/(imgNums-1); //显示其中一张图片时其他图片的显示宽度
    var spanHeight = parseInt($("#photoShow>.photo:first>span").css("height")); //图片介绍信息的高度
    imgDivs.each(function(i){
    $(imgDivs[i]).css({"z-index": i, "left": i*(divWidth/imgNums)});
    $(imgDivs[i]).hover(function(){
    //$(this).find("img").css("opacity","1");
    $(this).find("span").stop().animate({bottom: 0}, "slow");
    imgDivs.each(function(j){
    if(j<=i){
    $(imgDivs[j]).stop().animate({left: j*minWidth}, "slow");
    }else{
    $(imgDivs[j]).stop().animate({left: (j-1)*minWidth+imgWidth}, "slow");
    }
    });
    },function(){
    imgDivs.each(function(k){
    //$(this).find("img").css("opacity","0.7");
    $(this).find("span").stop().animate({bottom: -spanHeight}, "slow");
    $(imgDivs[k]).stop().animate({left: k*(divWidth/imgNums)}, "slow");
    });
    });
    });
    });

    http://www.corange.cn/archives/2008/11/2154.html

  • 相关阅读:
    软件的安全性应从哪几个方面去测试?
    目前主要的测试用例设计方法是什么?
    什么是软件质量?
    软件配置管理的作用?软件配置包括什么?
    什么是软件测试?软件测试的目的与原则
    软件生存周期及其模型是什么?
    软件的概念和特点?软件复用的含义?构件包括哪些?
    一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?
    在搜索引擎中输入汉字就可以解析到对应的域名,请问如何用LoadRunner进行测试。
    测试08
  • 原文地址:https://www.cnblogs.com/zerogo/p/2209140.html
Copyright © 2011-2022 走看看