利用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 相关文章推荐
prototype 学习笔记整理
Jul 17 Javascript
JQuery开发的数独游戏代码
Oct 29 Javascript
jQuery.extend()的实现方式详解及实例
Jun 29 Javascript
深入分析JSONP跨域的原理
Dec 10 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
Jun 02 Javascript
关于网页中的无缝滚动的js代码
Jun 09 Javascript
JavaScript 控制字体大小设置的方法
Nov 23 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
Mar 03 Javascript
ES6中module模块化开发实例浅析
Apr 06 Javascript
Angularjs2不同组件间的通信实例代码
May 06 Javascript
js实现图片上传预览原理分析
Jul 13 Javascript
关于js陀螺仪的理解分析
Apr 11 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/24 PHP
php关闭warning问题的解决方法
2016/05/17 PHP
利用PHP访问带有密码的Redis方法示例
2017/02/09 PHP
YII2框架使用控制台命令的方法分析
2020/03/18 PHP
延时重复执行函数 lLoopRun.js
2007/05/08 Javascript
JS应用之禁止抓屏、复制、打印
2008/02/21 Javascript
jquery插件之easing使用
2010/08/19 Javascript
js不完美解决click和dblclick事件冲突问题
2012/07/16 Javascript
jquery 列表双向选择器之改进版
2013/08/09 Javascript
jquery使用$(element).is()来判断获取的tagName
2014/08/24 Javascript
Jquery网页内滑动缓冲导航的实现代码
2015/04/05 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
利用D3.js实现最简单的柱状图示例代码
2016/12/09 Javascript
Vue实现表格中对数据进行转换、处理的方法
2018/09/06 Javascript
使用angularjs.foreach时return的问题解决
2018/09/30 Javascript
微信小程序非跳转式组件授权登录的方法示例
2019/05/22 Javascript
Node.js 的 GC 机制详解
2019/06/03 Javascript
解决vue语法会有延迟加载显现{{xxx}}的问题
2019/11/14 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
JavaScript对象原型链原理解析
2020/01/22 Javascript
深入理解Python爬虫代理池服务
2018/02/28 Python
Python3中函数参数传递方式实例详解
2019/05/05 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
2021/02/05 Python
Jabra捷波朗美国官网:用于办公、车载和运动的无线蓝牙耳麦
2017/02/01 全球购物
波兰办公用品和学校用品在线商店:Dlabiura24.pl
2020/11/18 全球购物
空指针到底是什么
2012/08/07 面试题
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
社区中秋节活动方案
2014/01/29 职场文书
商务日语专业毕业生自荐信
2014/03/27 职场文书
党员自我评价2015
2015/03/03 职场文书
redis的list数据类型相关命令介绍及使用
2022/01/18 Redis
以下牛机,你有几个
2022/04/05 无线电