使用原生拖拽时,会有一个透明度渐变的效果,如何去掉这个效果呢

新手上路,请多包涵

使用原生drag拖拽时,目标会有一个透明度渐变的效果
图片描述

这个效果要如何隐藏掉呢?
代码就是很普通的

div{
    width:100%;
    color:#fff;
    background:red;
    background: -webkit-linear-gradient(right,green, red); /* Safari 5.1 - 6.0 */
    background: -o-linear-gradient(right,green, red); /* Opera 11.1 - 12.0 */
    background: -moz-linear-gradient(right,green, red); /* Firefox 3.6 - 15 */
    background: linear-gradient(right,green, red); /* 标准的语法(必须放在最后) */    
}

<div draggable="true" id="test1">测试</div>
求大神帮忙

阅读 6.9k
2 个回答

emmm 不如自己写一个拖拽
拖拽元素用absolute
mousedown 点击 改变拖拽状态 获得event.page[x|y]
mousemove 拖拽 绑定move 通过mousedown获取的event.page[x|y] - 当前元素的event.offset[x|y] 设置为对应的top left
mouseup 解除绑定

大概思路是这个 自己写的话可塑性比较高 我这个思路不一定好 有兴趣你可以自己试试

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            #move, #box {
                position: absolute;
                width: 200px;
                height: 100px;
                line-height: 100px;
                background: red;
                color: #fff;
                cursor: move;
                text-align: center;
            }
            #box{
                background: green;
                top: 300px;
            }
        </style>
    </head>
    <body>
        <div id="move">移动我</div>
        <div id="box">移动我</div>
        <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
        <script>
            function Follow (cls){
                if(this instanceof Follow){
                }else {
                    return new Follow(cls)
                }
                
                this.x = 0;
                this.y = 0;
                this.ofX = 0;
                this.ofY = 0;
                this.cls = cls;
                this.start();
                this.end();
            }
            // 开始 
            Follow.prototype.start = function (){
                var $glob = this;
                $(document).on('mousedown', $glob.cls, function(e){
                    $glob.ofX = e.offsetX;
                    $glob.ofY = e.offsetY;
                    var $this = $(this);
                    $(document).on('mousemove',  function(e){
                        $glob.x = e.pageY - $glob.ofY;
                        $glob.y = e.pageX - $glob.ofX;
                        $this.css({"top": $glob.x, "left": $glob.y})    
                    })
                })
            }
            // 停止
            Follow.prototype.end = function (){
                $(document).on('mouseup',  function(e){
                    var $this = $(this);
                    $(document).off('mousemove')
                })
            }
            Follow('#move');
            Follow('#box');
        </script>
    </body>
</html>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题