
程序介绍:
1,点击大图可以弹出遮罩效果.
2,下方小图可以左右滚动.
3,点击新窗口打开,可以打开当前的大图片.
4,遮罩层中小图也可以左右滚动,也可以打开大图片.
在 IE6,IE7,Firefox3 & google 浏览器下测试通过.
演示:
http://www.cssrain.cn/demo/jqueryProduct/demos.html
下载:
http://www.cssrain.cn/demo/jqueryProduct/jqueryProduct.rar

演示:
http://www.cssrain.cn/demo/jquerynewspager/demo.html
原理:使用报纸内容作为 背景图,相对定位。
然后里面的div设置为绝对定位,大小,left和top都要跟背景图匹配。
所以这个有一定的规律。
下载:
http://www.cssrain.cn/demo/jquerynewspager/jquerynewspager.rar
引申:
当后台人员问,每次要传坐标,宽度和高度不麻烦么?用户知道使用么?
教用户使用photoshop?。。。!!!
解决方案:
使用图片截图的插件即可,一般的截图插件都能获取4个坐标,宽度和高度,
当然我们只需要这些,并不需要把图片真正截取下来。
很多图片网站用了这种技术,Google图片中心也不例外。
这种技术的图片是先显示模糊的,然后再显示清楚的。
这个模糊的原理就是 一张小图片,然后把尺寸放大,大小等于大图片的宽度和高度。
小图片被拉大了,理所当然就模糊了。
试想:小图片的尺寸是10kb,大图片的大小是500kb,那么加载小图片的速度就是大图片的50倍。
当然你会说,如果直接显示大图片是什么情况呢?答案是:一片空白等着你。
演示:
http://www.cssrain.cn/demo/loadImages/loadimages.html
当然你也可以选择我以前做的 图片预加载 插件。
http://cssrain.cn/article.asp?id=1321
看这篇文章之前,请先看 使用CSS打造竖型菜单这篇文章:
http://cssrain.cn/article.asp?id=1328
截图:

演示:
http://www.cssrain.cn/demo/HorrentMenuSlider/demo1.html
http://www.cssrain.cn/demo/HorrentMenuSlider/demo2.html
http://www.cssrain.cn/demo/HorrentMenuSlider/demo3.html
http://www.cssrain.cn/demo/HorrentMenuSlider/demo4.html
下载:
http://www.cssrain.cn/demo/HorrentMenuSlider/HorrentMenuSlider.rar

演示:
http://www.cssrain.cn/demo/skypebuttons/SkypeButton.html
http://www.cssrain.cn/demo/skypebuttons/SkypeButton2.html
关键代码:
$(document).ready(function(){
$(“.button”).hover(function(){
if(!$(“.button img”).is(“:animated”)){
$(“.button img”)
.animate({top:”-10px”}, 200).animate({top:”-4px”}, 200)
.animate({top:”-7px”}, 100).animate({top:”-4px”}, 100)
.animate({top:”-6px”}, 100).animate({top:”-4px”}, 100);
}
});
});

非常好的可用性快捷键
某天你需要为文本框之类的添加快捷键提示,这是个不错的选择。
提升表单可用性和易用性。
演示:
http://www.cssrain.cn/demo/AccessKeyHighlighter/demo.html
下载:
http://www.cssrain.cn/demo/AccessKeyHighlighter/AccessKeyHighlighter.rar
主要是实现了 上一张, 下一张的效果。然后加上以前自己写的图片预加载插件,使得效果更加丰富了一些。
截图:

演示:
http://www.cssrain.cn/demo/crsliders/CRsliders1.html
http://www.cssrain.cn/demo/crsliders/CRsliders2.html
http://www.cssrain.cn/demo/crsliders/CRsliders3.html
下载:
http://www.cssrain.cn/demo/crsliders/crsliders.rar

以前做了一款,
http://www.cssrain.cn/demo/TransformView1/TransformView2.html
当时记得有一朋友说,如果滚动到最后的时候,不要弹回去就好。
所以今天重新做了一下,完成了他的心愿。呵呵。
演示:
http://www.cssrain.cn/demo/CRslide/slideImg1.html
http://www.cssrain.cn/demo/CRslide/slideImg2.html
http://www.cssrain.cn/demo/CRslide/slideImg3.html

