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


/*---------控制滚动图片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. (二)在.net中如何使用Memcached

    Step1:第一步当然是下载Memcached for c# API,

  2. 自己动手Jquery插件

    最近Web应用程序中越来越多地用到了JQuery等Web前端技术.这些技术框架有效地改善了用户的操作体验,同时也提高了开发人员构造丰富客户 端UI的效率.JQuery本身提供了丰富的操作,但是,有时候 ...

  3. 使用ProcDump在程序没有响应时自动收集dump

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:使用ProcDump在程序没有响应时自动收集dump.

  4. 百亿级别数据量,又需要秒级响应的案例,需要什么系统支持呢?下面介绍下大数据实时分析工具Yonghong Z-Suite

    Yonghong Z-Suite 除了提供优秀的前端BI工具之外,Yonghong Z-Suite让用户可以选购分布式数据集市来支持实时大数据分析. 对于这种百亿级的大数据案例,Yonghong Z- ...

  5. [Whole Web, Nods.js, PM2] Passing environment variables to node.js using pm2

    learn how to pass environment variables to your node.js app using the pm2 config file. This is usefu ...

  6. vim字符编码设置

    vim 编码方式的设置 和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括UCS-2.UTF-8 等流行的 Unicode 编码方式.然而不幸的是,和很多来自 Linux ...

  7. Web Services之SOAP学习

    Web Services之SOAP [toc] 什么是SOAP SOAP(Simple Object Access Protocol)简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一 ...

  8. 在Vivado中调用ModelSim生成FSM的状态转移图

    如果我们已经书写了一段FSM代码,现在想倒过来把它转换成为状态转移图,方便我们直观地检查我们书写的状态对不对(在写论文什么的画图太麻烦的时候,有个自动生成的是多方便啊!),应该怎么弄呢?通过在Viva ...

  9. MySQL的链接,查看数据库,使用数据库,查看表

    MySQL的链接,查看数据库,使用数据库,查看表 mysql> show databases; +--------------------+ | Database | +------------ ...

  10. 20160402javaweb 开发模式

    开发案例: 首先,我们确定用xml文件代替数据库,便于测试 建立web工程,基本架构见下图 代码如下: 首先是javabean:User.java package com.dzq.domian; im ...