JQuery 插件制作实践 xMarquee插件V1.0_Javascript教程-查字典教程网
JQuery 插件制作实践 xMarquee插件V1.0
JQuery 插件制作实践 xMarquee插件V1.0
发布时间:2016-12-30 来源:查字典编辑
摘要:插件需求1,向左或者右移动列表中的元素.(注,上下方向也一样的,用css控制列表元素float的方向即可~)2,鼠标移动到某个元素上时,改元...

插件需求

1,向左或者右移动列表中的元素.(注,上下方向也一样的,用css控制列表元素float的方向即可~)

2,鼠标移动到某个元素上时,改元素突出显示(css控制),播放器停止滚动。移开后继续跑马。。

3,可选左右手工导航按钮。

实现原理

移动列表末尾元素到第一个元素前面即可。

将来的扩展(以后用到的话再看吧)

多个元素同时移动;移动时的效果;移动后的回调函数;(注:利用移动后的回调函数可以方便做一个相册插件,有兴趣的自己写下)。做开发的人要记住一句话:Do the simplest thing that could possibly work!做最简单可用的东东,千万别过分设计。

xMarquee API说明

1,dom规约

看下面源码处~2,css示例

看下面源码处~

3,主方法调用

复制代码 代码如下:

<script type="text/javascript">

//<![CDATA[

$("#wk_featured_items").xMarquee({});

//]]>

</script>

插件源码

复制代码 代码如下:

; (function($) {

// Private functions.

var p = {};

p.stop = function(evt) { if (evt) { $(this).addClass(p._opts.on); }; window.clearInterval(p._intervalID); };

p.slide = function() {

if (p._opts.dir == 1) {

p._i.filter(":last").hide().fadeIn(p._opts.fadein).prependTo(p._t);

} else {

if (p._opts.vnum < p._cnt) {

p._i.filter(":first").fadeOut(p._opts.fadeout).appendTo(p._t);

p._i.filter(":eq(" + p._opts.vnum + ")").fadeIn(p._opts.fadein);

} else {

p._i.filter(":first").hide().appendTo(p._t).fadeIn(p._opts.fadein);

};

};

//refresh

p._i = $(p._opts.i, p._t);

//visibility

p._i.filter(":gt(" + (p._opts.vnum - 1) + ")").hide();

}; //slide

p.go = function(evt) {

p.stop();

if (evt) {

$(this).removeClass(p._opts.on);

};

p._intervalID = window.setInterval(function() { p.slide(); }, p._opts.interval);

}; //go

//main plugin body

$.fn.xMarquee = function(options) {

// Set the options.

options = $.extend({}, $.fn.xMarquee.defaults, options);

p._opts = options;

// Go through the matched elements and return the jQuery object.

return this.each(function() {

//NOTE:if wanna support multiple marquee instance,we should cache private variable via $(this).data("v",v)

p._t = this; //marquee target;

//silde items

p._i = $(p._opts.i, p._t);

p._cnt = p._i.size();

p._intervalID = null;

//hide unwanted items

p._i.filter(":gt(" + (p._opts.vnum - 1) + ")").hide();

p._i.hover(p.stop, p.go);

//buttons registeration

$(p._opts.btn0).click(function(evt) { p._opts.dir = 0; p.stop(); p.slide(); return false; }).mouseout(p.go);

$(p._opts.btn1).click(function(evt) { p._opts.dir = 1; p.stop(); p.slide(); return false; }).mouseout(p.go);

//trigger the slidebox

p.go();

});

};

// Public defaults.

$.fn.xMarquee.defaults = {

on: 'cur',

i: 'li', //slide items css selector

interval: 5000,

fadein: 300,

fadeout: 200,

vnum: 4, //visible marquee items

dir: 1, //marquee direaction.1=right;0=left;

btn0: '.prev', //prev button

btn1: '.next'//next button

};

})(jQuery);

打包下载地址

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类