jquery+html仿翻页相册功能


Posted in Javascript onDecember 20, 2016

今天心情大好,再发一篇最进前端实现的相册模仿功能。

这个相册是在一个网站的案例展示页面上实现的,没单独写出来,没时间,重用性也很差,以后有时间了再单独提取出来,

写这个玩意前,我在网上找了一些案例,但是一看代码都比较傻眼,固不想去研究,所以自己写了.....

 下面是实现这个功能的截图

jquery+html仿翻页相册功能

jquery+html仿翻页相册功能

jquery+html仿翻页相册功能

jquery+html仿翻页相册功能

jquery+html仿翻页相册功能

如果你是一个前端,这个功能对你来说除了逻辑复杂点,其他的可能实现起都比较简单,我不是做前端的,所以前端HTML这块遇到了一些问题。下面我会将我遇到的这些问题的解决方法分享出来。 

首先说下:postion这个属性 以前我要用一般是用这个属性值一般是absolute和relative相对定位和绝对定位,但是相对用得都比较少,如果你是前端你应该知道,多数用的是Margin-.....Padding-......,这次用到了postion的fixed:他被用在我的弹出层背景层里面,当然用absolute和relative也可以,但是实践证明fixed在弹出层遮罩中使用更加精准合理。为什么我知道勒,这个是由于中途出现的一个BUG后被我发现的..关于BUG我这里就不谈了,反正你记弹出层背景定位时用POSTION的fixed就对了。(下面是css样式表代码:)

/*相册背景层 PhoneTeamrTransperantDiv这个是DIV,他的父节点是BODY,在不使用时你需要设置他的display:none*/
.PhoneTeamrTransperantDiv{position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color:black; opacity: 0.7; z-index: 2147000002;}

接着说下:拼接table表单, 呵呵关于这种玩法,做PHP的比较多,ASP.NET的是比较少的,因为ASP.NET有相应的控件,我现在虽然在ASP.NET的开发工具平台下开发网站,但是

我已经多久没使用过拖控件的方式了。。。一般都是ASP.NET页面+HTML+AJAX做网站。 关于这个拼接table中所遇被我解决的问题,是我1-2年前做网站没解决的, 这次被我解决了呵呵,这个问题就是使用jquery来操作拼接中的标签,上次没解决我使用了javascript方法代替。这次MD标签多了,我是死了心要用jquery,没想到,功夫不负有心人,这问题就这样被我给解决了。  解决方法:将操作拼接table标签的juqery方法写在拼接table标签方法的的内部(下面我贴代码):