原效果见此网址 http://abcnews.go.com/
Demo 演示
DEMO 下载地址
本来是在蓝色理想论坛上看到的 有人说去面试 结果让他写这个效果 没有写出来
看了一下,觉得老外做的确实不错 很细致 用户体验很舒服,可见人家的严谨和细致,但是没有打开代码看,自己用jQuery 实现了一个 用了半天时间 中间还碰到了几个小麻烦 ,再次感叹人家原来的东西做的认真,考虑的细致,自己实现的时候才能体会到人家的心思。
下面贴一下代码 做一下注释:
// JavaScript Document By Trance
$(document).ready(function(){
var t=false; //定时器
var time=5000; //切换间隔
var speed=500; //滚动时间
var fot=300; //淡出时间
var fin=300; //淡入时间
var i=0; //起始序列 这个变量将贯穿整个程序 来控制要显示的序列
var len=$("#list li").length; //滚动内容个数
var wh=330; //每个滚动内容的宽度
$("#info").css({"width": wh*len + "px"}); //初始化滚动容器的宽度
//标记当前 函数
function cur(ele,currentClass){
ele= $(ele)? $(ele):ele;
ele.addClass(currentClass).siblings().removeClass(currentClass);
}
$("#prev").click(function(){ //左翻按钮点下 调用roll() 函数 左翻
roll(-1);
})
$("#next").click(function(){ //右翻按钮点下 调用roll() 函数 右翻
roll(1);
})
$("#list li").mouseover(function(){ // 新闻列表项目划过
checkfade(); //检查 并 初始化淡入淡出
i=$("#list li").index($(this)[0]); //将 i 变为划过的序列
if(!$(this).hasClass("cur")){ //如果已经是当前的序列 就不再执行fade() 函数
fade(i);
}
cur(this,"cur");
})
//滚动函数 滚动效果的关键函数 有一个参数j 通过传入值 -1 或者 1 来控制容器的位置
function roll(j){
checkroll(); //检查 并 初始化滚动条件
if(!$("#info").is(":animated")){ // 预防多次处罚滚动引起的杂乱 必须在没有执行动画的时候执行以下内容
i+=j; // i的值 因传入的 j 而改变
if(i!=-1 && i!=len){ //普通的情况
$("#info").animate({"left" : -(wh*i)+"px"},speed); //控制#info 也就是容器的 x 坐标来实现动画翻转
}else if(i==-1){ // 当翻到第一个时 自动转到最后 以形成循环
i=len-1;
$("#info").css({"left" : -(wh*(i-1))+"px"}); //先将 容器位置定到 需要滚动一个宽度才能到达的地方
$("#info").animate({"left" : -(wh*i)+"px"},speed); //再执行滚动 就形成了模拟正常的滚动
}else if(i==len){ //与上一个环节一样 不过这个是 滚到最后一个 向第一个翻转
i=0;
$("#info").css({"left" : -wh+"px"});
$("#info").animate({"left" : 0+"px"},speed);
}
cur($("#list li").eq(i) , "cur"); //别忘记标记相应列表项目
}
}
//Fade 函数 是渐入渐出的切换效果函数
function fade(k){
checkfade();
$("#info").find("div:visible").fadeOut(fot,function(){
$("#info").find("div").eq(k).fadeIn(fin)
})
}
//检查并且初始化滚动
function checkroll(){
if($("#info").find(".hide").html()){ //如果#info 里面 有隐藏的元素 则让它们都显示 并且初始化容器宽度
$("#info").find("div").removeClass("hide").show();
$("#info").css({"left" : -(wh*i)+"px"});
}
}
//检查并且初始化Fade
function checkfade(){
if(!$("#info").find(".hide").html()){ //如果没有隐藏的元素 则 隐藏除了当前序列的div 的其他所有元素 并初始化容器位置
$("#info").find("div").not($("#info").find("div").eq(i)).addClass("hide");
$("#info").css({"left" : 0+"px"});
}
}
//自动执行
function setInt(){ //周期函数
t=setInterval(function(){roll(1)},time);
}
function clearInt(){ //取消周期的函数
if(t) clearInterval(t);
}
$("#area").hover( //鼠标放进去的时候就取消掉自动播放
function(){ clearInt() },
function(){ setInt() }
)
//响应键盘 的上下左右键
$(document).keydown(function(event){
event = even
t || window.event;
if(event.keyCode==38 || event.keyCode==37){
clearInt();
roll(-1);
setInt();
};
if(event.keyCode==40 || event.keyCode==39){
clearInt();
roll(1);
setInt();
};
})
//开始自动 页面加载完毕开始自动
setInt();
})
最后 其实这个小程序 最重要的是对 i 也就是显示序列的控制
为什么划过列表用渐入渐出的方式切换 而不是统一的滚动呢 这是为了避免 滚动距离过长 引起的速度太快,消耗系统资源 防止程序停止响应 同时还有一种轻柔的感觉
任何一种切换 不管是用什么方式触发 都要考虑当前 i 的值 的变化 对于两种切换方式的变换处理 和对交互过程的控制 是这个小程序的重点所在。
听说支付宝已经开通了 上海地区的电信,水电缴费。于是去尝试了一下。
发现这个效果做的不错。
地址如下:https://www.alipay.com/life_helper.htm?agent=EAON0102&defaultTab=1
[color=Blue]效果截图:

[color=Blue]交互解释:
当用户把鼠标聚焦到 缴费单条形码数字 的文本框上时,右边会有一张图片 指示 着 条形码 在账单中的真实位置。告诉用户 条形码 在账单中的位置, 从而减少了用户的思考。
完成此效果非常容易,只是能想到这样去做,并且把他引入到网站项目中,的确能带来易用性。
[color=Blue]交互实现Demo:
http://www.cssrain.cn/demo/alpay/demo.html
[color=Blue]交互实现原理:
首先做2张相同大小的图片,1张是账单图,一张是红色闪动的 动画图。
在网页中先定义好 账单图, 然后当文本框获取焦点时,并且焦点文本框是 缴费单条形码 时,那么就动态插入 红色闪动的 动画图。
他们之间的层次关系,可以通过position来设置。