css图片drag时拖动了一片

html-css015

css图片drag时拖动了一片,第1张

css怎样防止图片被拖拽一片

在浏览器中,常见的一种行为就是:选中-拖拽-新页面打开,例如百度搜索就是这样.但是我现在不想让别人在我的个人网页上选中,也不想让他人拖拽我的照片,要怎么做呢?

下面我们来看一下使用css设置图片不可拖动的方法。

css设置图片不可拖动实例:

css居中对齐

div{

width: 500px

height: 500px

border: 1px solid red}

img {

-webkit-user-drag: none

}

css设置图片不可拖动主要使用user-drag来设置。user-drag设置或检索一个元素可以被拖拽。

法:

user-drag:auto | element | none

默认值:auto

适用于:所有元素

继承性:有

动画性:否

计算值:指定值

取值:

auto:使用默认的拖拽行为,这种情况只有图片和链接可以被拖拽。

element:整个元素而非它的内容可拖拽。

none:元素不能被拖动。在通过选中后可拖拽。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "

">  

<html xmlns="

">  

<head>  

<title>禁止鼠标拖动图片在新窗口打开</title>  

<meta http-equiv="content-type" content="text/htmlcharset=gb2312">  

<!--把下面代码加到<head>与</head>之间-->  

<script language="javascript">  

function imgdragstart(){return false}  

</script>  

</head>  

<body>  

鼠标左键拖动图片试试!  

<!--把下面代码加到<body>与</body>之间-->  

<img src="img.jpg">  

<img src="img.jpg" >  

<script language="javascript">  

for(i in document.images)document.images[i].ondragstart=imgdragstart  

</script>  

</body>  

</html>

这个例子可以禁止拖动图片,你试试看

dragimgupload 用法如下:

function DragImgUpload(id,options) {

this.me = $(id)

var defaultOpt = {

boxWidth:'135px',

boxHeight:'135px'

}

this.preview = $('#preview')

this.reset=$('×')

this.preview.append(this.reset)

this.opts=$.extend(true, defaultOpt,{

}, options)

this.init()

this.callback = this.opts.callback

}

//定义原型方法

DragImgUpload.prototype = {

init:function () {

this.me.append(this.preview)

this.me.append(this.fileupload)

this.eventClickInit()

this.resetImage()

this.cssInit()

},

cssInit:function () {

this.me.css({

'width':this.opts.boxWidth,

'height':this.opts.boxHeight,

'border':'1px solid #bbb',

'display': 'inline-block',

'cursor':'pointer',

'position': 'relative'

})

this.preview.css({

'height':'100%',

'overflow':'hidden',

})

this.reset.css({

'line-height': '20px',

'z-index': '999',

'background': 'rgba(0,0,0,.4)',

'color': '#fff',

'position': 'absolute',

'top': '0',

'right': '0',

'height': '25px',

'width': '30px',

'border-bottom-left-radius':'92%',

'text-align': 'center',

'font-size':'20px',

'display':'none'

})

},

onDragover:function (e) {

e.stopPropagation()

e.preventDefault()

e.dataTransfer.dropEffect = 'copy'

},

onDrop:function (e) {

var self = this

e.stopPropagation()

e.preventDefault()

var fileList = e.dataTransfer.files

if(fileList.length == 0){

return false

}

//检测文件是不是图片

if(fileList[0].type.indexOf('image') === -1){

alert("您拖的不是图片!")

return false

}

//拖拉图片到浏览器,可以实现预览功能

var img = window.URL.createObjectURL(fileList[0])

var filename = fileList[0].name//图片名称

var filesize = Math.floor((fileList[0].size)/1024)

if(filesize>500){

alert("上传大小不能超过500K.")

return false

}

self.me.find("img").attr("src",img)

self.me.find("img").attr("title",filename)

if(this.callback){

this.callback(fileList)

}

},

eventClickInit:function () {

var self = this

self.reset.css({

'display':'block'

})

this.me.unbind().click(function () {

self.createImageUploadDialog()

})

var dp = this.me[0]

dp.addEventListener('dragover', function(e) {

self.onDragover(e)

})

dp.addEventListener("drop", function(e) {

self.onDrop(e)

})

},

onChangeUploadFile:function () {

var self = this

var fileInput = this.fileInput

var files = fileInput.files

var file = files[0]

var img = window.URL.createObjectURL(file)

var filename = file.name

this.me.find("img").attr("src",img)

this.me.find("img").attr("title",filename)

self.reset.css({

'display':'block'

})

if(this.callback){

this.callback(files)

}

},

createImageUploadDialog:function () {

var self = this

var fileInput = this.fileInput

if (!fileInput) {

//创建临时input元素

fileInput = document.getElementById('file')

// fileInput = document.createElement('input')

//设置input type为文件类型

// fileInput.type = 'file'

//设置文件name

// fileInput.name = 'file'

//允许上传多个文件

fileInput.multiple = true

fileInput.onchange = this.onChangeUploadFile.bind(this)

this.fileInput = fileInput

self.reset.css({

'display':'block'

})

}

//触发点击input点击事件,弹出选择文件对话框

fileInput.click()

},

resetImage:function(){

var self = this

this.reset.click(function(e){

e.stopPropagation()

var imgReset=self.me.find("img")[0]

console.log('图片',imgReset.src)

imgReset.src='/alink-hq/static/img/upload.png'

self.reset.css({

'display':'none'

})

})

}

}

鼠标悬浮时显示大图

$(function(){

var dragImgUpload = new DragImgUpload("#drop_area", {

callback: function (files) {

//回调函数,可以传递给后台等等

var file = files[0]

console.log(file.name)

}

})

$('#drop_area').on({

mouseover: function () {

var imgUrl = $(this).find('img')[0].src

$('#img-max').attr('src', imgUrl)

},

mouseout: function () {

var imgUrl = $(this).find('img')[0].src

$('#img-max').attr('src', '')

}

})

dragImgUpload.resetImage()

})