利用jQuery简单实现产品展示图片左右滚动功能(示例代码)


Posted in Javascript onJanuary 02, 2014

最近要做一个产品展示功能,由于产品比较多,一屏展示不完,所以想要做一个通过点击进行翻页的效果,在网上找了几个都不大好用,最后只能自己动手写了。

效果如下所示:

利用jQuery简单实现产品展示图片左右滚动功能(示例代码)

原理比较简单:将要滚动显示的区域的CSS的override设为hidden,宽度设成一个比较大的值,如4000px,然后每次点击上一页或下一页的按钮时,计算当前页数,如果已经到了最后一页,则回到第一页,滚动是通过控制div的left属性实现的,需要两个div,外面的div的position设为retative,里面的DIV的position设为absolute。

主要代码如下:

HTML:

<div id="product">
 <h2><span class="arrow">arrow</span>产品展示</h2>
 <span class="prev"></span>
 <div id="content">
 <div id="content_list">
 <dl>
  <dt><img src="images/product1.jpg"/></dt>
  <dd>数据采集移动终端</dd>
 </dl>
 <dl>
  <dt><img src="images/product2.jpg"/></dt>
  <dd>数据采集移动终端</dd>
 </dl>
 <dl>
  <dt><img src="images/product3.jpg"/></dt>
  <dd>数据采集移动终端</dd>
 </dl>
 <dl>
  <dt><img src="images/product3.jpg"/></dt>
  <dd>数据采集移动终端</dd>
 </dl>
 <dl>
  <dt><img src="images/product1.jpg"/></dt>
  <dd>数据采集移动终端1</dd>
 </dl>
 <dl>
  <dt><img src="images/product1.jpg"/></dt>
  <dd>数据采集移动终端1</dd>
 </dl>
 <dl>
  <dt><img src="images/product1.jpg"/></dt>
  <dd>数据采集移动终端1</dd>
 </dl>
 </div>
 </div>
 <span class="next"></span>
</div>

CSS:
#product {
 width:720px;
 height:200px;
 border:1px solid #ccc;
 margin:0 5px 5px 0;
 float:left;
}
#product div#content {
 position:relative;
 width:690px;
 height:160px;
 display:inline-block;
 overflow:hidden;
 float:left;
}
#product div#content_list {
 position:absolute;
 width:4000px;
}
#product dl{
 width:160px;
 height:150px;
 float:left;
 margin:10px 4px;
 padding:2px 2px;
}
#product dl:hover {
 border:1px solid #333;
 background:#ccc;
}
#product dl dt {}
#product dl dt img {
 width:160px;
 height:120px;
 border:none;
}
#product dl dd {
 text-align:center;
}
#product span.prev{
 cursor:pointer;
 display:inline-block;
 width:15px;
 height:150px;
 background:url(../images/arrow_l.gif) no-repeat left center;
 float:left;
}
#product span.next{
 cursor:pointer;
 display:inline-block;
 width:15px;
 height:150px;
 background:url(../images/arrow_r.gif) no-repeat left center;
 float:right;
}