/*------------------------点击后将相册需要加载的这个项目的所有图片展示到一个弹出层中(小图片)---------------------------------*/
   $(function () {
   $(".transparentDiv").click(function (e) {
   
    var el = e.srcElement || e.target;
 
    var transparentBackViewArray = $(".transparentDiv");
    var AppTitleArray = $(".appDetialTitleClass");
 
 
    for (var i = 0; i < transparentBackViewArray.length; i++) {
     var focusTransparentBackView = transparentBackViewArray[i];
     if (el == focusTransparentBackView) {
      var pointTitle = AppTitleArray[i];//根据title去查询需要加载的说明图片
 
      //transParentLawyer全屏幕遮蔽层
      $("#masterDiv").after('<div class="transParentLawyer" onclick=' + "closeAllCorver()" + ' style="display:block"> </div>')
      /* .transParentLawyer{position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: #666666; opacity: 0.5; z-index: 2147000000;}*/
 
 
      var addPxWidth = document.documentElement.clientWidth;
      var addPxHeight = document.documentElement.clientHeight;
 
      var alertBackDivWidth = 555;
      var alertBackDivHeight = 525;
 
      var alertBackStyleMarginLeft = (addPxWidth - alertBackDivWidth) / 2;
      var alertBackStyleMarginTop = (addPxHeight - alertBackDivHeight) / 2;
 
 
      var createLeft = alertBackStyleMarginLeft.toString() + 'px';
      var createTop = alertBackStyleMarginTop.toString() + 'px';
      var ProjectName = "捉大毛APP";
      var combindTable = "<div id='contentShowAppProjectImageDiv' style=' width:100%;height:30px;background:#dcdcdc; margin-top:5px;border-bottom:1px solid #b3b3b3;'><h3 style='text-align:center;color:#666666'>" + ProjectName + "</h3><a class='clsBtn' onclick=" + "closeAllCorver()" + "></a> </div>"
 
      combindTable += "<div id='showAppImageContainerView' style='overFlow-y:scroll;overFlow-x:scroll;margin-top:0px; width:100%;height:495px;background:#dcdcdc;'><table id='showProjectDetailTable' cellspacing='0'>";
      for (var i = 0; i < 5; i++) {
 
       combindTable += "<tr><td><div class='showProjectDetailBackImageDivForImgApp'><img class='showPorjectAppImg' src='../Source/webSite.jpg'/></div></td><td><div class='showProjectDetailBackImageDivForImgApp'><img class='showPorjectAppImg' src='../Source/phoneAppBackPanel1.jpg'/></div></td><td><div class='showProjectDetailBackImageDivForImgApp'><img class='showPorjectAppImg' src='../Source/phoneAppBackPanel1.jpg'/></div></td><td><div class='showProjectDetailBackImageDivForImgApp'><img class='showPorjectAppImg' src='../Source/phoneAppBackPanel1.jpg'/></div></td><td><div class='showProjectDetailBackImageDivForImgApp'><img class='showPorjectAppImg' src='../Source/phoneAppBackPanel1.jpg'/></div></td></tr>";
      }
 
      //overFlow-y:scroll;overFlow-x:scroll;
 
      combindTable += '<table/></div>'
 
      $(".transParentLawyer").after('<div class="imageContentLawyer" style=" position: fixed; width: 555px; height:525px; background-color: white; z-index: 2147000001; display:block;top:' + createTop + ';left:' + createLeft + ';border-radius: 5px;background:#dcdcdc;">' + combindTable + ' </div>')
 
 
 
      break;
     }
 
 
    }//将jquery方法写在拼接table标签的jquery方法体内,而且要放在拼接操作的后面
 
    /*-----------弹出相册加载图片监听(为什么写在这里勒应为,我们上面的方法执行了完毕了(将我们需要加载的标签拼接好,才有我们需要操作的标签,-------------------*          /
    $(".showPorjectAppImg").click(function(e)
    {
 
     
     var imageArray = $(".showPorjectAppImg");
    var el = e.srcElement || e.target;
     //相册遮罩层
    var imagePath;
     for (var i = 0; i < imageArray.length; i++)
     {
      var obj = imageArray[i];
      if(el==obj)
      {
       currentAlbumIndex = i;
       imagePath = obj.src;
       break;
      }
     }
    
     var addPxWidth = document.documentElement.clientWidth;
     var addPxHeight = document.documentElement.clientHeight;
 
     var alertBackDivWidth = 320;
     var alertBackDivHeight = 560;
 
     var alertBackStyleMarginLeft = (addPxWidth - alertBackDivWidth) / 2;
     var alertBackStyleMarginTop = (addPxHeight - alertBackDivHeight) / 2;
 
 
     var createLeft = alertBackStyleMarginLeft.toString() + 'px';
     var createTop = alertBackStyleMarginTop.toString() + 'px';
 
     $("#masterDiv").after('<div class="PhoneTeamrTransperantDiv" style="display:block"> </div>')
     //src="+'"'+ imagePath +'"'+"/> 呵呵拼接的弹出图片
     $(".PhoneTeamrTransperantDiv").after('<div class="albumShowImageDiv" style="box-shadow: -20px 20px 20px rgba(0, 0, 0, 0.3); position: fixed; width: 320px; height:560px; background-color: white;display:block; z-index: 2147000003; display:block;top:' + createTop + ';left:' + createLeft + ';border-radius: 5px;background:#dcdcdc;"> ' + "<img id='rollAblumImage' align='absmiddle' width='312' height='552' style='padding-left:4px;padding-top:4px;' src="+'"'+ imagePath +'"'+"/>" + '<a class="appProjectPrevious"></a><a class="appProjectNext"></a><a class="appProjectCloseAlbum" onclick=' + "closeAlbumAllCorver()" + '></a> </div>')
 
 
     $(".appProjectPrevious").click(function (e) {//上一页
 
      var imageArray = $(".showPorjectAppImg");
      var el = e.srcElement || e.target;
      var imagePath;
      if (currentAlbumIndex > 0)
      {
       currentAlbumIndex = currentAlbumIndex + 1;
      }
      else {
       currentAlbumIndex = imageArray.length - 1;
      }
      var obj = imageArray[currentAlbumIndex];
      imagePath = "http://localhost:59047/Source/phoneAppBackPanel.jpg";//obj.src;
      
      // $("#rollAblumImage").attr("src", imagePath);
      $("#rollAblumImage").animate({ opacity: 'toggle' }, "slow", null, function () {
       $("#rollAblumImage").attr("src", imagePath);
       $("#rollAblumImage").animate({ opacity: 'toggle' }, "slow");
 
       //var image = $("#rollAblumImage");
       
      // resizeimg(image, 320, 560);
      });
     })
     $(".appProjectNext").click(function (e)
     {
     // alert("adad");
      var imageArray = $(".showPorjectAppImg");
      var el = e.srcElement || e.target;
      var imagePath;
      if (currentAlbumIndex < imageArray.length-1) {
       currentAlbumIndex = currentAlbumIndex + 1;
      }
      else {
       currentAlbumIndex = 0;
      }
      var obj = imageArray[currentAlbumIndex];
      imagePath = "http://localhost:59047/Source/phoneAppBackPanel.jpg";
 
      $("#rollAblumImage").animate({ opacity: 'toggle' }, "slow", null, function () {
       $("#rollAblumImage").attr("src", imagePath);
       $("#rollAblumImage").animate({ opacity: 'toggle' }, "slow");
      });
     // $("#rollAblumImage").attr("src", imagePath);
     })
 
    })
 
 
   });
 
  });

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
总结一些js自定义的函数
Aug 05 Javascript
使用原生javascript创建通用表单验证——更锋利的使用dom对象
Sep 13 Javascript
javascript日期格式化示例分享
Mar 05 Javascript
如何防止JavaScript自动插入分号
Nov 05 Javascript
JS冒泡事件与事件捕获实例详解
Nov 25 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
Apr 04 jQuery
详解vue2.0 transition 多个元素嵌套使用过渡
Jun 19 Javascript
Angular4学习之Angular CLI的安装与使用教程
Jan 04 Javascript
vue-cli项目中使用Mockjs详解
May 14 Javascript
Django+Vue跨域环境配置详解
Jul 06 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
Aug 24 Javascript
vue中node_modules中第三方模块的修改使用详解
May 31 Javascript
JS实现拖拽的方法分析
Dec 20 #Javascript
JS实现Ajax的方法分析
Dec 20 #Javascript
JS实现淡入淡出图片效果的方法分析
Dec 20 #Javascript
自学实现angularjs依赖注入
Dec 20 #Javascript
JS多物体实现缓冲运动效果示例
Dec 20 #Javascript
详解js中Number()、parseInt()和parseFloat()的区别
Dec 20 #Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
Dec 20 #Javascript
You might like
php实现邮件发送并带有附件
2014/01/24 PHP
php获取表单中多个同名input元素的值
2014/03/20 PHP
PHP中trim()函数简单使用指南
2015/04/16 PHP
PHP抓取及分析网页的方法详解
2016/04/26 PHP
PHP实现批量删除(封装)
2017/04/28 PHP
PHP守护进程化在C和PHP环境下的实现
2017/11/21 PHP
PHP设计模式之适配器模式原理与用法分析
2018/04/25 PHP
jQuery操作cookie方法实例教程
2014/11/25 Javascript
使用JS获取当前地理位置方法汇总
2014/12/18 Javascript
jQuery中Form相关知识汇总
2015/01/06 Javascript
Node中使用ES6语法的基础教程
2018/01/05 Javascript
详解Vue打包优化之code spliting
2018/04/09 Javascript
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
[03:36]2015国际邀请赛第二日现场精彩集锦
2015/08/06 DOTA
[01:10:58]KG vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python实现倒计时的示例
2014/02/14 Python
python获取本机mac地址和ip地址的方法
2015/04/29 Python
python批量提取word内信息
2015/08/09 Python
Python中运算符&quot;==&quot;和&quot;is&quot;的详解
2016/10/08 Python
解决Python安装后pip不能用的问题
2018/06/12 Python
python如何生成网页验证码
2018/07/28 Python
基于python实现KNN分类算法
2020/04/23 Python
解决Pycharm后台indexing导致不能run的问题
2019/06/27 Python
Django 自动生成api接口文档教程
2019/11/19 Python
解决ROC曲线画出来只有一个点的问题
2020/02/28 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
全球最大的中文旅行网站:去哪儿网
2017/11/16 全球购物
HSRP的含义以及如何工作
2014/09/10 面试题
实验教师岗位职责
2014/02/13 职场文书
护士求职自荐信范文
2014/03/19 职场文书
机电一体化专业毕业生自荐信
2014/06/19 职场文书
租车协议书范本2014
2014/11/17 职场文书
股权转让协议书
2014/12/07 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书
Mysql 文件配置解析介绍
2022/05/06 MySQL