【图片轮播特效插件】--- 自学入门

接触jQuery很久了,深深的被其强大的选择器和众多的插件特效所折服,而在实际的项目中为了项目进度,常常都是从网上搜索各种急需的插件。

突然有一天,静静的坐下来,沉淀知识时总是没有太多的惊喜。尤其是提到插件的使用,总是一味的照搬照抄必然得不到成长。避开项目业务中可能会遇到复杂繁琐的项目功能不说,许多简单的功能完全可以自己封装成一个插件,毕竟自己动手产生的乐趣才最有意义。

对于这次jQuery插件的编写,我打算用三篇随笔来完成,尽量总结到方方面面,还希望各位多多拍砖(各位拍砖也是我学习的动力^_^)

首先是开始学习jQuery插件的开发,总结了前人的经验以及网上搜索到的各种教程,下面便是我对插件开发的体会:

1、插件开发遵循常规的框架

这都是布道者们勤劳、智慧的结晶,使用一套经过验证的框架足可避免出现各种奇葩bug,也让二次开发变得更加容易(这会在第三篇随笔中有体现),而我们需要做的便是能在开发工程中体会框架设计中的智慧。就像一个刚建好的空房间,我们只要知道房间的构造、承重墙、管道布线,掌握之后就是开始合理运用其框架开始精装修了。。。

2、插件代码全部放在闭包里面

用了许多插件,大多都能看到这样一段相同的代码

(function($){

  //input your code

})(jQuery);

上面定义了一个jQuery函数,形参是$,函数定义完成后,把jQuery这个实参传递进去,立即调用执行。

这样的好处是,我们在写jQuery插件时,也可以使用这个$别名,而不会与prototype引起冲突。

同时插件里的代码只为自己的插件服务,闭包外的方法则不能调用。

优点:

a)避免全局依赖;

b)避免第三方破坏;

c)兼容jQuery操作符‘$‘和‘jQuery‘

3、提供插件默认选项

插件默认的设置很有必要,而让开发者能够自定义设置,只需要通过jQuery的extend 功能来设置这些选项。

var options = $.extend(defaults,options);

当开发者在调用的时候写了新的参数,插件就会调用新的参数;如果没有写,就会用默认的参数。

4、区别jQuery.fn.extend(object)和jQuery.extend(object)

jQuery为开发插件提供了两个方法:

jQuery.fn.extend(object);//对jQuery.prototype进行扩展,给jQuery对象添加方法(成员函数)

jQuery.extend(object);//扩展jQuery类本身,为类添加新的静态方法

(由于初次尝试自己开发jQuery插件,总结会有许多不足和失误,但随笔内容会随着个人的积累而不断修改更新。还是那句话,欢迎各位拍砖^_^)

-------------------------------------------------------------------------^_^我是分割线----------------------------------------------------------------------

接下来就是开始这次插件开发的设计,这也是非常重要的第一步。确定好合适的功能,对于初学不是很难,但也不能简单到一无是、处派不上场,那也不是我们学习的目的。

最终确定的功能是:

a)图片能每隔一个确定的时间就滚动交替;

b)图片交换,对应的图片标记或编号能及时改变;

c)默认图片从右向左滚动,开发者可自定义滚动方向:左->右、上->下、下->上。

带扩展功能:

a)添加touch事件;

b)点击图片对应标记或编号时,能对应展示相应的图片;

c)添加“上一张”、“下一张”按钮

-----------------------------------------------------------^_^分割线君----------------------------------------------------------------------

有这个写插件的想法也是不久前写的一个图片交换效果产生的(话说,那效果写出来,感觉就是一个字---“真搓”),把代码贴出来,刺激一下自己(求拍砖):

 1 <script type="text/javascript">
 2     $("#rotate .pack .left").hover(
 3                 function(){
 4                     $("#rotate .pack .left .prot").show();
 5                 },
 6                 function(){
 7                     $("#rotate .pack .left .prot").hide();
 8                 }
 9             );
10
11             $("#rotate .pack .right").hover(
12                 function(){
13                     $("#rotate .pack .right .next").show();
14                 },
15                 function(){
16                     $("#rotate .pack .right .next").hide();
17                 }
18             );
19
20             $("#rotate .pack .left").click(
21                 function(){
22                     var id = $("#rotate .pack img").attr("id");
23                     var n = parseInt(id.substr(1));
24                     n = n == 0 ? 4 : (n-1);
25                     $("#rotate .pack img").attr({"src":Imgs[n],"id":"p"+n});
26                     $("#rotate .pack .rotate_btn .btns").css({"background-color":"yellow","color":"#000"});
27                     $("#rotate .pack .rotate_btn .btn_"+n).css({"background-color":"red","color":"#fff"});
28                 }
29             );
30
31             $("#rotate .pack .right").click(
32                 function(){
33                     var id = $("#rotate .pack img").attr("id");
34                     var n = parseInt(id.substr(1));
35                     n = n == 4 ? 0 : (n+1);
36                     $("#rotate .pack img").attr({"src":Imgs[n],"id":"p"+n});
37                     $("#rotate .pack .rotate_btn .btns").css({"background-color":"yellow","color":"#000"});
38                     $("#rotate .pack .rotate_btn .btn_"+n).css({"background-color":"red","color":"#fff"});
39                 }
40             );
41
42             $("#rotate .pack .rotate_btn .btns").click(
43                 function(){
44                     var text = parseInt($(this).text())-1;
45                     $("#rotate .pack img").attr({"src":Imgs[text],"id":"p"+text});
46                     $("#rotate .pack .rotate_btn .btns").css({"background-color":"yellow","color":"#000"});
47                     $("#rotate .pack .rotate_btn .btn_"+text).css({"background-color":"red","color":"#fff"});
48                 }
49             );
50 </script>

