利用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 相关文章推荐
IE8 chrome中table隔行换色解决办法
Jul 09 Javascript
基于Jquery的实现回车键Enter切换焦点
Sep 14 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
May 02 Javascript
全面理解面向对象的 JavaScript(来自ibm)
Nov 10 Javascript
javascript中直接引用Microsoft的COM生成Word
Jan 20 Javascript
学习JavaScript正则表达式
Nov 13 Javascript
jQuery fadeOut 异步实例代码详解
Aug 18 Javascript
js创建对象几种方式的优缺点对比
Sep 28 Javascript
jquery实现放大镜简洁代码(推荐)
Jun 08 jQuery
使用jQuery实现鼠标点击左右按钮滑动切换
Aug 04 jQuery
php结合js实现多条件组合查询
May 28 Javascript
微信小程序JS加载esmap地图的实例详解
Sep 04 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购物车实现方法
2015/01/03 PHP
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
js实现网站首页图片滚动显示
2013/02/04 Javascript
js单向链表的具体实现实例
2013/06/21 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
深入理解JavaScript系列(50):Function模式(下篇)
2015/03/04 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
Node.js检测端口(port)是否被占用的简单示例
2016/09/29 Javascript
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
解决vue-router进行build无法正常显示路由页面的问题
2018/03/06 Javascript
JavaScript设计模式之装饰者模式定义与应用示例
2018/07/25 Javascript
layui实现多图片上传并限制上传的图片数量
2019/09/26 Javascript
JavaScript对象字面量和构造函数原理与用法详解
2020/04/18 Javascript
js实现简单的随机点名器
2020/09/17 Javascript
JavaScript代码实现微博批量取消关注功能
2021/02/05 Javascript
[03:01]完美盛典趣味短片 DOTA2年度最佳&拉胯英雄
2019/12/07 DOTA
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
python实现中文转换url编码的方法
2016/06/14 Python
Python文件与文件夹常见基本操作总结
2016/09/19 Python
解读python logging模块的使用方法
2018/04/17 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
python实现年会抽奖程序
2019/01/22 Python
使用Python操作FTP实现上传和下载的方法
2019/04/01 Python
python实现打砖块游戏
2020/02/25 Python
Python tornado上传文件的功能
2020/03/26 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
在终端启动Python时报错的解决方案
2020/11/20 Python
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
世界领先的26岁以下学生和青少年旅行预订网站:StudentUniverse
2018/07/01 全球购物
英国玛莎百货美国官网:Marks & Spencer美国
2018/11/06 全球购物
大学生写自荐信的技巧
2014/01/08 职场文书
规划编制实施方案
2014/03/15 职场文书
聋哑人盗窃罪辩护词
2015/05/21 职场文书
离婚起诉书范文2016
2015/11/26 职场文书
CSS3通过var()和calc()函数实现动画特效
2021/03/30 HTML / CSS