拖动比较图片效果

主要是监听 mousemove(分隔条),巧妙利用 background-image ,和overflow: hidden 。

 

 

 

 

 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <style>
        #game {
            position: absolute;
            width: 4px;
            height: 100%;
            background-color: beige;
            left: 50%;
            top: 0;
            bottom: 0;
            margin-left: -1px;
            cursor: ew-resize;
        }
    </style>
</head>
<body>
    <script src="js/jquery.min.js"></script>
    <div id="imgBox" style="background-image: url(img/A2.png); text-align: left; width: 768px; height: 515px; position: relative;position: relative;
    background-repeat: no-repeat;
    background-size: 100% 100%;
        -webkit-user-drag: none;margin: auto;">
        <div id="imgLeft" style="width: 50%; overflow: hidden;">
            <img width="768" height="515" onselectstart="return false;" onselect="return false;" src="img/B2.jpg" style="user-select: none; -webkit-user-drag: none;">
        </div>
        <div class="game" id="game" style="position: absolute; top: 0; left: 50%;"></div>
    </div>

    <script>
    isTouch = 'ontouchstart' in window
             var mouseEvents = (isTouch) ?
                 {
                     down: 'touchstart',
                     move: 'touchmove',
                     up: 'touchend',
                     over: 'touchstart',
                     out: 'touchend'
                 }
                 :
                 {
                     down: 'mousedown',
                     move: 'mousemove',
                     up: 'mouseup',
                     over: 'mouseover',
                     out: 'mouseout'
                 }
             var eventHandlers = {
                 touchStart: function () {

                 }
             }
             var down = null
             document.getElementById("game").addEventListener(mouseEvents.down, function (e, opts, corner) {
                 down = this
                 console.log(this)

             }, false);
             //document 绑定拖动事件中 
             document.addEventListener(mouseEvents.move, function (e, opts, corner) {
                 if (down) {
                 	
                     e = e.changedTouches ? e.changedTouches[0] : e//是否为手机端    第一个手指(鼠标):所有手指的第一个(手机)
                     var offset =$("#imgBox").offset();
                     
                     //当前 分条 的位置(x,y): (图片宽度+e.x   || 5+ e.x )
                      if (e.pageX > 766+offset.left || e.pageX < 5+offset.left ) return;
                     $(down).css({ "left": e.pageX - 4-offset.left }) //$(down).css({"left":e.pageX,"top": e.pageY})
                     $(down).prev().css({ "left": e.pageX-offset.left, "width": e.pageX-offset.left });

                     console.log(e.pageX)
                 }


             }, false);
             document.addEventListener(mouseEvents.up, function (e, opts, corner) {
                 down = null

             }, false);
             document.addEventListener(mouseEvents.over, function (e, opts, corner) {


             }, false);
 
    </script>
</body>
</html>

  图片下载:https://storage.googleapis.com/hific/data/img/shades_HiFiC_Lo.png

                          https://storage.googleapis.com/hific/data/img/shades_jpg_1x_0.209.jpg

 

posted @ 2020-09-07 18:32  越过那个限制  阅读(331)  评论(0编辑  收藏  举报