jQuery写的一个幻灯片

最近做一个网站,需要用上一个大幅点的幻灯片,幻灯片这东西网上一搜一大把,所以就想去“淘”一个,省点工夫,但"淘"了好一些都不满意,不是太老土、不美观,就是不兼容或到不到想要的结果等等,最后决定自己就写了一个。

看看代码咯,XHTML 代码:

<div id="slide">
<a href="#" id="this_a"><img src="images/1.jpg" id="this_pic" /></a>
<ul id="pic_list">
<li><a href="http://www.qq.com"><img src="images/1.jpg" alt="" /></a></li>
<li><a href="http://www.sina.com"><img src="images/2.jpg" alt="" /></a></li>
<li><a href="http://www.163.com"><img src="images/3.jpg" alt="" /></a></li>
<li><a href="http://www.baidu.com"><img src="images/4.jpg" alt="" /></a></li>
<li><a href="http://www.17css.com"><img src="images/5.jpg" alt="" /></a></li>
</ul>
<span id="transparence"></span>
</div>

说明:#slide是最外面的容器,#this_pic是要显示的大图,#pic_list是图片缩略图,#transparence是一个半透明的层,因为想给#pic_list和里的缩略图应用半透明效果,但半透明效果会继承,无法更改,所以模拟了这个层。

CSS 代码:

#slide {position:relative; width:740px; height:240px; margin:20px auto;}
#pic_list { position:absolute; left:0; bottom:0; width:100%;
list-style: none; overflow:hidden; z-index:2;}
#pic_list li { float:left; width:100px; height:52px; padding-top:10px;}
#pic_list li img { position:absolute; top:18px; width:65px; height:35px;
margin:0 20px; border:1px solid #fff;}
#this_pic { position:absolute; width:100%; height:100%; border:none;}
#transparence { position:absolute; left:0; bottom:0; width:100%; height:50px;
background:#000; z-index:1; border-top:1px solid #fff;}

jQuery 代码:

$(function (){
$('#pic_list img').mouseover(function(){
//如果鼠标移到的缩略图的地址和大图地址相等,则返回
if($('#this_pic').attr('src') == $(this).attr('src')) return;
//大幅图片淡出
$('#this_pic').fadeOut(0).fadeIn(500).attr('src',$(this).attr('src'));
//把缩略图的链接地址传给大图的链接
$('#this_a').attr('href',$(this).parents('a').attr('href'));
//除此之外的缩略图位置和半透明还原
$(this).parents('li').nextAll('li').find('img').animate({top:18,opacity:0.6},500);
$(this).parents('li').prevAll('li').find('img').animate({top:18,opacity:0.6},500);
//当前的缩略图上升动画效果
$(this).animate({top:0},500).css('opacity','1');
});
});
//初始化
$(function(){
//模拟层半透明
$('#transparence').css('opacity','0.4');
//所有缩略图半透明
$('#pic_list img').css({'opacity':'0.6'});
//第一张缩略图的位置和不透明
$('#pic_list img:eq(0)').css({'top':'0','opacity':'1'});
//阻止缩略图链接
$('#pic_list a').click(function(){return false});
});

为了通过验证,把半透明的代码写在 JS 里,半透效果的 CSS 代码不能通过验证就不用说了吧,而且要兼容浏览器得写三句。

查看Dome

代码不多,但效果我觉得还可以。如果您觉得有什么地方不够好,或有更好的实现方法,欢迎留言。

用jQuery去除链接虚线

链接点击后会出现虚线框,因为链接一般都有跳转页面,所以不容易看出来。如果没有跳转或阻止了这个行为的话,就能很明显的看到虚线。这个虚线在某些情况下会影响美观,所以可以考虑把它去掉。虽然在《去除点击链接时出现的虚线框》中说了几种方法,而且一起使用也能兼容 IE 和 FF ,但未免麻烦了点。前两天看到使用 jQuery 解决这个问题问题的方法,很简单,而且兼容性很好,所以把它“拿”过来了。具体代码如下:

$(function(){
$('a').bind('focus',function(){
if(this.blur){ //如果支持 this.blur
this.blur();
}
});
});

细心的您可能发现了按钮点击后也会出现虚线框,那就一起把它去掉吧:

$(function(){
$('a,input[type="button"]').bind('focus',function(){
if(this.blur){ //如果支持 this.blur
this.blur();
}
});
});

查看效果

很简单吧,简单的都没有什么技术含量了。。。

超过宽度显示省略号(无js全兼容)

曾经发表过《我看超过部分自动隐藏或显示省略号》,表达了用 CSS 处理“超过宽度显示省略号”不合适的一些观点,然而前段时间在逛蓝色理想经典论坛的时候,发现了一种用 CSS 处理此问题的不错的办法,似乎反驳了我的观点,作者[14px ]突破了传统,以“范围底线”为思路创造了一种更好的办法,具体的思路请看以下的详细分析:

思路:

我们要达到的效果是:当“字符超过额定宽度”,则“显示三个小点”。

1、当“字符超过额定宽度”,对于页面来说可能发生的一个改变就是:换行!

