当前位置:  编程技术>WEB前端

自己使用jquery写的一个无缝滚动的插件

    来源: 互联网  发布时间:2014-08-25

    本文导语:  效果图:  html代码: 代码如下: 无缝滚动,向右滚动 无缝滚动,向左滚动 111111111111 222222222222 3333333333333 4444444444444 5555555555555 6666666666666 7777777777777 8888888888888 9999999999999 无缝滚动,向上滚动 111111111111 222222222222 3333333333333 444...

效果图:

 

html代码:
代码如下:

无缝滚动,向右滚动

  • f1

  • f2

  • f3

  • f4

  • f5

  • f6

  • f7



无缝滚动,向左滚动

  • 111111111111

  • 222222222222

  • 3333333333333

  • 4444444444444

  • 5555555555555

  • 6666666666666

  • 7777777777777

  • 8888888888888

  • 9999999999999


无缝滚动,向上滚动

  • 111111111111

  • 222222222222

  • 3333333333333

  • 4444444444444

  • 5555555555555

  • 6666666666666

  • 7777777777777

  • 8888888888888

  • 9999999999999


无缝滚动,向下滚动

  • 111111111111

  • 222222222222

  • 3333333333333

  • 4444444444444

  • 5555555555555

  • 6666666666666

  • 7777777777777

  • 8888888888888

  • 9999999999999


无缝滚动,非ul,li标签组合,向右滚动

111111111111


222222222222


3333333333333


4444444444444


5555555555555


6666666666666


7777777777777


8888888888888


9999999999999



不动

  • 111111111111

  • 222222222222

  • 3333333333333

  • 4444444444444

  • 5555555555555

  • 6666666666666

  • 7777777777777

  • 8888888888888

  • 9999999999999



css代码:
代码如下:

ul, li,h1 { margin: 0; padding: 0; list-style-type:none;}
ul,div { height: 200px; border: 1px solid red; width: 300px; padding: 30px;margin:10px;list-style-type:none;}
li,p { height: 30px; line-height: 30px; margin-top: 10px; background-color: Gray; color: Yellow; margin-left:10px;}
#guoul1{ width:1000px; height:188px;margin: 0; padding: 0;}
#guoul1 li{ width:300px; height:188px;margin: 0; padding: 0; margin-left:10px;}

js插件代码:
代码如下:

