博客园将不进行维护,转站到我的个人博文:地址


/*---------控制滚动图片v1(作者:SFLYQ)-----------
Options 配置对象,(用来配置控制元素的dom位置,初始化一些必要的对象或者方法)
DoIni 初始化操作(初始化元素的jq对象,以及事件绑定等)
DoMove 控制图片现在模块的移动(控制的方向又用户传入)
BindMoveItem根据dom位置,绑定这个元素为初始化选中,并显示在第一个,
*/
效果地址:http://pro9505d48a.isitestar.cn/

代码下载地址:https://github.com/SFLAQiu/SFLAQiu.JQPack.ControlMoveDiv/

 <!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">
<head>
<title></title>
<link href="Style/Default.css" type="text/css" rel="stylesheet"/>
<style type="text/css">
.iconLeft{float:left; display:block; border:1px solid green; height:150px; width:50px;}/*左边按钮*/
.iconRight { float:left;display:block; border:1px solid green; height:150px; width:50px;}/*右边按钮*/
.picList{float:left; position: absolute; width:800px; left:0px; }/*移动模块*/
.picList li{float:left; border:1px solid red; border:1px solid red; height:150px; width:200px;list-style:none; }/*移动项*/
.picWrap{ float:left; overflow:hidden; height:150px; width:800px; border:1px solid blue;}/*移动范围模块*/
/*效果*/
.on{ background-color:#808080;}/*选中效果*/
</style> </head>
<body>
<div>
<a class="iconLeft" href="javascript:;" onclick="MoveByBtn.DoMove('l');return false;"><</a>
<div id="RangeBox" style="position: relative;" class="picWrap">
<div id="MoveBox" class="picList">
<ul>
<li>111111<span style="display:none;color:red;">√</span></li>
<li>222222<span style="display:none;color:red;">√</span></li>
<li>333333<span style="display:none;color:red;">√</span></li>
<li>4444444<span style="display:none;color:red;">√</span></li>
<li>5555<span style="display:none;color:red;">√</span></li>
<li>666<span style="display:none;color:red;">√</span></li>
<li>77<span style="display:none;color:red;">√</span></li>
<li>8<span style="display:none;color:red;">√</span></li>
<li>9<span style="display:none;color:red;">√</span></li>
<li>10<span style="display:none;color:red;">√</span></li>
<li>11<span style="display:none;color:red;">√</span></li>
<li>12<span style="display:none;color:red;">√</span></li>
</ul>
</div>
</div>
<a class="iconRight" href="javascript:;" onclick="MoveByBtn.DoMove('r');return false;">></a>
</div> <script src="JS/jquery.1.9.1.min.js" type="text/javascript" ></script>
<script src="JS/jquery.easing.min.js" type="text/javascript" ></script>
<script type="text/javascript" >
/*---------控制滚动图片v1(作者:SFLYQ)-----------
Options 配置对象,(用来配置控制元素的dom位置,初始化一些必要的对象或者方法)
DoIni 初始化操作(初始化元素的jq对象,以及事件绑定等)
DoMove 控制图片现在模块的移动(控制的方向又用户传入)
BindMoveItem根据dom位置,绑定这个元素为初始化选中,并显示在第一个,
*/
var MoveByBtn = {};
MoveByBtn = {
Options: {
moveBoxDom: "#MoveBox",//移动块html元素的dom位置
moveBoxItemsDom: "#MoveBox ul li",//移动项html元素的dom位置
moveRangeBoxDom: "#RangeBox",//移动范围块html元素的dom位置
selectItemsDom: "#MoveBox ul li",//选中项html元素的dom位置
selectClass: "on",//选中效果类名
clickDoFn: function () { }//点击选中项后操作(在所有操作之后)
},
moveItemLength: 0,//移动项的总个数
moveWidth: 0,//每次移动的长度
moveBoxJq: null,//移动块的JQ对象
moveRangeBoxJq: null,//移动范围块的JQ对象
moveBoxItemJqs: null,//移动项JQ对象集合
selectItemsJq: null,//选中项JQ对象集合
// 初始化操作
DoIni: function (iniObj) {
MoveByBtn.moveBoxJq = $(MoveByBtn.Options.moveBoxDom);
MoveByBtn.moveRangeBoxJq = $(MoveByBtn.Options.moveRangeBoxDom);
MoveByBtn.moveBoxItemJqs = $(MoveByBtn.Options.moveBoxItemsDom);
MoveByBtn.selectItemsJq = $(MoveByBtn.Options.selectItemsDom); MoveByBtn.Options = $.extend(MoveByBtn.Options, iniObj);
MoveByBtn.moveWidth = $(MoveByBtn.moveBoxItemJqs[0]).outerWidth(true);
MoveByBtn.moveItemLength = MoveByBtn.moveBoxItemJqs.length;
var getRestrictWidth = MoveByBtn.moveBoxItemJqs.length * MoveByBtn.moveWidth - MoveByBtn.moveRangeBoxJq.width();
//初始化点击
MoveByBtn.moveBoxItemJqs.click(function () {
MoveByBtn.DoItemClick(this);
return false;
}); //初始化范围这个的宽度
MoveByBtn.moveBoxJq.css({ "width": MoveByBtn.moveItemLength * MoveByBtn.moveWidth + "px" });
MoveByBtn.moveBoxJq.css({ left: "0px", position: "absolute" });
},
//移动操作
DoMove: function (movePos) {
MoveByBtn.moveBoxJq.stop(false, true);
var getNowLeft = parseInt(MoveByBtn.moveBoxJq.css("left"), 10);
var needMoveLeft = 0;
MoveByBtn.DoItemSelect(movePos);
if (movePos == "r") {
needMoveLeft = getNowLeft - MoveByBtn.moveWidth;
var getRestrictWidth = MoveByBtn.moveBoxItemJqs.length * MoveByBtn.moveWidth - MoveByBtn.moveRangeBoxJq.width();
if (needMoveLeft * -1 > getRestrictWidth) return;
} else if (movePos == "l") {
if (getNowLeft == 0) return;
needMoveLeft = getNowLeft + MoveByBtn.moveWidth;
}
MoveByBtn.moveBoxJq.stop(false, true).animate({ left: needMoveLeft + "px" }, 500, "easeOutQuint", function () { });
},
//根据movePos(移动方向)控制图片滚动切换的方向,并触发图片被选中的效果和点击选中图片的操作 l=left r=right
DoItemSelect: function (movePos) {
var nowSelJq = $(MoveByBtn.Options.moveBoxItemsDom + "[NowSelect='1']");
if (!nowSelJq[0]) return;
var getSelNum = MoveByBtn.moveBoxItemJqs.index(nowSelJq);
var needSelNum = 0;
if (movePos == "l") {
needSelNum = getSelNum - 1;
} else if (movePos == "r") {
needSelNum = getSelNum + 1;
}
//选中效果
if (MoveByBtn.DoSelectEff(needSelNum)) {
//选中后调用点击操作
MoveByBtn.DoItemClick(MoveByBtn.moveBoxItemJqs.eq(needSelNum)[0]);
}
return;
},
//被选中的效果
DoSelectEff: function (needSelNum) {
if (needSelNum >= MoveByBtn.moveItemLength || needSelNum < 0) return false;//如果被选中的 位置数不存在就直接跳出
MoveByBtn.selectItemsJq.filter("." + MoveByBtn.Options.selectClass).removeClass(MoveByBtn.Options.selectClass);
var selItemJq = MoveByBtn.selectItemsJq.eq(needSelNum);
if (!selItemJq[0]) return false;
MoveByBtn.moveBoxItemJqs.attr({ "NowSelect": "2" });
MoveByBtn.moveBoxItemJqs.eq(needSelNum).attr({ "NowSelect": "1" });
MoveByBtn.selectItemsJq.eq(needSelNum).addClass(MoveByBtn.Options.selectClass);
return true;
},
//点击操作,(添加选中的效果,并判断是否触发外部传入的点击操作,这个操作在所有操作之后)
DoItemClick: function (moveItemDom) {
var getIndex = MoveByBtn.moveBoxItemJqs.index(moveItemDom);//被选中的位置
if (getIndex >= MoveByBtn.moveItemLength || getIndex < 0) return;//如果被选中的 位置数不存在就直接跳出
MoveByBtn.DoSelectEff(getIndex);
//用户配置了 Options 的点击操作的配置就执行
if (MoveByBtn.Options.clickDoFn) MoveByBtn.Options.clickDoFn(moveItemDom);
},
//根据dom位置,绑定这个元素为初始化选中,并显示在第一个,
BindMoveItem: function (bingItemDom) {
if (!$(bingItemDom)[0]) return;
var getNum = MoveByBtn.moveBoxItemJqs.index($(bingItemDom));//元素在集合中所对应的位置数
var needMoveLeft = getNum * MoveByBtn.moveWidth * (-1);
var getRestrictWidth = MoveByBtn.moveBoxItemJqs.length * MoveByBtn.moveWidth - MoveByBtn.moveRangeBoxJq.width();
MoveByBtn.DoItemClick(bingItemDom);
MoveByBtn.DoSelectEff(getNum);
if (needMoveLeft * -1 > getRestrictWidth) { MoveByBtn.moveBoxJq.css({ left: getRestrictWidth * (-1) + "px" }); return; }
MoveByBtn.moveBoxJq.css({ left: needMoveLeft + "px" });
}
};
//初始化
MoveByBtn.DoIni({
moveBoxDom: "#MoveBox", moveBoxItemsDom: "#MoveBox ul li", moveRangeBoxDom: "#RangeBox", selectItemsDom: "#MoveBox ul li", selectClass: "on", clickDoFn: function (moveItemDom) {
BindSelBigPic(moveItemDom);
return false;
}
}); //点击操作,拓展
function BindSelBigPic(moveItemDom) {
$("#MoveBox ul li span").hide();
$(moveItemDom).find("span").show();
}
//初始化绑定选中位置,(移动上去,并选中)
MoveByBtn.BindMoveItem($("#MoveBox ul li")[2]);
//MoveByBtn.BindMoveItem($("#MoveBox ul li")[7]);
</script>
</body>
</html>

JQ封装切换滚动功能的更多相关文章

  1. jq封装-无缝滚动效果

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  2. 怎么用jq封装插件

    怎么用jq封装插件 以隔行变色为例 实现原理:1.找到表格的奇偶行,然后添加不同的class,激活行高亮显示也很简单,只要判断mouseover事件,然后添加一个class,mouseout的时候,再 ...

  3. jq封装选项卡写法

    jq普通选项卡写法: var tabTag=$('#tabon'); var tabon=tabTag.find('li');//菜单栏 var tabCon=$(".hidden" ...

  4. jquery 回车切换 tab功能

    挺有趣的,Jquery 回车切换tab功能的实现哦 <html> <head><!--jquery库.js--></head> <body> ...

  5. jquery图片滚动仿QQ商城带左右按钮控制焦点图片切换滚动

    jquery图片滚动仿QQ商城带左右按钮控制焦点图片切换滚动 http://www.17sucai.com/pins/demoshow/382

  6. Android应用切换皮肤功能实现(二)

    原文地址http://www.apkbus.com/forum.php?mod=viewthread&tid=149034&highlight=%E7%9A%AE%E8%82%A4 上 ...

  7. CI框架主题切换的功能

    CI框架主题切换的功能 本人接触到这个框架不就,属于菜鸟 , 公司现在用CI框架做项目 ,老大要做一个主题切换的功能,说明功能的要求我的脑子里瞬间有几个想法. 脑子里最简单的就是设置全局变量 如 : ...

  8. UE4笔记:利用Widget设计一个切换材质功能

    UE4引擎中的Widget蓝图是一个重要的工具,可用于场景中的页面叠加,镜头绑定,场景切换等多处地方,在这里笔者介绍一种利用控件蓝图和场景中物体进行信息交互的方法,直观的体现就是进行物体的材质切换. ...

  9. 基于jQ+CSS3页面滚动内容元素动画特效

    今天给大家分享一款基于jQ+CSS3页面滚动内容元素动画特效.这是一款基于jQuery+CSS3实现的页面滚动代码.该实例适用于适用浏览器:360.FireFox.Chrome.Safari.Oper ...

随机推荐

  1. Spring mvc Interceptor 解决Session超时配置流程

    最近公司内部框架中对Session超时这一功能未实现,由于采用iframe结构,Session超时后,当点击左侧系统菜单时,会在iframe的右侧再次弹出登陆框. 该问题是由于没有设置拦截器造成. 添 ...

  2. [置顶] linux 解压版安装

    1:下载mysql解压版包去官网下载www.mysq.com 下载.下载linux通用版本就好了 2.基本配置 首先,我们准备好Linux环境,我们使用CentOS 5.8进行试验安装.第一步,我们需 ...

  3. Java凝视Override、Deprecated、SuppressWarnings具体解释

    一.什么是凝视     说起凝视,得先提一提什么是元数据(metadata).所谓元数据就是数据的数据.也就是说,元数据是描写叙述数据的.就象数据表中的字段一样,每一个字段描写叙述了这个字段下的数据的 ...

  4. xargs i I{} 参数说明

    find . -type f | xargs -I{} md5sum {} find . -type f -name "*.txt" | xargs -i cp {} /tmp/k ...

  5. Java的递归算法

    递归算法设计的基本思想是:对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到可以直接求解,也就是说到了递推的出口,这样原问题就有递推得解. 关键要抓住的是: (1) ...

  6. WEB网站常见受攻击方式及解决办法

    一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法. 一.跨站脚本攻击(XSS) 跨站脚本攻击(XSS,Cross-site scripting)是 ...

  7. arcgis python 获得所有的工具名称

    #######################import  arcgisscripting import  string; gp = arcgisscripting.create(9.3); ### ...

  8. [转]SharePoint 2010 Download as Zip File Custom Ribbon Action

    在SharePoint 2010文档库中,结合单选框,在Ribbon中提供了批量处理文档的功能,比如,批量删除.批量签出.批量签入等,但是,很遗憾,没有提供批量下载,默认的只能一个个下载,当选择多个文 ...

  9. document.all的用法详解

    all[] 已经被 Document 接口的标准的 getElementByid() 方法和 getElementsByTagName() 方法以及 Document 对象的 getElementsB ...

  10. Integer跟int的区别(备份回忆)

    int与Integer的区别 int 是基本数据类型Integer是其包装类,注意是一个类.为什么要提供包装类呢???一是为了在各种类型间转化,通过各种方法的调用.否则 你无法直接通过变量转化.比如, ...