利用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 相关文章推荐
一步一步教你写一个jQuery的插件教程(Plugin)
Sep 03 Javascript
深入理解JavaScript中的传值与传引用
Dec 09 Javascript
JavaScript中Cookies的相关使用教程
Jun 04 Javascript
借助FileReader实现将文件编码为Base64后通过AJAX上传
Dec 24 Javascript
JavaScript操作HTML DOM节点的基础教程
Mar 11 Javascript
判断js的Array和Object的实现方法
Aug 29 Javascript
request请求获取参数的实现方法(post和get两种方式)
Sep 27 Javascript
使用Node.js给图片加水印的方法
Nov 15 Javascript
详解Vue如何支持JSX语法
Nov 10 Javascript
详解使用 Node.js 开发简单的脚手架工具
Jun 08 Javascript
微信小程序实现蓝牙打印
Sep 23 Javascript
Vue Render函数原理及代码实例解析
Jul 30 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
4月1日重磅发布!《星际争霸II》6.0.0版本更新
2020/04/09 星际争霸
elgg 获取文件图标地址的方法
2010/03/20 PHP
php中Smarty模板初体验
2011/08/08 PHP
具有时效性的php加密解密函数代码
2013/06/19 PHP
php学习笔记之面向对象
2014/11/08 PHP
laravel框架模型、视图与控制器简单操作示例
2019/10/10 PHP
JavaScript中几个重要的属性(this、constructor、prototype)介绍
2013/05/19 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
2013/07/15 Javascript
javascript中call和apply方法浅谈
2013/09/27 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
js报$ is not a function 的问题的解决方法
2014/01/20 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
Javascript实现禁止输入中文或英文的例子
2014/12/09 Javascript
javascript自动恢复文本框点击清除后的默认文本
2016/01/12 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
JS正则表达式验证密码格式的集中情况总结
2017/02/23 Javascript
JavaScript 装逼指南(js另类写法)
2020/05/10 Javascript
基于vue的video播放器的实现示例
2021/02/19 Vue.js
[02:17]DOTA2亚洲邀请赛 RAVE战队出场宣传片
2015/02/07 DOTA
Python sqlite3事务处理方法实例分析
2017/06/19 Python
python3+opencv3识别图片中的物体并截取的方法
2018/12/05 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
谈一谈基于python的面向对象编程基础
2019/05/21 Python
Python 一键获取百度网盘提取码的方法
2019/08/01 Python
python几种常用功能实现代码实例
2019/12/25 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
Python项目跨域问题解决方案
2020/06/22 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
学校教师安全责任书
2014/07/23 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
思想纪律作风整顿剖析材料
2014/10/11 职场文书
弘扬焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
考试后的感想
2015/08/07 职场文书
2016年过年放假安排通知
2015/08/18 职场文书
课改心得体会范文
2016/01/25 职场文书