js实现图片左右滚动效果


Posted in Javascript onFebruary 27, 2017

需求:页面显示教师信息列表,列表中每一条数据显示图片滚动插件,每张图片的长宽及长宽比例各不相同。

前提条件:美工把静态页面写好

HTML代码:

@using Models;
@{
 List<cms_content> teacherList = ViewData["teacherList"] as List<cms_content>; //春雨树频道
 PagerModel pager = ViewData["pager"] as PagerModel;
}
<div class="teacherteam_box">
 <h1>教师团队</h1>
 @foreach (cms_content teacher in teacherList)
 {
  <div class="teacher_box">
   <div class="teacher_img fl">
    <img src="~/Theme/images/t1.png" />
   </div>
   <div class="teacher_infor fl">
    <h2>@teacher.title</h2>
    <p>
     @teacher.description
    </p>
    <div class="products_box">
     <div class="products_pre">
      <img src="~/Theme/images/left.png" />
     </div>
     <div class="products_next">
      <img src="~/Theme/images/right.png" />
     </div>
     <div class="div-imgbox">
      <ul>
       @foreach (Tuple<string, string> item in teacher.imgList)
       {
        <li>
         <img alt="@item.Item1" src="@item.Item2" />
        </li>
       }
      </ul>
     </div>
    </div>
   </div>
   <div class="clear"></div>
  </div>
 }
 <div class="page_box">
  <span>共@(pager.totalRows)条信息</span>
  <a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="teacherPage(this,1)">首页</a>
  <a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="teacherPage(this,2)">上一页</a>
  <a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><i>@pager.page</i><b>/@pager.pageCount</b>页</a>
  <a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="teacherPage(this,3)">下一页</a>
  <a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="teacherPage(this,4)">尾页</a>
 </div>
</div>

JS代码:

<script type="text/javascript">
 var _lock = false;
 $(function () {
  teacherPage(null, null);
 });//end $
 //教师团队
 //flag=1首页,2上一页,3下一页,4尾页
 function teacherPage(obj, flag) {
  var totalPage = 1;
  var page = 1;
  if (obj) {
   page = parseInt($(obj).parent().find("i").text());
   totalPage = parseInt($(obj).parent().find("b").text().replace("/", ""));
  }
  if (flag == 1) { page = 1; }
  if (flag == 2 && page > 1) { page = page - 1; }
  if (flag == 3 && page < totalPage) { page = page + 1; }
  if (flag == 4) { page = totalPage; }
  $.ajax({
   type: "GET",
   url: "@Url.Content("~/")home/teachers?t=" + new Date().valueOf(),
   data: { page: page },
   success: function (data) {
    $('#teachers').html(data);
    sliderImg();
   }
  });
 }
 //滚动图片
 function sliderImg() {
  $(".products_next").click(function () {
   if (_lock) return;
   _lock = true;
   var ul = $(this).parent().find("ul");
   if (!canSlider(ul)) { _lock = false; return; }
   var liFirst = ul.find("li:first");
   var margin = liFirst.width() + 15;
   var speed = margin * 3;
   liFirst.animate({
    marginLeft: 0 - margin
   }, speed);
   setTimeout(function () {
    liFirst.remove();
    ul.append("<li>" + liFirst.html() + "</li>");
    _lock = false;
   }, speed);
  });
  $(".products_pre").click(function () {
   if (_lock) return;
   _lock = true;
   var ul = $(this).parent().find("ul");
   if (!canSlider(ul)) { _lock = false; return; }
   var liLast = ul.find("li:last");
   var margin = liLast.width() + 15;
   var speed = margin * 3;
   ul.prepend("<li style='margin-left:-" + margin + "px; '>" + liLast.html() + "</li>");
   var liFirst = ul.find("li:first");
   liFirst.animate({
    marginLeft: 0
   }, speed);
   setTimeout(function () {
    liLast.remove();
    _lock = false;
   }, speed);
  });
 }
 //判断图片是否可以滚动
 function canSlider(ul) {
  var width = 0;
  ul.find("li").each(function () {
   var li = $(this);
   width = width + li.width() + 15;
  });
  if (width <= 710) {
   return false;
  }
  return true;
 }
</script>

效果图:

js实现图片左右滚动效果

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
javascript cookie操作类的实现代码小结附使用方法
Jun 02 Javascript
JavaScript中检查对象property的存在性方法介绍
Dec 30 Javascript
简介JavaScript中getUTCMonth()方法的使用
Jun 10 Javascript
js跨域资源共享 基础篇
Jul 02 Javascript
Javascript发送AJAX请求实例代码
Aug 21 Javascript
bootstrap日历插件datetimepicker使用方法
Dec 14 Javascript
JS中闭包的经典用法小结(2则示例)
Dec 28 Javascript
Angularjs中使用layDate日期控件示例
Jan 11 Javascript
JS表格组件神器bootstrap table使用指南详解
Apr 12 Javascript
vue中SPA单页面应用程序详解
Nov 07 Javascript
微信小程序文章列表功能完整实例
Jun 03 Javascript
AngularJS实现多级下拉框
Mar 25 Javascript
jquery横向纵向鼠标滚轮全屏切换
Feb 27 #Javascript
原生js实现旋转木马轮播图效果
Feb 27 #Javascript
jQuery实现弹窗居中效果类似alert()
Feb 27 #Javascript
js实现简单的手风琴效果
Feb 27 #Javascript
jquery实现弹窗功能(窗口居中显示)
Feb 27 #Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
Feb 27 #Javascript
jQuery实现简单弹窗遮罩效果
Feb 27 #Javascript
You might like
PHP读取CURL模拟登录时生成Cookie文件的方法
2014/11/04 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
PHP中子类重载父类的方法【parent::方法名】
2016/05/06 PHP
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
初窥JQuery(二) 事件机制(1)
2010/11/25 Javascript
javascript代码加载优化方法
2011/01/30 Javascript
jquery实现div阴影效果示例代码
2013/09/16 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
2016/06/21 Javascript
jQuery模拟淘宝购物车功能
2017/02/27 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
2018/03/06 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
2018/11/20 jQuery
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
用 js 写一个 js 解释器过程详解
2019/08/02 Javascript
将RGB值转换为灰度值的简单算法
2019/10/09 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
2020/06/02 Javascript
在vue中使用eslint,配合vscode的操作
2020/11/09 Javascript
Python多线程编程(五):死锁的形成
2015/04/05 Python
Python运算符重载详解及实例代码
2017/03/07 Python
pyenv命令管理多个Python版本
2017/03/26 Python
python进程的状态、创建及使用方法详解
2019/12/06 Python
python实现ftp文件传输系统(案例分析)
2020/03/20 Python
通过python 执行 nohup 不生效的解决
2020/04/16 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
2020/05/04 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
2020/10/12 Python
python全栈开发语法总结
2020/11/22 Python
12岁生日感言
2014/01/21 职场文书
预备党员2014全国两会学习心得体会
2014/03/10 职场文书
《会走路的树》教后反思
2014/04/19 职场文书
2016师德师风学习心得体会
2016/01/12 职场文书
2016年村干部公开承诺书(公开承诺事项)
2016/03/25 职场文书
自考生自我评价
2019/06/21 职场文书
该怎么书写道歉信?
2019/07/03 职场文书
试了下Golang实现try catch的方法
2021/07/01 Golang