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 相关文章推荐
Jquery cookie操作代码
Mar 14 Javascript
本地对象Array的原型扩展实现代码
Dec 04 Javascript
js同比例缩放图片的小例子
Oct 30 Javascript
jQuery中bind与live的用法及区别小结
Jan 27 Javascript
轻松实现javascript数据双向绑定
Nov 11 Javascript
原生JS实现旋转木马式图片轮播插件
Apr 25 Javascript
vue组件实例解析
Jan 10 Javascript
浅谈键盘上回车按钮的js触发事件
Feb 13 Javascript
JavaScript 隐性类型转换步骤浅析
Mar 15 Javascript
使用D3.js+Vue实现一个简单的柱形图
Aug 05 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
Nov 12 Javascript
解决vue下载后台传过来的乱码流的问题
Dec 05 Vue.js
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超级全局变量数组小结
2012/10/04 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
PHP实现的QQ空间g_tk加密算法
2015/07/09 PHP
Laravel 连接(Join)示例
2019/10/16 PHP
jquery下onpropertychange事件的绑定方法
2010/08/01 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
JS实现单行文字不间断向上滚动的方法
2015/01/29 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
2016/07/27 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
node中Express 动态设置端口的方法
2017/08/04 Javascript
vuejs使用axios异步访问时用get和post的实例讲解
2018/08/09 Javascript
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
详解vuex中action何时完成以及如何正确调用dispatch的思考
2019/01/21 Javascript
微信小程序使用蓝牙小插件
2019/09/23 Javascript
jquery validate 实现动态增加/删除验证规则操作示例
2019/10/28 jQuery
vue cli3 配置proxy代理无效的解决
2019/10/30 Javascript
Python中正则表达式的用法实例汇总
2014/08/18 Python
基础的十进制按位运算总结与在Python中的计算示例
2016/06/28 Python
详解 Python 读写XML文件的实例
2017/08/02 Python
python远程调用rpc模块xmlrpclib的方法
2019/01/11 Python
python for 循环获取index索引的方法
2019/02/01 Python
Python 20行简单实现有道在线翻译的详解
2019/05/15 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
《争吵》教学反思
2014/02/15 职场文书
教师节活动主持词
2014/04/02 职场文书
中学生教师节演讲稿
2014/09/03 职场文书
群众路线学习心得体会范文
2014/11/05 职场文书
2014年客房部工作总结
2014/11/22 职场文书
餐饮服务食品安全承诺书
2015/04/29 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
适合后台管理系统开发的12个前端框架(小结)
2021/06/29 Javascript
Python中的 enumerate和zip详情
2022/05/30 Python