虽然能实现点击按钮切换图片,最然能点击标号切换图片,最然。。。。。但是,哎,这代码搓的!!!太简单了,html代码就不贴了,我去反思,脑补下。

下一篇随文将推到之前的一切,将确定的功能封装成一个jQuery插件。

时间: 2024-10-17 22:35:48

【图片轮播特效插件】--- 自学入门的相关文章

【图片轮播特效插件】--- 效果实现

忙了一段时间,终于能好好静下来写这篇博文了,那废话就不多说,直接开始吧. 按照上一篇对于jQuery插件的学习掌握,首先就是搭好一个合适的框架,定好插件中需要用到的属性,给其他使用者留出使用接口: 1 (function($){ 2 //各种默认的属性参数 3 var defaults = { 4 width: 400, 5 height: 200, 6 direction:'left', 7 imgs:[{ 8 src:'p0.jpg', 9 link:'http://www.cnblogs.

20款带左右箭头的焦点图片轮播特效代码

20款带左右箭头的焦点图片轮播特效代码分享 html5带倒影3D图片叠加轮播切换特效 jQuery slide图片自动轮播滚动插件 jQuery焦点图插件带按钮控制图片轮播滚动代码 jquery仿hao123带新闻标题图片轮播滚动效果 jQuery仿瑞丽全屏透明遮罩图片轮播滚动代码 jQuery带网上开户表单的焦点图轮播代码 jquery左右箭头控制带缩略图片轮播切换 jQuery responsiveslides.js响应式图片轮播特效 jQuery OwlCarousel图片滚动插件世界杯图

图片轮播小插件

在手上工作完成之余,自己写了一个jQuery小插件,针对我们现在所用到的图片轮播特效进行一个封装,没事就写写,记录我的前端历程上的点点滴滴. 编写背景: 在web端经常会看到图片滚来滚去的,自己就想一个方式,让前端团队开发这些特效时间更快,效果更好,实现特效的方式更多,可以随意替换图片轮播的方式,兼容各个浏览器,是我的初衷,也是对自己的js编程经验一个积攒,我相信带着兴趣做自己喜欢的事,是工作生活的初衷意义... 插件介绍: 本“小插”是基于jQuery上进行开发,对所播放的图片大小做了自适应,

图片轮播图插件

闲来无事,自己搞了一个图片轮播的jQuery插件,话不多说,直接上代码咯!!!!! 1.HTML模块的代码很简单.写一个容器就可以了,之后往里面加入图片轮播的效果 <div class="index-banner" id="banner"></div> 2.样式代码 1 .index-banner { 2 position: relative; 3 width:1280px; 4 height: 461px; 5 margin:0 auto;

web前端之图片轮播特效

这周用jquery来实现网页上常见的图片轮播效果,下边是效果图: 当我们用鼠标点击上图中的向左以及向右按钮时候,图片会发生相应的切换效果,代码如下: index.html源代码: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus

图片轮播图插件的使用 unslider!!!

1.百度图片轮播图unslider,第一个就会出现jquery unslider轮播图,点击进去,下载网站提供的文件,解压,内部有我们需要使用的各种js,图片等. 2.在自己的eclipse或者intellij idea中搭建一个可以正常运行的web工程 3.在WEB-INF下创建一个jsp文件夹,jsp文件夹下创建一个lunbo.jsp,颜色标记的代码是需要注意的!在WebRoot下创建js和img文件夹,存放js和所需要的图片. 页面的代码: <%@ page language="ja

原生js和jquery实现图片轮播特效

(1)首先是页面的结构部分 对于我这种左右切换式 1.首先是个外围部分(其实也就是最外边的整体wrapper) 2.接着就是你设置图片轮播的地方(也就是一个banner吧) 3.然后是一个图片组(可以用新的div 也可以直接使用 ul-->li形式) 4.然后是图片两端的左箭头和右箭头5.然后是一个透明背景层,放在图片底部 6.然后是一个图片描述info层,放在透明背景层的左下角(div 或 ul-->li) 7.然后是一个按钮层,用来定位图片组的index吧,放在透明背景层的右下角(div

JS——网页图片轮播特效

焦点图轮播 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"><head> 3 <meta http-equiv="Content-T

简易版的图片轮播效果 插件形式

写的不是很完善只实现了效果  先码上 我会慢慢整合改进 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"