轮播图

旋转木马:
<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title>旋转木马轮播图</title>
  <link rel="stylesheet" href="css/css.css"/>
  <script src="common.js"></script>
  <script>
    //
    var config = [
      {
        width: 400,
        top: 20,
        left: 50,
        opacity: 0.2,
        zIndex: 2
      },//0
      {
        width: 600,
        top: 70,
        left: 0,
        opacity: 0.8,
        zIndex: 3
      },//1
      {
        width: 800,
        top: 100,
        left: 200,
        opacity: 1,
        zIndex: 4
      },//2
      {
        width: 600,
        top: 70,
        left: 600,
        opacity: 0.8,
        zIndex: 3
      },//3
      {
        width: 400,
        top: 20,
        left: 750,
        opacity: 0.2,
        zIndex: 2
      }//4

    ];

   
  </script>

</head>
<body>
<div class="wrap" id="wrap">
  <div class="slide" id="slide">
    <ul>
      <li><a href="#"><img src="images/slidepic1.jpg" alt=""/></a></li>
      <li><a href="#"><img src="images/slidepic2.jpg" alt=""/></a></li>
      <li><a href="#"><img src="images/slidepic3.jpg" alt=""/></a></li>
      <li><a href="#"><img src="images/slidepic4.jpg" alt=""/></a></li>
      <li><a href="#"><img src="images/slidepic5.jpg" alt=""/></a></li>
    </ul>
    <div class="arrow" id="arrow">
      <a href="javascript:;" class="prev" id="arrLeft"></a>
      <a href="javascript:;" class="next" id="arrRight"></a>
    </div>
  </div>
</div>
<script src="common.js" ></script>
<script>
  //获取元素
  var slide=my$("slide");
  var list=slide.getElementsByTagName("li");
  //鼠标移入,显示左右焦点按钮
  slide.οnmοuseοver=function () {
      animate(my$("arrow"),{"opacity":1});
  }
  slide.οnmοuseοut=function () {
      animate(my$("arrow"),{"opacity":0});
  }

  //将li散开--将每个li放在对应的位置
  function assign(){
      for (var i=0;i<list.length;i++){
          //动画效果,调用animate
          animate(list[i],config[i]);
      }
  }
  assign();
  //点击右边按钮,将li更改位置
  my$("arrRight").οnclick=function () {
      config.push(config.shift());
      //li的位置重新设置--散开
      assign();
  }
  my$("arrLeft").οnclick=function () {
      config.unshift(config.pop());
      //li的位置重新设置--散开
      assign();
  }
</script>
</body>
</html>

图片跟着鼠标飞最终版:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }

        img {
            position: absolute;
            margin:100px;
        }
    </style>
</head>
<body style="height:2000px;">
<img src="images/tianshi.gif" height="80" width="96" id="im"/>

<script src="common.js"></script>
<script>
    var evt = {
        getEvent: function (evt) {
            return window.event || evt;
        },
        getClientX: function (evt) {
            return this.getEvent(evt).clientX;
        },
        getClientY: function (evt) {
            return this.getEvent(evt).clientY;
        },
        getScrollLeft: function () {
            return window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;
        },
        getScrollTop: function () {
            return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
        },
        getPageX: function (evt) {
            return this.getEvent(evt).pageX ? this.getEvent(evt).pageX : this.getClientX(evt) + this.getScrollLeft();
        },
        getPageY: function (evt) {
            return this.getEvent(evt).pageY ? this.getEvent(evt).pageY : this.getClientY(evt) + this.getScrollTop();
        }
    }

    document.onmousemove = function (e) {
        my$("im").style.left = evt.getPageX(e)-100 + "px";
        my$("im").style.top = evt.getPageY(e)-100 + "px";
    }
</script>
</body>
</html>

