记录--一个基于JQ的小相册预览效果

效果预览:

实现代码--jq文件请自行引入

html:

<div class="server">
        <ul>
                <li>
                        <img src="image/1.jpg">
                        <p>图片一</p>
                </li>
                <li>
                        <img src="image/2.jpg">
                        <p>图片二</p>
                </li>
                <li>
                        <img src="image/3.jpg">
                        <p>图片三</p>
                </li>
                <li>
                        <img src="image/4.jpg">
                        <p>图片四</p>
                </li>
                <li>
                        <img src="image/5.jpg">
                        <p>图片五</p>
                </li>
        </ul>
</div>

<div class="photoAlbum">
    <div class="photoBg"></div>
    <div class="photo">
        <img class="photoBigImg" src="image/11.jpg" width="700px" height="525px">
        <h2 class="photoTip"></h2>
        <img class="leftIcon" src="image/leftIcon.png">
        <img class="rightIcon" src="image/rightIcon.png">
    </div>
</div>

css:

<style>
        *{margin:0;border:0}
        .server{padding:30px 0}
        .server li{display:inline-block;*zoom:1;*display:inline;width:395px;text-align:center;vertical-align:top}
        .server img{width:380px;height:280px;margin-bottom:10px}
        .server p{margin-bottom:10px}

        .photoAlbum{display:none;}
        .photoBg{background-image:url(image/bg.png);position:fixed;width:100%;height:100%;top:0;}
        .photo{position:absolute;width:900px;height:600px;left:50%;margin-left:-450px;top:50%;margin-top:-300px;text-align:center}
        .photo .photoBigImg{margin-top:30px}
        .photo h2{font-weight:bold;color:#fff}
        .photo  .leftIcon{position:absolute;top:50%;left:0}
        .photo  .rightIcon{position:absolute;top:50%;right:0}

</style>

js:

<script type="text/javascript">
    var PhotoAlbum = function(){
        $(".server img").hover(function(){
            $(this).css({
                "cursor":"pointer"
            })
        },function(){
            $(this).css({
                "cursor":"auto"
            })
        });

        var imagePath="image"
        //写入替换的大图片地址,顺序与页面小图片排列顺序一致
        function returnImg(){
            var arr = [];
            $(".server img").each(function(){
                arr.push($(this).attr("src"));
            })
            return arr;
        }
        var imgObj=returnImg();

        $(".server img").on("click",function(){        //图片点击时显示相册
            $(".photoBigImg").attr({
                "src":imgObj[$(this).parent().index()],
                "num":$(this).parent().index()
            })
            $(".photoTip").text($(this).next().text());

            $(".photoAlbum").fadeIn();
        });
        $(".photoBg").on("click",function(){        //点击透明层隐藏相册
            $(".photoAlbum").fadeOut();
        });

        $(".leftIcon").hover(function(){        //左按钮经过效果R
            $(this).attr({
                "src":imagePath + "/" + "leftIcon_hover.png"
            }).css({
                "cursor":"pointer"
            })
        },function(){
            $(this).attr({
                "src":imagePath + "/" + "leftIcon.png"
            }).css({
                "cursor":"auto"
            })
        });
        $(".rightIcon").hover(function(){        //右按钮经过效果
            $(this).attr({
                "src":imagePath + "/" + "rightIcon_hover.png"
            }).css({
                "cursor":"pointer"
            })
        },function(){
            $(this).attr({
                "src":imagePath + "/" + "rightIcon.png"
            }).css({
                "cursor":"auto"
            })
        });

        $(".rightIcon").on("click",function(){        //点击下一张时触发函数
            var num = $(".photoBigImg").attr("num");
            if(num<imgObj.length-1){
                $(".photoBigImg").fadeOut(‘normal‘,function(){
                    $(".photoBigImg").attr({
                        "src":imgObj[(parseInt(num)+1)],
                        "num":(parseInt(num)+1)
                    });
                    $(".photoTip").text($(".server li:eq("+(parseInt(num)+1)+")").text());

                    $(".photoBigImg").fadeIn();
                });

            }else{
                num=0;
                $(".photoBigImg").fadeOut(‘normal‘,function(){
                    $(".photoBigImg").attr({
                        "src":imgObj[num],
                        "num":num
                    })
                    $(".photoTip").text($(".server li:eq("+num+")").text())
                    $(".photoBigImg").fadeIn();
                });
            }
        });
        $(".leftIcon").on("click",function(){        //点击上一张时触发函数
            var num = $(".photoBigImg").attr("num");
            if(num>0){
                $(".photoBigImg").fadeOut(‘normal‘,function(){
                    $(".photoBigImg").attr({
                        "src":imgObj[(parseInt(num)-1)],
                        "num":(parseInt(num)-1)
                    })

                    $(".photoTip").text($(".server li:eq("+(parseInt(num)-1)+")").text());

                    $(".photoBigImg").fadeIn();
                });
            }else{
                num=imgObj.length-1;
                $(".photoBigImg").fadeOut(‘normal‘,function(){
                    $(".photoBigImg").attr({
                        "src":imgObj[num],
                        "num":num
                    })
                    $(".photoTip").text($(".server li:eq("+num+")").text())
                    $(".photoBigImg").fadeIn();
                });
            }
        })
    }
    new PhotoAlbum();
</script>
时间: 2024-10-23 23:22:30

记录--一个基于JQ的小相册预览效果的相关文章

基于jQuery页面窗口拖动预览效果

今天给大家分享一款基于Query页面窗口拖动预览效果.这是一款基于jQuery+HTML5实现的模拟页面窗口显示拖动窗口预览特效.这款实例适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗. 在线预览   源码下载 实现的代码. html代码: <p> minimap - A jQuery Plugin<br> A preview of full webpage or its DOM element with flexible

javascript和HTML5上传图片之前实现预览效果

一:FileList对象与file对象 FileList对象表示用户选择的文件列表,在HTML4中,file控件内只允许放置一个文件,但是到了HTML5中,通过添加multiple属性,file控件内允许一次放置多个文件,控件内的每一个用户选择的文件都是一个file对象,而FileList对象是file对象的列表: 比如如下代码: 选择文件<input type="file" id="file" multiple size="80"/>

基于9款CSS3鼠标悬停相册预览特效

基于9款CSS3鼠标悬停相册预览特效里面包含九款不同方式的相册展开特效代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class="albums"> <div class="albums-inner"> <div class="albums-tab"> <div class="albums-tab-thumb sim-anim-1"> <

jWriter一个基于jQuery的阅读写作网站的效果库

看了一下据上次更新已经四个月了,时间过的好快.自从上次面试前端岗时js的能力遭到深深的鄙视后,就在补js的坑了.先是各种看书,接着是期末考试,然后家里有事又耽搁了.在此期间想把用来练手的网站的前端部分重构一下,于是手写了一些jQuery的效果,也就是jWriter了.话说扔了几个月又捡起来的结果就是,看书时都感觉清楚无比的方法什么的全部都忘了,三天不练手生,真理啊. jWriter,一个基于jQuery的阅读写作网站的效果库,用到了部分js原生代码不过都有注释.全部代码都没进行封装过,看起来可能

小书匠预览操作说明

小书匠预览操作说明 预览小书匠 概述 预览 小书匠编辑器提供了边写作边预览功能. 打开预览 可以点击编辑器右侧中间按钮打开预览.需要注意的是如果当前窗口太小,系统会强制关闭边预览边写作功能,在编辑器侧边也就无法看到该按钮.只需要把窗口宽度调大一些,该按钮就会自动出现. 快捷键ctrl+shift+p 打开预览 关闭预览 点击预览区左侧中间按钮,就可以关闭预览功能. 关闭预览 实时同步预览 小书匠的边预览边写作支持实时同步,用户每次在编辑区输入的文字都会及时在预览区显示结果. 实时同步预览 双向精

基于jQuery图文排版图片预览特效

基于jQuery图文排版图片预览特效.这是一款基于jQuery+CSS3实现的鼠标点击图片弹出画廊切换特效. 在线预览   源码下载 实现的代码. html代码: <div id="fullscreen"> <div id="fullscreen-inner"> <div id="fullscreen-inner-left" class="fullscreen-inner-button">&

基于vue.js的图片预览组件2.0.1

基于vue.js的图片预览组件 Github github 安装 npm install enlargeimg --save-dev import enlargeimg from 'enlargeimg'; 基础用法 <enlargeImg :data="files"></enlargeImg> export default { name: 'hello', data () { return { msg: 'Welcome to Your Vue.js App'

带预览效果的幻灯片

正在做一个带预览效果的幻灯片. 首先,要分析整个效果.采用VCD分析法(V;view; C: contral; D:data). 先观察整个效果图,将效果图划分为不同的块级.画出结构分析图,设置每个大块的类名. 分析要使用的数据. 进行代码开发:1, 视觉效果开发: HTML + CSS; 2, 动画效果: javascript; HTML页面编写,先架好结构,并用css样式来使页面变成要展示的样子.(以前总是看着图,事无巨细的一层层写下来,并一小块一小块的去做好样式设置,发现这样不仅浪费时间,

JavaScript 图片上传预览效果

图片上传预览是一种在图片上传之前对图片进行本地预览的技术.使用户选择图片后能立即查看图片,而不需上传服务器,提高用户体验.但随着浏览器安全性的提高,要实现图片上传预览也越来越困难.不过群众的智慧是无限的,网上已经有很多变通或先进的方法来实现.例如ie7/ie8的滤镜预览法,firefox 3的getAsDataURL方法.但在opera.safari和chrome还是没有办法实现本地预览,只能通过后台来支持预览.在研究了各种预览方法后,作为总结,写了这个程序,跟大家一起分享.上次写的简便无刷新文