利用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 相关文章推荐
javascript支持firefox,ie7页面布局拖拽效果代码
Dec 20 Javascript
基于jQuery的js分页代码
Jun 10 Javascript
网站基于flash实现的Banner图切换效果代码
Oct 14 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
Feb 27 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
Apr 06 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
Jan 12 Javascript
discuz表情的JS提取方法分析
Mar 22 Javascript
element-ui 时间选择器限制范围的实现(随动)
Jan 09 Javascript
ES6基础之解构赋值(destructuring assignment)
Feb 21 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
May 23 Javascript
vue父子组件的通信方法(实例详解)
Nov 10 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
Nov 13 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
音乐朗读剧《MARS RED》2021年TV动画化决定!
2020/03/06 日漫
PHP生成自定义长度随机字符串的函数分享
2014/05/04 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
PHP laravel中的多对多关系实例详解
2017/06/07 PHP
PHP实现的分页类定义与用法示例
2017/07/05 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
2018/10/15 PHP
JQuery 自定义CircleAnimation,Animate方法学习笔记
2011/07/10 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
js鼠标点击图片实现随机变换图片的方法
2015/02/16 Javascript
jQuery 跨域访问解决原理案例详解
2016/07/09 Javascript
基于nodejs 的多页面爬虫实例代码
2017/05/31 NodeJs
vue使用stompjs实现mqtt消息推送通知
2017/06/22 Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
2018/02/03 Javascript
vue-cli扩展多模块打包的示例代码
2018/04/09 Javascript
js实现继承的方法及优缺点总结
2019/05/08 Javascript
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
js+canvas实现简单扫雷小游戏
2021/01/22 Javascript
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
react基本安装与测试示例
2020/04/27 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
Python Pickle 实现在同一个文件中序列化多个对象
2019/12/30 Python
Python + selenium + crontab实现每日定时自动打卡功能
2020/03/31 Python
Python如何转换字符串大小写
2020/06/04 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
html5新特性与用法大全
2018/09/13 HTML / CSS
html5 datalist标签使用示例(自动完成组件)
2014/05/04 HTML / CSS
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
Java面试题汇总
2015/12/06 面试题
工商管理系学生的自我评价分享
2013/11/29 职场文书
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
2014年党支部工作总结
2014/11/13 职场文书
四年级数学上册教学计划
2015/01/20 职场文书
不同意离婚上诉状
2015/05/23 职场文书
在项目中使用redis做缓存的一些思路
2021/09/14 Redis
Golang中channel的原理解读(推荐)
2021/10/16 Golang