拖拽文本框:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        .login-header {
            width: 100%;
            text-align: center;
            height: 30px;
            font-size: 24px;
            line-height: 30px;
        }

        ul, li, ol, dl, dt, dd, div, p, span, h1, h2, h3, h4, h5, h6, a {
            padding: 0px;
            margin: 0px;
        }
        .login {
            width: 512px;
            position: absolute;
            border: #ebebeb solid 1px;
            height: 280px;
            left: 50%;
            right: 50%;
            background: #ffffff;
            box-shadow: 0px 0px 20px #ddd;
            z-index: 9999;
            margin-left: -250px;
            margin-top: 140px;
            display: none;
        }

        .login-title {
            width: 100%;
            margin: 10px 0px 0px 0px;
            text-align: center;
            line-height: 40px;
            height: 40px;
            font-size: 18px;
            position: relative;
            cursor: move;
            -moz-user-select: none; /*火狐*/
            -webkit-user-select: none; /*webkit浏览器*/
            -ms-user-select: none; /*IE10*/
            -khtml-user-select: none; /*早期浏览器*/
            user-select: none;
            /*css控制页面文字不能被选中user-select:none;*/
        }

        .login-input-content {
            margin-top: 20px;
        }

        .login-button {
            width: 50%;
            margin: 30px auto 0px auto;
            line-height: 40px;
            font-size: 14px;
            border: #ebebeb 1px solid;
            text-align: center;
        }

        .login-bg {
            width: 100%;
            height: 100%;
            position: fixed;
            top: 0px;
            left: 0px;
            background: #000000;
            /*这一条代码是为了IE浏览器实现不透明度为80% 因为如果用 opacity:0.8; IE会不支持的*/
            filter: alpha(opacity=30);
            -moz-opacity: 0.3;
            -khtml-opacity: 0.3;
            opacity: 0.3;
            display: none;
        }

        a {
            text-decoration: none;
            color: #000000;
        }

        .login-button a {
            display: block;
        }

        .login-input input.list-input {
            float: left;
            line-height: 35px;
            height: 35px;
            width: 350px;
            border: #ebebeb 1px solid;
            text-indent: 5px;
        }

        .login-input {
            overflow: hidden;
            margin: 0px 0px 20px 0px;
        }

        .login-input label {
            float: left;
            width: 90px;
            padding-right: 10px;
            text-align: right;
            line-height: 35px;
            height: 35px;
            font-size: 14px;
        }

        .login-title span {
            position: absolute;
            font-size: 12px;
            right: -20px;
            top: -30px;
            background: #ffffff;
            border: #ebebeb solid 1px;
            width: 40px;
            height: 40px;
            border-radius: 20px;
        }


    </style>
</head>
<body>
<div class="login-header"><a id="link" href="javascript:void(0);">点击,弹出登录框</a></div>
<div id="login" class="login">
    <div id="title" class="login-title">登录会员
        <span>
        <a id="closeBtn" href="javascript:void(0);" class="close-login">关闭</a>
    </span>
    </div>
    <div class="login-input-content">
        <div class="login-input">
            <label>用户名:</label>
            <input type="text" placeholder="请输入用户名" name="info[username]" id="username" class="list-input">
        </div>
        <div class="login-input">
            <label>登录密码:</label>
            <input type="password" placeholder="请输入登录密码" name="info[password]" id="password" class="list-input">
        </div>
    </div>
    <div id="loginBtn" class="login-button"><a href="javascript:void(0);" id="login-button-submit">登录会员</a></div>
</div><!--登录框-->
<div id="bg" class="login-bg"></div><!--遮挡层-->
<script src="common.js"></script>
<script>
    my$("link").addEventListener("click",function () {
        my$("login").style.display="block";
        my$("bg").style.display="block";
    },false);

    my$("closeBtn").addEventListener("click",function () {
        my$("login").style.display="";
        my$("bg").style.display="";
    },false);
    my$("title").οnmοusedοwn=function (e) {
        var spaceX=e.clientX-my$("login").offsetLeft;
        var spaceY=e.clientY-my$("login").offsetTop;
        document.οnmοusemοve=function (e) {
            my$("login").style.left=e.clientX-spaceX+250+"px";
            my$("login").style.top=e.clientY-spaceY-140+"px";
        }
    };
    my$("title").οnmοuseup=function (e) {
        document.οnmοusemοve=null;
    };
</script>







</body>
</html>

放大镜:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>哈哈</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .box {
            width: 350px;
            height: 350px;
            margin: 100px;
            border: 1px solid #ccc;
            position: relative;
        }

        .big {
            width: 400px;
            height: 400px;
            position: absolute;
            top: 0;
            left: 360px;
            border: 1px solid #ccc;
            overflow: hidden;
            display: none;
        }

        .mask {
            width: 175px;
            height: 175px;
            background: rgba(255, 255, 0, 0.4);
            position: absolute;
            top: 0px;
            left: 0px;
            cursor: move;
            display: none;
        }

        .small {
            position: relative;
        }
    </style>
</head>
<body>
<div class="box" id="box">
    <div class="small"><!--小层-->
        <img src="images/small.png" width="350" alt=""/>
        <div class="mask"></div><!--遮挡层-->
    </div><!--小图-->
    <div class="big"><!--大层-->
        <img src="images/big.jpg" width="800" alt=""/><!--大图-->
    </div><!--大图-->
