图片拼图demo

编程入门 行业动态 更新时间:2024-10-24 06:36:40

图片<a href=https://www.elefans.com/category/jswz/34/1763369.html style=拼图demo"/>

图片拼图demo

 

 

<!DOCTYPE html>

<html lang="en">

 

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>拖拽</title>

    <!-- <script src=".2.3/jquery.min.js"></script> -->

    <script src=".1.4/jquery.min.js"></script>

</head>

<style>

    * {

        padding: 0;

        margin: 0;

    }

 

    body {

        background-color: rgb(247, 238, 217);

    }

 

    .box_ {

        position: relative;

 

    }

</style>

 

<body>

    <div class="box">

        <div class="box_">

 

        </div>

 

    </div>

</body>

<script>

    var mainImge = ";quality=80&size=b9999_10000&sec=1605774614927&di=f207b555c59245ff405014f905affbee&imgtype=0&src=http%3A%2F%2Fa2.att.hudong%2F27%2F81%2F01200000194677136358818023076.jpg";

    var widthW = 400 //图片宽

    var heightH = 400  //图片高

    var block = 3 //拼图个数

    var moveId=''

    var text=false

    var css = {

        backgroundImage: `url('${mainImge}')`,

        width: `${widthW}px`,

        height: `${heightH}px`,

        backgroundSize: `${widthW}px ${heightH}px`,

        opacity: "0.6",

        borderRadius: "10px",

        backgroundRepeat: 'no-repeat',

    }

    $('.box_').css(css);

    var $div = '<div class="box_img"></div>';

    for (let i = 1; i <= block; i++) {

        $('.box').append($div);

    }

    var imgcss = {}

    for (let i = 0; i < block; i++) {

        var x = 12;

        var y = 0;

        var rand = parseInt(Math.random() * (x - y + 1) + y);

        imgcss = {

            backgroundImage: `url('${mainImge}')`,

            width: `${widthW}px`,

            height: `${heightH / block}px`,

            backgroundSize: `${widthW}px ${heightH}px`,

            backgroundRepeat: 'no-repeat',

            backgroundPosition: `0px -${i * heightH / block}px`,

            position: "absolute",

            top: `${i * heightH / block}px`,

            left: `${rand * 10 + widthW}px`,

            zIndex:'0'

        }

        if(i==0){

            imgcss.left='0'

        }

        $('.box_img').eq(i).attr('id', `img${i}`)

        $('.box_img').eq(i).css(imgcss)

    }

    var offsetX = 0;

    var offsetY = 0;

    //第一步:鼠标点下时获取鼠标落下的位置

    $(".box_img").mousedown(function (ev) {

        offsetX = ev.clientX - $(this).offset().left;

        offsetY = ev.clientY - $(this).offset().top;

        $('.box_img').css({zIndex:'0'})

        

        var _this = this;

        // moveId=$(_this).attr('id')

        // console.log($(_this).attr('id'))

        //第二步:在document下div跟随鼠标移动

        $(document).mousemove(function (ev) {

            $(_this).css({

                left: ev.clientX - offsetX,

                top: ev.clientY - offsetY,

                zIndex:'2'

            })

        })

    })

    function getcss(obj,key){

        return $(obj).css(key).replace("px","")

    }

    //第三步:在document下 鼠标抬起,取消跟随事件

    $(document).mouseup(function () {

        $(document).off('mousemove');

        if(text){

            darg()

        }else{

            darg()

        }

        

    });

    function darg(){

        var leftobj=[]

        var topobj=[]

        var tan=false

        var tans=false

        for(var i=0;i<block;i++){

            var left= getcss(`#img${i}`,'left')

            

            var top =getcss(`#img${i}`,'top')

            leftobj.push(left)

            topobj.push(top)

            

        }

        

        if((Math.abs(leftobj[0]-leftobj[1])<=20)&(Math.abs(topobj[0]-topobj[1])<=20+Number(topobj[0])+2*Number(heightH / block))){

            var css1={

                top: `${Number(topobj[0])+Number(heightH / block)}px`,

                left: `${leftobj[0]}px`,

            }

            tan=true

            $('#img1').css(css1)

            // console.log(css1)

        }

        if(block==3){

 

        }else{

            if(tan){

                alert('闯关成功')

            }

        }

        if(block==2){

            return false   

        }

        if((Math.abs(leftobj[0]-leftobj[2])<=20)&(Math.abs(topobj[0]-topobj[2])<=20+Number(topobj[0])+2*Number(heightH / block))){

            var css1={

                top: `${Number(topobj[0])+2*Number(heightH / block)}px`,

                left: `${leftobj[0]}px`,

            }

            tans=true

            console.log(css1)

            $('#img2').css(css1)

        }

        if(tan&tans){

            if(tan){

                text=true

                alert('闯关成功')

            }

        }

        $(document).off("mousemove");

        // console.log(leftobj)

        // console.log(topobj)

    }

 

    

 

</script>

 

</html>

更多推荐

图片拼图demo

本文发布于:2024-02-14 10:31:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1763243.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:拼图   图片   demo

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!