利用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 相关文章推荐
JQury slideToggle闪烁问题及解决办法
Jul 05 Javascript
用dtree实现树形菜单 dtree使用说明
Oct 17 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
Jul 05 Javascript
JavaScript中合并数组的N种方法
Sep 16 Javascript
javascript函数声明和函数表达式区别分析
Dec 02 Javascript
CSS3实现动态背景登录框的代码
Jul 28 Javascript
React组件生命周期详解
Jul 03 Javascript
AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例
Apr 21 Javascript
js最实用string(字符串)类型的使用及截取与拼接详解
Apr 26 Javascript
微信小程序实现一张或多张图片上传(云开发)
Sep 25 Javascript
vue弹出框组件封装实例代码
Oct 31 Javascript
element跨分页操作选择详解
Jun 29 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 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
Destoon实现多表查询示例
2014/08/21 PHP
学习php设计模式 php实现门面模式(Facade)
2015/12/07 PHP
php查询操作实现投票功能
2016/05/09 PHP
laravel5.6中的外键约束示例
2019/10/23 PHP
驱动事件的addEvent.js代码
2007/03/27 Javascript
JS解析XML的实现代码
2009/11/12 Javascript
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
jquery图片不完全按比例自动缩小的简单代码
2013/07/29 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
2015/06/19 Javascript
javascript设计模式之Adapter模式【适配器模式】实现方法示例
2017/01/13 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
vue 实现强制类型转换 数字类型转为字符串
2019/11/07 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队Mineski晋级之路
2018/04/07 DOTA
python使用ctypes模块调用windowsapi获取系统版本示例
2014/04/17 Python
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
Python列出一个文件夹及其子目录的所有文件
2016/06/30 Python
python 将json数据提取转化为txt的方法
2018/10/26 Python
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
Python3解释器知识点总结
2019/02/19 Python
python文件和文件夹复制函数
2020/02/07 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
2020/05/20 Python
Tensorflow实现将标签变为one-hot形式
2020/05/22 Python
python3检查字典传入函数键是否齐全的实例
2020/06/05 Python
Matlab中plot基本用法的具体使用
2020/07/17 Python
CSS实现定位元素居中的方法
2015/06/23 HTML / CSS
党员思想汇报范文
2013/12/30 职场文书
母亲追悼会答谢词
2014/01/27 职场文书
中学生寄语大全
2014/04/03 职场文书
恋恋笔记本观后感
2015/06/16 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL
拙作再改《我的收音机情缘》
2022/04/05 无线电