利用HTML5 与CSS3 做的放大镜

  1. html结构

    <div class="wrap">
    <div class="move">
    <ul class="pic">
    <li><img src="img/iBannerText.png" /></li>
    <li><img src="img/iBannerText2.png" /></li>
    <li><img src="img/iBannerText3.png" /></li>
    </ul>
    <div class="zoomPic">
    <div class="mask_pic">
    <div class="pic">
    </div>
    <div class="mask">
    </div>
    </div>
    </div>
    </div>
    <ul class="text">
    <li><img src="img/iCourseTabText.png" /></li>
    <li><img src="img/iCourseTabText2.png" /></li>
    <li><img src="img/iCourseTabText3.png" /></li>
    </ul>
    <ul class="botton">
    <li class="active"><span></span></li>
    <li><span></span></li>
    <li><span></span></li>
    </ul>
    </div>
  2. 样式
    body,
    ul,
    li {
    padding: 0;
    margin: 0;
    } ul {
    list-style: none;
    } .wrap {
    margin: 50px auto;
    width: 365px;
    position: relative;
    border: 2px solid firebrick;
    vertical-align: center;
    } .wrap .pic {
    position: relative;
    height: 80px;
    width: 100%;
    } .wrap .pic li {
    position: absolute;
    top: -80px;
    -webkit-transition: 0.5s;
    transition: 0.5s;
    opacity: 0;
    } .wrap .text {
    position: relative;
    top: 0px;
    left: 0;
    height: 45px;
    width: 100%;
    margin-top: 30px;
    } .wrap .text li {
    position: absolute;
    left: 365px;
    -webkit-transition: 0.5s;
    transition: 0.5s;
    opacity: 0;
    } .wrap .botton {
    position: relative;
    bottom: 0px;
    height: 21px;
    right: 0px;
    width: 75px;
    left: 280px;
    } .wrap .botton li {
    float: left;
    height: 100%;
    width: 20px;
    margin: 0px 5px 0px 0px;
    background-image: url(img/iCourseTabBtnShadow.png);
    background-repeat: no-repeat;
    } .wrap .botton span {
    display: block;
    height: 100%;
    background-position: center 2px;
    background-repeat: no-repeat;
    background-image: url(img/iCourseIco.png);
    -webkit-transform: scale(0);
    transform: scale(0);
    transition: 0.3s;
    } .wrap .botton .active span {
    -webkit-transform: scale(1);
    transform: scale(1);
    } .zoomPic {
    position: absolute;
    height: 172px;
    width: 144px;
    top: 0px;
    left: -85px;
    background-image: url(img/iZoom.png);
    background-repeat: no-repeat;
    overflow: hidden;
    top: -13px;
    -webkit-transform-origin: 6px 166px;
    /*-webkit-transform: rotate(-30deg);*/
    transition: 0.3s;
    }
    .zoomPic .mask_pic{
    height: 96px;
    width: 96px;
    position: absolute;
    left: 43px;
    top: 3px;
    background-color: #FFFFFF;
    border-radius: 50%;
    }
    .zoomPic .pic {
    position: absolute;
    height: 96px;
    width: 96px;
    background-image: url(img/iBannerTextBig.png);
    background-repeat: no-repeat;
    left: 0px;
    top: 0;
    border-radius: 50%;
    background-position: 40px 0px;
    transition: 0.5s linear;
    /*相对于 zoomPic 的旋转基点*/
    -webkit-transform-origin:-36px 165px ;
    /*-webkit-transform: rotate(30deg);*/
    } .zoomPic .mask {
    border-radius: 50%;
    position: absolute;
    left: 0px;
    top: 0;
    height: 96px;
    width: 96px;
    background-image: url(img/iZoomGlass.png);
    background-repeat: no-repeat;
    }
    .move{
    position: relative;
    z-num: 5;
    }

     

  3.  伟大的js来了

    <script>
    $(function() {
    var btnList = $(".botton").find('li');
    var picList = $('.pic').find('li');
    var textList = $('.text').find('li');
    var num = 0
    var aSrc = ["img/iBannerTextBig.png", "img/iBannerTextBig2.png", "img/iBannerTextBig3.png"];
    //初始化
    picList.eq(0).css({
    'top': 0,
    'opacity': 1
    });
    textList.eq(0).css({
    'left': 0,
    'opacity': 1
    }) btnList.bind('click', function() {
    num = $(this).index();
    $(btnList).removeClass("active");
    $(this).addClass('active');
    //先移动放大镜
    toScale();
    //toHidden(num);
    //end(num); })
    //初始化
    zoomMove(0);
    //放大镜
    $('.move').bind('mousemove', function(ev) {
    var picL = $(this).offset().left;
    var picT = $(this).offset().top;
    var w = $(this).width();
    var H=$(this).height();
    var evX = ev.clientX;
    var evY = ev.clientY ;
    if(evX>=picL && (picL + w>=evX) &&(picT+H >=evY)){
    zoomMove(evX - picL);
    }else{
    //当鼠标 不在移动的范围时 回到原位置
    setTimeout(function(){
    zoomMove(0);
    },500)
    } }) function toScale(){
    $('.zoomPic').css({
    'webkitTransform':'rotate(-60deg)'
    })
    $('.zoomPic .pic').css({
    'webkitTransform':'rotate(60deg)'
    }) $('.zoomPic .pic').bind('webkitTransitionEnd',function(){
    //切换背景图片
    $(this).css({
    'backgroundImage':'url('+aSrc[num]+')'
    })
    /*=============*/
    $(this).unbind("webkitTransitionEnd");
    toHidden(num);
    })
    }
    function zoomMove(x) {
    //放大镜中心得位置
    var centerX = 96;
    var xScale = (424/363).toFixed(2) ;
    var picW = $('.mask_pic >.pic').width();
    console.log(picW)
    $('.mask_pic > .pic').css({
    'backgroundPosition' : -xScale*x+picW/2+"px 0px"
    }) $(".zoomPic").css({
    'webkitTransition':'0s', /// 这里 记得去除 不然会影放大镜移动的速度
    'left': x-centerX
    })
    }
    //图片及文字的隐藏
    function toHidden(){
    picList.css({
    "webkitTransition": '0.5s',
    "top": -80,
    "opacity": 0
    });
    textList.css({
    "webkitTransition": "0.3s top ,0.3s 0.2s left, 0.3s opacity",
    "top": 45,
    'left': 365,
    'opacity': 0
    })
    picList.bind('webkitTransitionEnd',picShow);
    textList.bind('webkitTransitionEnd', textShow);
    } function picShow(){
    picList.unbind('webkitTransitionEnd');
    $(picList[num]).css({
    'top': 0,
    'opacity': 1
    })
    //移除事件
    $(picList[num]).unbind('webkitTransitionEnd');
    }
    function textShow(){
    textList.unbind('webkitTransitionEnd');
    $(textList[num]).css({
    'top': 0,
    'left': 0,
    'opacity': 1
    })
    //放大镜还原的位置
    $(textList[num]).bind('webkitTransitionEnd',toOrigin)
    }
    function toOrigin(){
    $('.zoomPic').css({
    "webkitTransition": '0.5s',
    'webkitTransform':'rotate(0deg)'
    })
    $('.zoomPic .pic').css({
    "webkitTransition": '0.5s',
    'webkitTransform':'rotate(0deg)'
    })
    $(this).unbind('webkitTransitionEnd');
    }
    })
    </script>

    这就是惊天的成果 — _ *  2016-11-05  23:29:52

利用HTML5 与CSS3 做的放大镜的更多相关文章

  1. 利用html5的localStorage做一个备忘录

    实现一个便签功能,可以记录内容和写的时间,当网页从新载入,可以读取以前的记录. html文档 <!DOCTYPE html> <html> <head lang=&quo ...

  2. 利用HTML5和css3 选中图片上传到服务器,插件地址如下

    https://yusi123.com/3349.html 分三步,需要将js文件和css文件拷贝到项目目录下,在需要选择的图片的文件中引入,然后将HTML代码复制 <!--选择图片模块star ...

  3. <HTML5和CSS3响应式WEB设计指南>译者序

    "不是我不明白,这世界变化快."崔健的这首歌使用在互联网领域最合适不过.只短短数年的功夫,互联网的浪潮还没过去,移动互联网的时代已经来临.人们已经习惯将越来越多的时间花在各种移动设 ...

  4. 三款精美的html5及css3的源码插件

    1.HTML5 3D爱心动画 晚来的七夕礼物 七夕情人节刚过,今天小编却在国外的网站上看到一个利用HTML5和CSS3制作的3D爱心动画,莫非老外也过七夕?当然小编还是将这款HTML5 3D爱心动画收 ...

  5. 微信浏览器是移动端的IE6?微信升级内核后Html5和CSS3兼容性总结

    今年4月,自从微信浏览器X5 升级Blink内核之后,各前端社区一片高潮,仿佛看到了前端er,眼含热泪进而抱头痛头的说:终于可以不用兼容这"移动端的IE6 "了,可以早点回家了!! ...

  6. 《HTML5与CSS3实例教程》

    <HTML5与CSS3实例教程> 基本信息 作者: (美)Brian P. Hogan 译者: 卢俊祥 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:97871153634 ...

  7. iOS Web应用开发:运用HTML5、CSS3与JavaScript

    <iOS Web应用开发:运用HTML5.CSS3与JavaScript> 基本信息 原书名:Pro iOS web design and development:HTML5, CSS3, ...

  8. 一起感受HTML5和CSS3

    Web设计师可以使用HTML4和CSS2.1完成一些很酷的东西.我们可以在不使用陈旧的基于table布局的基础上完成文档逻辑结构并创建内容丰富的网站.我们可以在不使用内联<font>和&l ...

  9. HTML5与CSS3知识点总结

    好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star 原文链接:https://blog.csdn.net/we ...

随机推荐

  1. nyoj-130-相同的雪花(hash)

    题目链接 /* Name:NYOJ-130-相同的雪花 Copyright: Author: Date: 2018/4/14 15:13:39 Description: 将雪花各个分支上的值加起来,h ...

  2. 4.MySQL优化---多表查询优化

     整理自互联网 一.多表查询连接的选择: 相信这内连接,左连接什么的大家都比较熟悉了,当然还有左外连接什么的,基本用不上我就不贴出来了.这图只是让大家回忆一下,各种连接查询. 然后要告诉大家的是,需要 ...

  3. node.js 导出当前模块的内部成员

    //当前模块三个成员 //1:常量 const PI = 3.14; //2:二个方法 //计算面积 function getSize(r){ return PI * r * r; } //计算周长 ...

  4. Swap Adjacent Elements

    You have an array a consisting of n integers. Each integer from 1 to n appears exactly once in this ...

  5. 四、python沉淀之路--元组

    一.元组基本属性 1.元组不能被修改,不能被增加.不能被删除 2.两个属性 tu.count(22)       #获取指定元素在元组中出现的次数tu.index(22)      #获取指定元素的缩 ...

  6. FastAdmin 中的 formatter flag 分析

    FastAdmin 中的 formatter flag 分析 效果 首先看看效果,这里的文字和颜色可以根据数据改变. 这是系统自带的分类管理. 代码 功能在 \public\assets\js\bac ...

  7. HIVE-如何查看执行日志

    HIVE既然是运行在hadoop上,最后又被翻译为MapReduce程序,通过yarn来执行.所以我们如果想解决HIVE中出现的错误,需要分成几个过程 HIVE自身翻译成为MR之前的解析错误 Hado ...

  8. 5 Things You Should Know About the New Maxwell GPU Architecture

    The introduction this week of NVIDIA’s first-generation “Maxwell” GPUs is a very exciting moment for ...

  9. Angular5学习笔记 - 虚拟RestfulApi配置与使用(六)

    一.安装json-server功能 #windows cnpm install json-server -g #Mac & Linux sudo npm install json-server ...

  10. My97DatePicker 和转换 数据库中日期(/Date(1351699200000)/) 的格式

    一  转换 数据库中日期(/Date(1351699200000)/) 的格式: C#中转换日期格式 var date=com.CREATEDATETIME.ToString(); JavaScrip ...