zoukankan      html  css  js  c++  java
  • 淘宝之放大镜

    <!DOCTYPE html>
    <html>
    <head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
    .box {
    350px;
    height: 350px;
    position: relative;
    margin-left: 200px;
    margin-top: 200px;
    border: 1px solid #000;
    }
    .smallBox {
    position: relative;
    }
    .mask {
    175px;
    height: 175px;
    background-color: rgba(125, 125, 125, .4);
    position: absolute;
    left: 0;
    top: 0;
    display: none;

    }
    .bigBox {
    400px;
    height: 400px;
    position:absolute;
    left: 350px;
    top: 0;
    overflow: hidden;
    display: none;
    }
    </style>
    </head>
    <body>
    <div class="box">
    <div class="smallBox">
    <img src="images/001.jpg" alt=""/>
    <div class="mask"></div>
    </div>
    <div class="bigBox">
    <img src="images/0001.jpg" alt=""/>
    </div>
    </div>
    <script src="toolkit.js"></script>
    <script>
    //需求1:鼠标进入smallBox区域中,显示mask 和 bigBox,移除后隐藏。
    var box = document.getElementsByTagName("div")[0];
    var smallBox = box.children[0];
    var bigBox= box.children[1];
    var mask = smallBox.children[1];
    var bigImg= bigBox.children[0];
    smallBox.onmouseover = function(){
    show(mask);
    show(bigBox);
    }
    smallBox.onmouseout = function(){
    hide(mask);
    hide(bigBox);
    }
    //需求2:mask 跟随鼠标移动
    smallBox.onmousemove = function(event){
    //鼠标在网页中位置
    event = event || window.event;
    var pageX = event.pageX || event.clientX + scroll().left;
    var pageY = event.pageY || event.clientY + scroll().top;

    //盒子在网页中位置
    var boxX= box.offsetLeft;
    var boxY = box.offsetTop;

    //鼠标在盒子中的位置
    var sBoxX = pageX - boxX;
    var sBoxY = pageY- boxY;
    //鼠标在盒子中移动位置有界限
    if(sBoxX<0){
    sBoxX =0;
    }
    if(sBoxX>(smallBox.offsetWidth- mask.offsetWidth)){
    sBoxX=(smallBox.offsetWidth- mask.offsetWidth)
    }
    if(sBoxY<0){
    sBoxY =0;
    }
    if(sBoxY>(smallBox.offsetHeight- mask.offsetHeight)){
    sBoxY=(smallBox.offsetHeight- mask.offsetHeight)
    }
    //给mask位置赋值
    mask.style.left = sBoxX + "px";
    mask.style.top = sBoxY + "px";

    //需求3:mask同bigBox等比例移动
    //比例公式: smallBox/bigImg = mask/bigBox=sBox/bBox
    //bBox = bigBox*sBox/mask;
    var bBoxX = bigBox.offsetWidth*sBoxX/mask.offsetWidth;
    var bBoxY = bigBox.offsetWidth*sBoxY/mask.offsetHeight;

    bigImg.style.marginLeft = -bBoxX + "px";
    bigImg.style.marginTop = -bBoxY + "px";
    }
    </script>
    </body>
    </html>
    引入toolkit.js内容:
    function scroll(){
    var scroll = {
    top: window.pageYOffset || document.documentElement.scrollTop,
    left: window.pageXOffset || document.documentElement.scrollLeft
    }
    return scroll;
    }


    function animate(ele,target){
    clearInterval(ele.timer);
    ele.timer = setInterval(function(){
    //1.获取步长
    var step = (target -ele.offsetLeft)/10;
    //2.二次处理步长
    step = step>0? Math.ceil(step):Math.floor(step);
    //3、
    ele.style.left = ele.offsetLeft+ step +"px";
    console.log(1);
    if(Math.abs(target -ele.offsetLeft)<=Math.abs(step)){
    clearInterval(ele.timer);
    ele.style.left = target + "px";
    }
    },20);
    }


    function client(){
    return {
    "width": window.innerWidth || document.documentElement.clientWidth,
    "height": window.innerWidth ||document.documentElement.clientWidth,
    }
    }

    function changeColor(){
    if(client().width>960){
    document.body.style.backgroundColor="blue";
    }else if(client().width>640){
    document.body.style.backgroundColor="red";
    }else{
    document.body.style.backgroundColor="orange";
    }
    }

    function getStyle(ele,attr){
    if(ele.window.getComputedStyle){
    return ele.window.getComputedStyle(ele,null)[attr];
    }else{
    return ele.currentStyle[attr];
    }
    }

    function show(ele){
    ele.style.display="block";
    }

    function hide(ele){
    ele.style.display="none";
    }
  • 相关阅读:
    反素数(暴力)
    More Divisors(反素数)
    CodeForces
    Binary Tree(二叉树+思维)
    Friendship of Frog(水题)
    内网jenkins如何配置gitlab自动拉取代码打包
    配置git使用ssh方式克隆gitlab的代码
    centOS7创建python虚拟环境
    CentOS7下安装JDK
    centOS安装python3 以及解决 导入ssl包出错的问题
  • 原文地址:https://www.cnblogs.com/sunqq/p/7531242.html
Copyright © 2011-2022 走看看