; (function ($) {
var defaults = {
dir: "left", //none:不动,up:上,right:右,down:下,right:左
delay: 30,//执行时间
};
$.fn.gysContentDisplay = function (opt) {
opt = $.extend({}, defaults, opt);

//全局变量区域
var obj = $(this); //当前对象
obj.css({ "overflow": "hidden" }); //初始化元素
if (opt.dir == "none") return;
var objLis = obj.children(); //对象中的子元素
objLis.css({ "overflow": "hidden" });
var objSize = 0; //外框尺寸
var scrollEvent = "scrollLeft"; //滚动条的滚动方向
var liTotalSize = 0, liTotalSizeOther = 0; //每个li元素的尺寸(宽或者高),克隆之后的总尺寸
var scrollSize = 0, //滚动条的实际距离
scrollSizeMax = 0, //滚动条的最大距离
scrollSizeMin = 0; //滚动条的最小距离
var interval = ""; //记录setInterval

if (opt.dir == "up" || opt.dir == "down") {//上下
objSize = obj.innerHeight();
scrollEvent = "scrollTop";
obj.css({ "padding-top": 0, "padding-bottom": 0 }).height(objSize);
}
else if (opt.dir == "left" || opt.dir == "right") {//左右
objSize = obj.innerWidth();
scrollEvent = "scrollLeft";
obj.css({ "padding-left": 0, "padding-right": 0 }).width(objSize);
}
else {
alert("你的dir参数有误");
}

var getChildTotalSize = function (dir) {// 定义获取li总尺寸的方法
if (dir == "left" || dir == "right") {
objLis.css("float", "left");
return function () {
objLis.each(function () {
liTotalSize += $(this).outerWidth(true);
});
}
}
else if (dir == "up" || dir == "down") {
objLis.css("float", "none");
return function () {
objLis.each(function () {
liTotalSize += $(this).outerHeight(true);
});
}
}
} (opt.dir);
getChildTotalSize(); //获得所有的li的总尺寸,在方法中赋值

(function () {
var cloneCount = Math.ceil(objSize * 2 / liTotalSize); //赋值子元素多少遍
var cloneHtmlNow = "", cloneHtmlStart = obj.html(); //原始的子元素字符串

for (var i = 0; i < cloneCount; i++) {
cloneHtmlNow += cloneHtmlStart;
}
obj.append(cloneHtmlNow);
liTotalSizeOther = (cloneCount + 1) * liTotalSize; //获取添加了子元素之后的长度
})();


if (opt.dir == "left" || opt.dir == "right") {
obj.css({ "position": "relative", "z-index": 0 });
obj.children().css({ "position": "absolute", "z-index": 1 });
var left = 0;
obj.children().each(function () {
$(this).css({ "left": left + "px", "top": 0 });
left += $(this).outerWidth(true);
});
}


//滚动条的滚动方法
function scrollChange(dir) {
if (dir == "left" || dir == "up") {
obj[scrollEvent](0);
scrollChange = function () {
scrollSize++;
if (scrollSize >= liTotalSize) scrollSize = 0;
obj[scrollEvent](scrollSize);
}
}
else if (dir == "right" || dir == "down") {
scrollSizeMax = liTotalSizeOther - objSize;
obj[scrollEvent](scrollSizeMax);
scrollSize = scrollSizeMax;
scrollSizeMin = scrollSizeMax - liTotalSize;
scrollChange = function () {
scrollSize--;
if (scrollSize

    
 
 

您可能感兴趣的文章:

  • jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
  • JQuery插件fancybox无法在弹出层使用左右键的解决办法
  • gcc 编译器 有没有 像 vc中使用vc assitant 一样的插件啊
  • VIM 注释插件使用
  • 使用Red Hat 8.0浏览网页时,很多插件无法显示?
  • 带fastestmirror插件使用yum结果无法比较源的快慢
  • 使用JMF需要安装插件吗??
  • jquery使用jquery.zclip插件复制对象的实例教程
  • Jquery图片延迟加载插件jquery.lazyload.js的使用方法
  • 请教vim使用插件的问题
  • jquery 表单验证插件Parsley.js使用说明
  • jquery使用jxl插件导出excel示例
  • jquery.validate.js插件使用经验记录
  • jQuery瀑布流插件Wookmark使用实例
  • jquery插件jTimer(jquery定时器)使用方法
  • php不使用插件导出excel的简单方法
  • Eclipse的PHP插件PHPEclipse安装和使用
  • 使用jquery prev()方法找到同级的前一个元素 iis7站长之家
  • jQuery表格插件ParamQuery简单使用方法示例
  • jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jquery代码-如何使用jQuery来解析xml
  • 使用jquery局部刷新(jquery.load)从数据库取出数据
  • jquery代码-如何使用jQuery来检测右键和左键的鼠标单击两种情况
  • jquery代码-如何使用多个属性来进行过滤
  • jQuery.holdReady()使用方法
  • 使用jQuery重置(reset)表单的方法
  • jquery使用$(element).is()来判断获取的tagName
  • 使用Jquery获取带特殊符号的ID 标签的方法
  • 使用jquery prev()方法找到同级的前一个元素
  • jQuery 1.9使用$.support替代$.browser的使用方法
  • jquery的live使用注意事项
  • jquery链式操作的正确使用方法
  • jquery代码-如何正确使用ToggleClass
  • 通过$(this)使用jQuery包装后的方法或属性
  • 使用JS或jQuery模拟鼠标点击a标签事件代码
  • JQuery中使用ajax传输超大数据的解决方法
  • jquery组件使用中遇到的问题整理及解决
  • 关于jquery中全局函数each使用介绍
  • jQuery 回车事件enter使用示例
  • jquery中交替点击事件toggle方法的使用示例
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • c#中SAPI使用总结——SpVoice的使用方法
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3