利用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 相关文章推荐
事件模型在各浏览器中存在差异
Oct 20 Javascript
教你用javascript实现随机标签云效果_附代码
Mar 16 Javascript
从0开始学Vue
Oct 27 Javascript
jquery操作ID带有变量的节点实例
Dec 07 Javascript
vue+Java后端进行调试时解决跨域问题的方式
Oct 19 Javascript
laydate日历控件使用方法详解
Nov 20 Javascript
webpack实现一个行内样式px转vw的loader示例
Sep 13 Javascript
JavaScript指定断点操作实例教程
Sep 18 Javascript
JavaScript enum枚举类型定义及使用方法
May 15 Javascript
JavaScript中如何调用Java方法
Sep 16 Javascript
微信小程序反编译的实现
Dec 10 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常用的文件操作函数经典收藏
2013/04/02 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
2014/11/08 PHP
非常不错的一个javascript 类
2006/11/07 Javascript
又一个图片自动缩小的JS代码
2007/03/10 Javascript
JavaScript 异步调用框架 (Part 5 - 链式实现)
2009/08/04 Javascript
测试你的JS的掌握程度的代码
2009/12/09 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
2015/04/05 Javascript
AngularJS入门教程之ng-class 指令用法
2016/08/01 Javascript
利用Angular.js编写公共提示模块的方法教程
2017/05/28 Javascript
关于JavaScript中forEach和each用法浅析
2017/07/27 Javascript
js登录滑动验证的实现(不滑动无法登陆)
2018/01/03 Javascript
小程序关于请求同步的总结
2019/05/05 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
ckeditor一键排版功能实现方法分析
2020/02/06 Javascript
JQuery获得内容和属性方法解析
2020/05/30 jQuery
JS 5种遍历对象的方式
2020/06/16 Javascript
vue自定义组件实现双向绑定
2021/01/13 Vue.js
python检测远程udp端口是否打开的方法
2015/03/14 Python
Python命令行参数解析模块getopt使用实例
2015/04/13 Python
python魔法方法-属性转换和类的表示详解
2016/07/22 Python
Python脚本实现Web漏洞扫描工具
2016/10/25 Python
python中异常报错处理方法汇总
2016/11/20 Python
python 线程的暂停, 恢复, 退出详解及实例
2016/12/06 Python
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
用Python 爬取猫眼电影数据分析《无名之辈》
2020/07/24 Python
荷兰电脑专场:Paradigit
2018/05/05 全球购物
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
BannerBuzz加拿大:在线定制横幅印刷、广告和标志
2020/03/10 全球购物
诚信贷款承诺书
2014/05/30 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
2014年科技工作总结
2014/11/26 职场文书
2015暑期爱心支教策划书
2015/07/14 职场文书
创业计划书之酒厂
2019/10/14 职场文书