</div>
<!--导入外部的js文件-->
<script src="common.js"></script>
<script>
    var box=my$("box");
    var small=box.children[0];
    var mask=small.children[1];
    var big=box.children[1];
    var bigImg=big.children[0];

    small.οnmοuseοver=function () {
        big.style.display="block";
        mask.style.display="block";
    };
    small.οnmοuseοut=function () {
        big.style.display="";
        mask.style.display="";
    };
    small.οnmοusemοve=function (e) {
        var x=e.clientX;
        var y=e.clientY;
        x=x-100-mask.offsetWidth/2;
        y=y-100-mask.offsetHeight/2;
        x=x<0? 0:x;
        y=y<0? 0:y;
        x=x>small.offsetWidth-mask.offsetWidth?small.offsetWidth-mask.offsetWidth:x;
        y=y>small.offsetHeight-mask.offsetHeight?small.offsetHeight-mask.offsetHeight:y;

        mask.style.left=x+"px";
        mask.style.top=y+"px";
        //设置大图的移动距离
        var maxX=bigImg.offsetWidth-big.offsetWidth;
        var maxY=bigImg.offsetHeight-big.offsetHeight;
        var bigImgX=x*maxX/(small.offsetWidth-mask.offsetWidth);
        var bigImgY=y*maxY/(small.offsetHeight-mask.offsetHeight);
        bigImg.style.marginLeft=-bigImgX+"px";
          bigImg.style.marginTop=-bigImgY+"px";
    }
</script>
</body>
</html>

附件:common,js

/**
 * Created by Administrator on 2017-09-18.
 */

function my$(id) {
    return document.getElementById(id);
}

//设置任意元素的中间的文本内容
function setInnerText(element,text) {
    if(typeof element.textContent=="undefined"){
        element.innerText=text;
    }else{
        element.textContent=text;
    }
}
//获取任意元素的中间的文本内容
function getInnerText(element) {
    if(typeof element.textContent=="undefined"){
        return element.innerText;
    }else{
        return element.textContent;
    }
}


//获取任意一个父级元素的第一个子级元素
function getFirstElementChild(element) {
    if(element.firstElementChild){//true--->支持
        return element.firstElementChild;
    }else{
        var node=element.firstChild;//第一个节点
        while (node&&node.nodeType!=1){
            node=node.nextSibling;
        }
        return node;
    }
}
//获取任意一个父级元素的最后一个子级元素
function getLastElementChild(element) {
    if(element.lastElementChild){//true--->支持
        return element.lastElementChild;
    }else{
        var node=element.lastChild;//第一个节点
        while (node&&node.nodeType!=1){
            node=node.previousSibling;
        }
        return node;
    }
}

//为任意元素.绑定任意的事件, 任意的元素,事件的类型,事件处理函数
function addEventListener(element,type,fn) {
    //判断浏览器是否支持这个方法
    if(element.addEventListener){
        element.addEventListener(type,fn,false);
    }else if(element.attachEvent){
        element.attachEvent("on"+type,fn);
    }else{
        element["on"+type]=fn;
    }
}

//获取任意的元素的任意属性---带单位
function getStyle(element, attr) {
    return window.getComputedStyle ? getComputedStyle(element, null)[attr] : element.currentStyle[attr];
}


/**
 * 变速动画函数添加任意一个属性
 * @param element  要移动的元素
 * @param json  {"attr1":target1,"attr2":target2}
 * @param fn  回调函数
 *
 * "width":400, "height":300, "left":400
 */
function animate(element, json, fn) {
    //第一步,清除定时器
    clearInterval(element.timeId);
    element.timeId = setInterval(function () {
        var flag = true;//默认所有的属性达到目标值
        for (var attr in json) {
            //判断属性是不是opacity
            if (attr == "opacity") {
                //获取当前元素的attr这个属性的属性值
                var current = getStyle(element, attr) * 100;//增大100倍
                //确定每一次走多少步
                var target = json[attr] * 100;//目标值也增大100倍
                var step = (target - current) / 10;//有正负
                //step 取整
                step = step > 0 ? Math.ceil(step) : Math.floor(step);
                //走完一次后,当前位置发生改变
                current += step;
                element.style[attr] = current / 100;
            } else if (attr == "zIndex") {//判断是不是z-index
                //直接改变层级的属性
                element.style[attr] = json[attr];
            } else {
                //普通属性
                //获取当前元素的attr这个属性的属性值
                var current = parseInt(getStyle(element, attr));//获取数字类型,进行运算=================
                //确定每一次走多少步
                target=json[attr];
                var step = (target - current) / 10;//有正负
                //step 取整
                step = step > 0 ? Math.ceil(step) : Math.floor(step);
                //走完一次后,当前位置发生改变
                current += step;
                element.style[attr] = current + 'px';//========================
            }
            //判断否到当前位置
            if (target != current) {
                flag = false;
            }
        }
        if (flag) {
            //清除定时器
            clearInterval(element.timeId);
            if (fn) {
                fn();
            }
        }
        //测试代码:
        console.log("目标位置:" + json[attr] + ",当前位置:" + current + ",每次移动的步数" + step);
    }, 20);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值