html+jquery翻页相册(原创)

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

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

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

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

如果你是一个前端,这个功能对你来说除了逻辑复杂点,其他的可能实现起都比较简单,我不是做前端的,所以前端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);
                    })

                })

            });

        });

  

时间: 2024-10-29 19:11:12

html+jquery翻页相册(原创)的相关文章

jquery 实现智能炫酷的翻页相册效果

jquery 实现智能炫酷的翻页相册效果巧妙的运用 Html 的文档属性,大大减少jquery 的代码量,实现了智能炫酷的翻页相册.兼容性很好,实现了代码与标签的完全分离?1. [代码]jquery 实现智能炫酷的翻页相册效果 $(document).ready(function(e) {    var ImgBox = $(".img-box"),    ImgSpan = ImgBox.find("span"),    ImgDiv = $(".img

精品软件 推荐 3D PageFlip for PowerPoint 翻页相册的形式播放、分享

3D PageFlip for PowerPoint 将每页 PPT 都转换为图片文件,然后通过 Flash 播放器调用图片,添加翻页电子书效果,以翻页相册的形式播放.分享. 软件内置了 Facile.Flexible.Float.Fresh.Handy.Moving.Neta.Panda.Panoramic.Plain 等 10 种类型共 60 个播放器模板,包括普通模板和 3D 模板,导入 PPT 文档后,可以对播放器进行全面的定制. 使用说明:已经做成绿色便携版,直接运行 3DPageFl

使用jQuery.fn自定义jQuery翻页插件

第一次写jQuery插件.自己感觉写的也不怎么样.写jQuery插件利用的就是这个东东 jQuery.fn,例如 jQuery.fn.pluginName=function(){}; 这个是我写的分页插件的样子 插件通过一个外放的函数来进行翻页操作,无论是点击前进.后退.还是改变页面大小,都会调用该函数. 先看看插件的代码结构 (function ($) { //存放插件所需的属性字段 var PagerFields = { }; //插件的私有函数 function setImageButto

jQuery翻页yunm.pager.js,涉及div局部刷新

前端的翻页插件有很多,bootstrap的翻页界面看起来就不错,做起来也易于上手,但应用于项目中的翻页实现还有有几个难点,分别是: 如何封装一个翻页插件,如题中的yunm.pager.js. 涉及到的div局部刷新该如何做. 翻页的总体流程涉及到的知识点很多,这篇文章我们也主要来关注以上两点,其余的内容,请自悟. 一.如何定义局部刷新的div 翻页时,我们一般只会刷新页面中涉及到翻页的父级div,那么该如何定义呢? <form rel="support_deal_page" ta

jQuery和CSS3全屏垂直翻页特效插件

FSVS(Full Screen Vertical Scroller)是一款jQuery和CSS3带过渡效果的全屏垂直翻页特效插件.该全屏翻页插件在页面上下滚动时一次翻一屏,并带有CSS3过渡动画效果. 该jquery翻页插件的效果和OnePageScroll.js类似,但使用上要简单得多. 在线演示:http://www.htmleaf.com/Demo/201503021447.html 下载地址:http://www.htmleaf.com/jQuery/Layout-Interface/

js特效之上下翻页相册效果

//HTML部分: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Consolas; color: #289c97 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Consolas; min-height: 22.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Consolas; color: #4f5d6

15 个最佳 jQuery 翻书效果插件

本文为你带来15个非常实用的.实现类似翻书效果的jQuery插件,你可以很容易地整合到你的web应用中,提升用户体验. 1.  BookBlock BookBlock可以将任何内容(如图像.文本)创建为翻页效果,带有一个翻页导航,可用于创建小册子等组件. 阅读更多 / 演示 2.  imBookFlip 该插件允许你在iframe或页面中加载电子书,可以设置为在页面加载时开始翻书效果,也可以设置为手动点击时开始.还可以通过Sound Manager添加声音效果. 阅读更多 / 演示 3.  jF

turn.js (翻页效果)总结

Turn.js是一个内置的jQuery翻页插件 1 html中引入<script type="text/javascript" src="js/turn.js"></script> 2  创建html <div id="flipbook"> <div class="hard"> Turn.js </div> <div class="hard"

15个最佳jQuery的翻页书效果的例子

在这里,你会发现15的jQuery的翻页书的插件,提供了良好的页面翻转的经验,并帮助创建类似书本的效果. jQuery的增添了一道亮丽的过渡到实际的页面在一本书或杂志HTML5. 1. BookBlock: jQuery内容翻转插件 BookBlock是可以将任何内容,如图像或文本创建小册子的组件,允许一个“翻页”的导航. 在线演示 2. imBookFlip : jQuery Page Turning Plugin without Flash imBookFlip可以将iframe加载书本成本