2、换行将导致该范围的底线降低。

3、那么,我们的目的则可以换算成:该范围的底线降低时显示三个小点。

图片说明:

超过宽度显示省略号

查看效果

上图是经过我(即29楼的“xfcmamb”)的优化之后,作者发布的第二个方案,要看作者的第一个方案及我第二次优化的方案请点击下面相应的链接:

1、原作者的方案:

http://bbs.blueidea.com/thread-2915238-1-2.html

2、第二次优化的方案:

http://bbs.blueidea.com/thread-2916138-1-1.html

在目前我所知道的方法中,我认为这种方法是最好的方法,但缺点还是有的,比如:

要更具具体的行高制作合适的背景图片,也就是说如果图片做的不合适,“省略号”的显示位置可能会不合理。

如果您有什么观点或更好的办法,欢迎发表留言。

网页版"Firebug"

Firebug 可以说是 FF 最强大的插件之一,它不但可以查看 xhtml 代码、CSS 代码、JS 代码、DOM 结构,还可以临时修改这些代码,是开发不可缺少的利器。这也许您早已知道,但网页版的 "Firebug" 你听说吗?其实也不是 Firebug 了,而是类似于 Firebug ,功能也没有真正的 Firebug 那么强大,仅可以用来查看网页 DOM 结构和一些 CSS 样式。虽然功能不多,但在某些情况下、某些时候已经够了,特别值得一提的是:它可以在多种浏览器:IE 、FF 、Chrome 中正常运行,除了 Opera ,所以在某些时候还是用的上滴。看看效果吧:

网页版Firebug

那这东西在哪呢?下面的代码就是了:

javascript:function%20loadScript(scriptURL)%20{
%20var%20scriptElem%20=%20document.createElement('SCRIPT');
%20scriptElem.setAttribute('language',%20'JavaScript');
%20scriptElem.setAttribute('src',%20scriptURL);
%20document.body.appendChild(scriptElem);}
loadScript('http://westciv.com/xray/thexray.js');

用法:

1、复制上面的代码(并把它改成一行,我把它换行是为了防止代码过长而自动隐藏了);

2、打开个网页,等它加载完;

3、在地址栏粘贴刚才复制的代码;

4、出来一个黑框框了吧,OK,可以用了,用鼠标点击某个地方,就能显示DOM 结构和一些 CSS 样式。

IE6支持PNG透明(alpha通道)的4种方法

想特别说明一下,IE6与生俱来就支持png8的索引色透明度,但不支持png的 alpha 透明度。而我们一直要解决的是让IE6支持PNG的 alpha 透明度。下面我收集整理了4种方法,但都是以滤镜、Js、css 等作为基础模拟还原效果,虽然没有真正的解决alpha透明度问题,但也总算解决了燃眉之急。

IE6支持png8透明:

IE6与生俱来就支持png8的索引色透明度,但不支持png或8位以上的 alpha 透明度。而对于非动画的GIF建议你使用PNG8,因为体积会更小。

测试实例:http://blog.gulu77.com/demo/200809/test_IE6png8/

1、AlphaImageLoader 筛选器

使用简介:在每个标签样式中插入:

filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=’image.png’, sizingMethod=’scale’)

官方原文:http://support.microsoft.com/kb/294714/zh-cn go

测试实例:http://blog.gulu77.com/demo/200809/test_AlphaImageLoader/

2、PNG Transparency in IE

使用简介:相对来说比较简洁,使用一段包含滤镜的JavaScript 就可以模拟图片或背景 PNG alpha 透明度。

官方原文:http://codingforums.com/archive/index.php?t-80555.html go

测试实例:http://blog.gulu77.com/demo/200809/test_PNGTransparncyinIE/

3、IE PNG Fix v1.0 / 2.0 Alpha 2

使用简介:页面标签使用behavior:url(”iepngfix.htc”);来调用外部包含js、css的iepngfix.htc文件來修正PNG alpha 透明度。

官方原文:http://www.twinhelix.com/css/iepngfix/ go

测试实例:http://blog.gulu77.com/demo/200809/test_iepngfix/

4、IE7/IE8 JavaScript library

使用简介:ie7/ie8-js是一个解决IE与W3C标准的冲突的JS库,使微软的IE的行为像一个Web标准兼容的浏览器,支持更多的W3C标准。

官方原文:http://code.google.com/p/ie7-js/ go

测试实例:http://blog.gulu77.com/demo/200809/test_ie7-js/

全部实例打包下载:http://blog.gulu77.com/demo/200809/test_png.rar

以上内容转自:Gulu77

原文地址:http://blog.gulu77.com/?p=147

还发现一个方法:belatedPNG 。具体方法是将下面的代码插到<head></head>之间:

<!--[if IE 6]>
<script src="DD_belatedPNG_0.0.7a-min.js"></script>
<script>
DD_belatedPNG.fix('*');
</script>
<![endif]-->

此方法能同时解决图片和背景问题。

所用到的 js 文件您可以到作者的博客上下载,地址是:

http://www.dillerdesign.com/experiment/DD_belatedPNG/

Page 1 of 1612345678910»...Last »