jQuery实例:图片展示效果,非常cool

news/2024/7/4 1:31:25 标签: jquery, function, silverlight, class, div, css
class="baidu_pl"> <div id="article_content" class="article_content clearfix"> <div id="content_views" class="htmledit_views">

这是转贴,原贴地址 http://www.cnblogs.com/QLeelulu/archive/2008/04/01/1133112.html

======================================================================================================

开始之前,我就喜欢先看一下效果:


http://www.lanrentuku.com/lanren/jscode/js-0115/
上面的链接是群上一位兄弟发的一个图片展示效果,并叹息道:jQuery什么时候才有这么cool的例子啊?

我想说jQuery写这样的例子不难吧,于是就尝试着写一下.

先看Html:

<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"> HTML 代码 div>

然后我们写一个CSS来控制一下这个HTML的样式,CSS比较菜,将就吧,达到效果就好:

<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"> CSS div>

完成上面的准备工作后,我们下面开始jQuery代码。
首先就是做一些初始化的工作:

$(document).ready(class="tags" href="/tags/FUNCTION.html" title=function>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(class="tags" href="/tags/FUNCTION.html" title=function>function(i){
$(imgDivs[i]).css({"z-index": i, "left": i*(divWidth/imgNums)});
$(imgDivs[i]).hover(class="tags" href="/tags/FUNCTION.html" title=function>function(){
//处理鼠标进入的时候
},class="tags" href="/tags/FUNCTION.html" title=function>function(){
//处理鼠标离开的时候
});
});
});
首先我们定义了一些变量,方便我们后面使用。

然后就是使用了一个 each() 的函数在每一个匹配的元素进行事件处理。这里是每一个<div class="photo"> 元素分别进行事件的处理。

然后看一下下面这一句:
$(imgDivs[i]).css({"z-index": i, "left": i*(divWidth/imgNums), "top":"0px"});
这句是通过CSS来控制每一个图片的层次和显示位置。
然后就是用一个 hover() 函数来处理鼠标的hover事件。

首先看一下鼠标进入图片的时候该怎么处理:
$(imgDivs[i]).hover(class="tags" href="/tags/FUNCTION.html" title=function>function(){
//$(this).find("img").css("opacity","1");
$(this).find("span").stop().animate({bottom: 0}, "slow");
imgDivs.each(class="tags" href="/tags/FUNCTION.html" title=function>function(j){
if(j<=i){
$(imgDivs[j]).stop().animate({left: j*minWidth}, "slow");
}else{
$(imgDivs[j]).stop().animate({left: (j-1)*minWidth+imgWidth}, "slow");
}
});
},class="tags" href="/tags/FUNCTION.html" title=function>function(){
//处理鼠标离开时候的事件
});
在这里所有的动画效果都是通过 animate() 函数修改CSS来控制元素的显示位置来实现的。

这里注意一下就是在调用 animate() 函数前都调用了 stop() 函数。stop() 函数是用来停止当前元素的所有执行中的事件。

j<=i 的判断就是判断鼠标hover的当前图片和该图片前面的图片该图片后面的图片的分割线。

鼠标离开的处理也差不多,下面之完整的代码:
$(document).ready(class="tags" href="/tags/FUNCTION.html" title=function>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(class="tags" href="/tags/FUNCTION.html" title=function>function(i){
$(imgDivs[i]).css({"z-index": i, "left": i*(divWidth/imgNums)});
$(imgDivs[i]).hover(class="tags" href="/tags/FUNCTION.html" title=function>function(){
//$(this).find("img").css("opacity","1");
$(this).find("span").stop().animate({bottom: 0}, "slow");
imgDivs.each(class="tags" href="/tags/FUNCTION.html" title=function>function(j){
if(j<=i){
$(imgDivs[j]).stop().animate({left: j*minWidth}, "slow");
}else{
$(imgDivs[j]).stop().animate({left: (j-1)*minWidth+imgWidth}, "slow");
}
});
},class="tags" href="/tags/FUNCTION.html" title=function>function(){
imgDivs.each(class="tags" href="/tags/FUNCTION.html" title=function>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");
});
});
});
});
 
本人水平一般,代码还有待改善。

自己觉得吧用JS来写这种效果不大实际,因为占用的CPU比较高,还是用Flash实现的好。偶写这个完全是为了学习.

或者哪位大大用class="tags" href="/tags/SILVERLIGHT.html" title=silverlight>silverlight也写个这样的效果的教程给偶学习下class="tags" href="/tags/SILVERLIGHT.html" title=silverlight>silverlight。
div> div> <div id="treeSkill">div>

http://www.niftyadmin.cn/n/1413033.html

相关文章

ARTS打卡第12周

A:Circular Array Loop  Medium 题目: You are given a circular array nums of positive and negative integers. If a number k at an index is positive, then move forward k steps. Conversely, if its negative (-k), move backward k steps. Since the array is circu…

Logstash笔记(二)——运行原理和插件管理

1. 运行原理 pipeline 事件处理有三个阶段:输入→过滤器→输出。 输入生成事件&#xff0c;过滤器修改事件&#xff0c;输出将事件发送到其他地方。 输入和输出支持编解码器&#xff0c;可以在数据进入或退出管道时对数据进行编码或解码&#xff0c;而无需使用单独的过滤器。…

C++实现多级排序

stl中sort详细说明 实现功能&#xff1a;期末开始4位同学的成绩&#xff0c;按多级排序&#xff0c;排序规则为&#xff1a;按数学从小到大&#xff0c;如果数学相等&#xff0c;则按语文从大到小排列&#xff0c;如果语文相等&#xff0c;则按英语从小到大排列&#xff0c;如果…

代谢组学分析 PCA PLS-DA OPLS-DA 在R语言中的实现

主成分分析&#xff08;Principal Component Analysis&#xff0c;PCA&#xff09;是一种无监督降维方法&#xff0c;能够有效对高维数据进行处理。但PCA对相关性较小的变量不敏感&#xff0c;而PLS-DA&#xff08;Partial Least Squares-Discriminant Analysis&#xff0c;偏最…

vs.net 可以显示js里funtion的大纲插件

作者已经出到第四个版本&#xff0c;很有意思,可以下载代码 他的blog: http://www.cnblogs.com/yuyijq/archive/2008/07/14/1242891.html

FileBeat笔记(一)——安装和采集Springboot日志

1. 下载和安装 # windows 下载&#xff0c;本文以windows命令演示 https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.6.2-windows-x86_64.zip# linux 下载 wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.6.2-darwin-x86_64.tar.g…

IE8中的原生JSON支持

原文&#xff1a;http://blogs.msdn.com/ie/archive/2008/09/10/native-json-in-ie8.aspx你可能已经从这篇文章的标题中猜到了&#xff0c;Internet Explorer 8&#xff08;目前是Beta2&#xff09;提供了原生JSON的解析和序列化。这种新的原生JSON功能能够使Internet Explorer…

tensorflow 环境搭建

anaconda->python->tensorflow->pycharm说明&#xff1a;该种方法安装的tensorflow是严格和anaconda结合在一起的&#xff0c;首先在anaconda 中装python&#xff0c;然后再安装tensorflow&#xff0c;因此只能在anaconda prompt(anaconda 命令行)中使用&#xff0c;在…