js代码
$(function(){
    var page = 1;
    var i = 4; //每版放4个图片
    //向后 按钮
    $("span.next").click(function(){    //绑定click事件
   var content = $("div#content"); 
   var content_list = $("div#content_list");
   var v_width = content.width();
   var len = content.find("dl").length;
   var page_count = Math.ceil(len / i) ;   //只要不是整数,就往大的方向取最小的整数
   if( !content_list.is(":animated") ){    //判断“内容展示区域”是否正在处于动画
     if( page == page_count ){  //已经到最后一个版面了,如果再向后,必须跳转到第一个版面。
    content_list.animate({ left : '0px'}, "slow"); //通过改变left值,跳转到第一个版面
    page = 1;
     }else{
    content_list.animate({ left : '-='+v_width }, "slow");  //通过改变left值,达到每次换一个版面
    page++;
    }
   }
   });
    //往前 按钮
    $("span.prev").click(function(){
      var content = $("div#content"); 
   var content_list = $("div#content_list");
   var v_width = content.width();
   var len = content.find("dl").length;
   var page_count = Math.ceil(len / i) ;   //只要不是整数,就往大的方向取最小的整数
   if(!content_list.is(":animated") ){    //判断“内容展示区域”是否正在处于动画
     if(page == 1 ){  //已经到第一个版面了,如果再向前,必须跳转到最后一个版面。
     content_list.animate({ left : '-='+v_width*(page_count-1) }, "slow");
    page = page_count;
   }else{
    content_list.animate({ left : '+='+v_width }, "slow");
    page--;
   }
  }
    });
});
Javascript 相关文章推荐
改进版通过Json对象实现深复制的方法
Oct 24 Javascript
在JavaScript中重写jQuery对象的方法实例教程
Aug 25 Javascript
Javascript中的匿名函数与封装介绍
Mar 15 Javascript
不同js异步函数同步的实现方法
May 28 Javascript
js实现图片淡入淡出切换简易效果
Aug 22 Javascript
jQuery validate插件功能与用法详解
Dec 15 Javascript
详解vue 中使用 AJAX获取数据的方法
Jan 18 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
Mar 17 Javascript
不使用JavaScript实现菜单的打开和关闭效果demo
May 01 Javascript
JavaScript生成指定范围随机数和随机序列的方法
May 05 Javascript
js实现鼠标点击飘爱心效果
Aug 19 Javascript
vue移动端下拉刷新和上滑加载
Oct 27 Javascript
使用简洁的jQuery方法实现隔行换色功能
Jan 02 #Javascript
快速解决jQuery与其他库冲突的方法介绍
Jan 02 #Javascript
js/jQuery简单实现选项卡功能
Jan 02 #Javascript
jQuery(js)获取文字宽度(显示长度)示例代码
Dec 31 #Javascript
js判断字符长度以及中英文数字等
Dec 31 #Javascript
checkbox全选所涉及到的知识点介绍
Dec 31 #Javascript
用js+iframe形成页面的一种遮罩效果的具体实现
Dec 31 #Javascript
You might like
PHP rsa加密解密使用方法
2015/04/27 PHP
微信支付开发订单查询实例
2016/07/12 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
php中使用array_filter()函数过滤数组实例讲解
2021/03/03 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
Dojo之路:如何利用Dojo实现Drag and Drop效果
2007/04/10 Javascript
利用javascript实现一些常用软件的下载导航
2009/08/03 Javascript
Javascript 刷新全集常用代码
2009/11/22 Javascript
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
jQuery 无刷新分页实例代码
2013/11/12 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
jquery实现简单文字提示效果
2015/12/02 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
2016/08/01 Javascript
EasyUI 结合JS导出Excel文件的实现方法
2016/11/10 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
js实现轮播图的完整代码
2020/10/26 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
2020/02/01 jQuery
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
2020/04/07 Javascript
[02:32]DOTA2亚洲邀请赛 VG战队巡礼
2015/02/03 DOTA
python刷投票的脚本实现代码
2014/11/08 Python
浅谈python中截取字符函数strip,lstrip,rstrip
2015/07/17 Python
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
2015/12/31 Python
Python 支付整合开发包的实现
2019/01/23 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
2020/01/17 Python
python实现查找所有程序的安装信息
2020/02/18 Python
python中rb含义理解
2020/06/18 Python
keras CNN卷积核可视化,热度图教程
2020/06/22 Python
英国汽车零件购物网站:GSF Car Parts
2019/05/23 全球购物
中专自我鉴定范文
2013/10/16 职场文书
人民调解协议书范本
2014/10/11 职场文书
关于车尾的标语大全
2015/08/11 职场文书
Python实现的扫码工具居然这么好用!
2021/06/07 Python
python开发的自动化运维工具ansible详解
2021/08/07 Python