大家国庆节好啊,嫦娥2马上就要发射了,预祝成功顺利。另外问个小问题,我想实现一种JS的图片特效,具体是:类似于图片轮播,只是中间的图片要放大显示。
例如,我有十张图片要显示,其中页面上正在显示的有五张,多于五张的通过两边的向左向右按钮滚动查看。其中,当前正在显示的最左边和最右边的图片尺寸要一样,然后第二张和倒数第二张的尺寸要一样,中间一张的尺寸为最大。当单击右边的按钮时,最右边的图片要身左边移动,并且尺寸要自动缩放。
示例:[向左滚动按钮] 图片A(小图) 图片B(中图) 图片C(大图) 图片D(中图) 图片E(小图) [向右滚动按钮]当点击向右滚动按钮后
[向左滚动按钮] 图片B(小图) 图片C(中图) 图片D(大图) 图片E(中图) 图片F(小图) [向右滚动按钮]
....也就是说图片向左或向右移动后会自动变成大图或小图。我自己做了这个效果,只是实现方法比较笨拙,我是写了个jquery的插件,然后把每个显示的图片位置显示预先求出来,然后通过自定义动画来完成的。只是感觉这个方法不太好,大家有没有好的方法? 或者有没有哪个网站有类似的特效,把网址贴上来,多谢。
例如,我有十张图片要显示,其中页面上正在显示的有五张,多于五张的通过两边的向左向右按钮滚动查看。其中,当前正在显示的最左边和最右边的图片尺寸要一样,然后第二张和倒数第二张的尺寸要一样,中间一张的尺寸为最大。当单击右边的按钮时,最右边的图片要身左边移动,并且尺寸要自动缩放。
示例:[向左滚动按钮] 图片A(小图) 图片B(中图) 图片C(大图) 图片D(中图) 图片E(小图) [向右滚动按钮]当点击向右滚动按钮后
[向左滚动按钮] 图片B(小图) 图片C(中图) 图片D(大图) 图片E(中图) 图片F(小图) [向右滚动按钮]
....也就是说图片向左或向右移动后会自动变成大图或小图。我自己做了这个效果,只是实现方法比较笨拙,我是写了个jquery的插件,然后把每个显示的图片位置显示预先求出来,然后通过自定义动画来完成的。只是感觉这个方法不太好,大家有没有好的方法? 或者有没有哪个网站有类似的特效,把网址贴上来,多谢。
解决方案 »
- [原创]JS拼图游戏
- 有用JS调用过GoogleMap的兄弟吗?
- 关于Microsoft Script Debugger调试工具有时不会显示代码
- 谁帮我看看这段javasript代码
- 求救微软的TreeView客户端用javascript代码添加节点,为什么PostBack后服务端看不到?
- 获取父窗口子frame内的表格
- 如何用JS调用网页的头部,给个例子,谢谢
- 大家讨论一下一个ajax公用类,我有几个疑问,渴望高手给予指点
- 为什么我的树形菜单会自动展开?
- jquery 翻页问题,请求高手解决!
- 求解:这段js放大镜效果代码,找人解释一下,很难理解,欢迎大家讨论。谢谢!
- jquery ie6 类选择器不能使用?
JS参考
/*
=========================================================
生成等比例缩略图,图片不失真
==========================================================
*/
function DrawImage(ImgD, FitWidth, FitHeight) {
var image = new Image();
image.src = ImgD.src;
if (image.width > 0 && image.height > 0) {
if (image.width / image.height >= FitWidth / FitHeight) {
if (image.width > FitWidth) {
ImgD.width = FitWidth;
ImgD.height = (image.height * FitWidth) / image.width;
} else {
ImgD.width = image.width;
ImgD.height = image.height;
}
} else {
if (image.height > FitHeight) {
ImgD.height = FitHeight;
ImgD.width = (image.width * FitHeight) / image.height;
} else {
ImgD.width = image.width;
ImgD.height = image.height;
}
}
}
}
/*
=========================================================
动态切换图片,鼠标划过时暂停在某图片上面
图片样式
<style type="text/css">
.imgSelect img
{
filter: alpha(opacity=100);
opacity: 0.4;
-moz-opacity: 0.4;
}
.imgUnSelect img
{
filter: alpha(opacity=40);
opacity: 0.4;
-moz-opacity: 0.4;
}
</style>调用方法
后台动态的给imageurl,imageid,imageName赋值前台脚本:
<div style="width:340px;">
<div id="divBigImg" style="width:100%; height:250px; overflow:hidden;">
</div>
<div id="divImgName" style="text-align: center; line-height:25px; width: 100%; background-color:Gray; color: White; font-weight:bold;">
</div>
<div style="background-color:Black;">
<%=imgHtml %></div>
</div>示例:
PS/SlideChange.aspx
==========================================================
*/
var i_strngth = 1;
var i_image = 0;
var imgWidth = 330;
var timer;
var imageurl = new Array();//图片URL
//imageurl[0] = "201001012223460.jpg";
//imageurl[1] = "201001012227010.jpg";
//imageurl[2] = "201001012228301.jpg";
var imageid = new Array();//图片ID
var imageName = new Array();//图片名称
var goonflag = true;
//<%=js %>//绑定图片信息
function showimage() {//debugger;
if(imageid.length>0){
if(goonflag){//debugger;
if (document.all) {
if (i_strngth <= 110) {
document.getElementById("divBigImg").innerHTML = "<img style='filter:alpha(opacity=" + i_strngth + "); cursor:pointer;' onload='DrawImage(this,"+imgWidth+","+imgWidth+");' " +
"src='../Adjunct/ImagesNews/" + imageurl[i_image] + "' onclick='window.open(\"viewimage.aspx?id=" + imageid[i_image] + "&c=\")' border=0>";
i_strngth = i_strngth + 10;
timer = setTimeout("showimage()", 200);
document.getElementById("divImgName").innerHTML = imageName[i_image];
showLayer();
document.getElementById("divimg_" + i_image).className = "imgSelect";
}
else {
clearTimeout(timer);
timer = setTimeout("hideimage()", 2000);
}
}
if (document.layers) {
clearTimeout(timer);
document.getElementById("divBigImg").document.write("<img src='../Adjunct/ImagesNews/" + imageurl[i_image] + "' " +
"onload='DrawImage(this,310,310);' onclick='window.open(\"viewimage.aspx?id=" + imageid[i_image] + "&c=\")' style='cursor:pointer;' border=0>");
document.close();
document.getElementById("divImgName").innerHTML = imageName[i_image];
showLayer();
document.getElementById("divimg_" + i_image).className = "imgSelect";
i_image++;
if (i_image >= imageurl.length) { i_image = 0; }
var timer = setTimeout("showimage()", 2000);
}
}
}
}
function hideimage() {
if (i_strngth >= -10) {
document.getElementById("divBigImg").innerHTML = "<img style='filter:alpha(opacity=" + i_strngth + "); cursor:pointer;' onload='DrawImage(this,"+imgWidth+","+imgWidth+");' " +
"src='../Adjunct/ImagesNews/" + imageurl[i_image] + "' onclick='window.open(\"viewimage.aspx?id=" + imageid[i_image] + "&c=\")' border=0>";
i_strngth = i_strngth - 10;
timer = setTimeout("hideimage()", 200);
}
else {
clearTimeout(timer);
i_image++;
if (i_image >= imageurl.length) { i_image = 0; }
i_strngth = 1;
timer = setTimeout("showimage()", 750);
}
}showimage();
function goFocus(id) {//debugger;
//暂停定时器
i_image = id;
clearTimeout(timer);
goonflag = false;
if (document.all) {
if (i_strngth <= 110) {
document.getElementById("divBigImg").innerHTML = "<img style='cursor:pointer;' onload='DrawImage(this," + imgWidth + "," + imgWidth + ");' " +
"src='../Adjunct/ImagesNews/" + imageurl[i_image] + "' onclick='window.open(\"viewimage.aspx?id=" + imageid[i_image] + "&c=\")' border=0>";
document.getElementById("divImgName").innerHTML = imageName[i_image];
showLayer();
document.getElementById("divimg_" + i_image).className = "imgSelect";
}
else {
clearTimeout(timer);
timer = setTimeout("hideimage()", 2000);
}
}
if (document.layers) {
clearTimeout(timer);
document.getElementById("divBigImg").document.write("<img src='../Adjunct/ImagesNews/" + imageurl[i_image] + "' " +
"onload='DrawImage(this," + imgWidth + "," + imgWidth + ");' onclick='window.open(\"viewimage.aspx?id=" + imageid[i_image] + "&c=\")' style='cursor:pointer;' border=0>");
document.close();
document.getElementById("divImgName").innerHTML = imageName[i_image];
showLayer();
document.getElementById("divimg_" + i_image).className = "imgSelect";
}
}
function goOn() {
// i_image++;
// if (i_image >= imageurl.length) { i_image = 0; }
goonflag = true;
showimage();
}