利用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 相关文章推荐
JavaScript 联动的无限级封装类,数据采用非Ajax方式,随意添加联动
Jun 29 Javascript
用js实现小球的自由移动代码
Apr 22 Javascript
关于js遍历表格的实例
Jul 10 Javascript
web css实现整站样式互相切换
Oct 29 Javascript
JS和Jquery获取和修改label的值的示例代码
Jan 15 Javascript
JavaScript中对象属性的添加和删除示例
May 12 Javascript
jQuery制作可自定义大小的拼图游戏
Mar 30 Javascript
关于javascript中dataset的问题小结
Nov 16 Javascript
JS跨域解决方案之使用CORS实现跨域
Apr 14 Javascript
原生JS实现几个常用DOM操作API实例
Jan 19 Javascript
关于Vue实现组件信息的缓存问题
Aug 23 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
Oct 31 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优化那些事(经验分享)
2014/11/27 PHP
在 PHP 和 Laravel 中使用 Traits的方法
2019/11/13 PHP
[原创]提供复制本站内容时出现,该文章转自脚本之家等字样的js代码
2007/03/27 Javascript
jQuery学习笔记之jQuery的事件
2010/12/22 Javascript
javascript定时保存表单数据的代码
2011/03/17 Javascript
基于Jquery+Ajax+Json的高效分页实现代码
2011/10/29 Javascript
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
2012/06/20 Javascript
jQuery基本过滤选择器使用介绍
2013/04/18 Javascript
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
js动态创建及移除div的方法
2015/06/03 Javascript
js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】
2016/08/02 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
图解Javascript——作用域、作用域链、闭包
2017/03/21 Javascript
Validform验证时可以为空否则按照指定格式验证
2017/10/20 Javascript
Egg.js 中 AJax 上传文件获取参数的方法
2018/10/10 Javascript
Vue从TodoList中学父子组件通信
2019/02/05 Javascript
Vue.js中的组件系统
2019/05/30 Javascript
bootstrap table.js动态填充单元格数据的多种方法
2019/07/18 Javascript
jquery实现垂直手风琴导航栏
2020/02/18 jQuery
解决vue项目本地启动时无法携带cookie的问题
2021/02/06 Vue.js
详解Python核心对象类型字符串
2018/02/11 Python
Django框架之DRF 基于mixins来封装的视图详解
2019/07/23 Python
python3实现elasticsearch批量更新数据
2019/12/03 Python
python中matplotlib实现随鼠标滑动自动标注代码
2020/04/23 Python
获取CSDN文章内容并转换为markdown文本的python
2020/09/06 Python
HTML5实现移动端弹幕动画效果
2019/08/01 HTML / CSS
初中三好学生事迹材料
2014/01/13 职场文书
小学生开学感言
2014/02/28 职场文书
节水倡议书范文
2014/04/15 职场文书
廉洁自律证明
2015/06/24 职场文书
大学生党课心得体会
2016/01/07 职场文书
python基础详解之if循环语句
2021/04/24 Python