ページに画像を入れる必要があります。その画像のドラッグを無効にしたいのですが。私はたくさんのことを試みていますが、助けにはなりません。誰かが私を手伝ってくれる?
私は画像のサイズを変更しているので、私はその画像を背景画像として保存したくありません。
私は自分で試してみて、これがうまくいっているのを見つけました。
$("img").mousedown(function(){
return false;
});
これはすべての画像のドラッグを無効にすると確信しています。それが何か他のものに影響するかどうかわからない。
あなたはこれが好きです...
document.getElementById('my-image').ondragstart = function() { return false; };
あなたはjQueryを使っているようです。
$('img').on('dragstart', function(event) { event.preventDefault(); });
CSSのみの解決策:pointer-events: none
を使う
画像タグにdraggable = "false"を追加するだけです。
<img draggable="false" src="image.png">
IE8以下はサポートしていません。
window.ondragstart = function() { return false; }
最も単純なクロスブラウザソリューションは
<img draggable="false" ondragstart="return false;" src="..." />
問題あり
img {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-user-drag: none;
user-drag: none;
-webkit-touch-callout: none;
}
それはFirefoxで動作していないということです
img {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-user-drag: none;
user-drag: none;
-webkit-touch-callout: none;
}
私は自分のウェブサイトでそれを使った http://www.namdevmatrimony.in/ それは魔法のように動作する! :)
これを参照してください 答え ; ChromeとSafariでは、次のスタイルを使用してデフォルトのドラッグを無効にできます。
-webkit-user-drag: auto | element | none;
FirefoxとIE(10+)では ser-select を試すことができます。
-moz-user-select: none | text | all | element
-ms-user-select: none | text | all | element
ドラッグできないようにしたくない各画像に、次を追加できます(img
タグ内)。
onmousedown="return false;"
例えば.
img src="Koala.jpg" onmousedown="return false;"
このコードはまさにあなたが望むものを行います。イベントに依存する他のアクションを許可しながら、画像がドラッグされるのを防ぎます。
$("img").mousedown(function(e){
e.preventDefault()
});
直接使用してください:ondragstart="return false;"
はあなたの画像タグの中にあります。
<img src="http://image-example.png" ondragstart="return false;"/>
複数の画像がある場合は、<div>
タグでラップします。
<div ondragstart="return false;">
<img src="image1.png"/>
<img scr="image2.png"/>
</div>
すべての主要ブラウザで動作します。
私の画像はajaxを使って作成されているので、windows.loadでは利用できません。
$("#page").delegate('img', 'dragstart', function (event) { event.preventDefault(); });
こうすれば、どのセクションが振る舞いをブロックするかを制御でき、イベントバインディングを1つだけ使用し、将来のAjaxで作成されたイメージに対しては何もすることなく機能します。
JQueryの新しいon
バインディングの場合:
$('#page').on('dragstart', 'img', function(event) { event.preventDefault(); });
(ありがとう@ialphan)
次のCSSプロパティを画像に設定します。
user-drag: none;
user-select: none;
-moz-user-select: none;
-webkit-user-drag: none;
-webkit-user-select: none;
-ms-user-select: none;
他の誰かが他のjsライブラリと衝突している場合は、そのような衝突がないようにしてください。
var $j = jQuery.noConflict();$j('img').bind('dragstart', function(event) { event.preventDefault(); });
これが誰かに役立つことを願っています。
これで答えがみんなに役立つかどうかはわかりませんが、HTMLページ上でテキストをドラッグして選択するのを無効にするのに役立つ単純なインラインCSSのトリックです。
<body>
タグにondragstart="return false"
を追加してください。これは画像のドラッグを無効にします。しかし、テキスト選択も無効にしたい場合は、onselectstart="return false"
を追加してください。
コードは次のようになります。<body ondragstart="return false" onselectstart="return false">
<img draggable="false" src="images/testimg1.jpg" alt=""/>
これは可能であり、投稿された他の答えは完全に有効ですが、あなたはブルートフォースアプローチを取り、画像に対するmousedown
のデフォルトの振る舞いを防ぐことができます。これは、画像のドラッグを開始することです。
このようなもの:
window.onload = function () {
var images = document.getElementsByTagName('img');
for (var i = 0; img = images[i++];) {
img.ondragstart = function() { return false; };
}
};
あなたは私の解決策を最善と考えるかもしれません。 e.preventDefault()イベントもondragstartイベントもサポートされていないため、ほとんどの回答はIE8のような古いブラウザと互換性がありません。クロスブラウザ互換にするには、この画像のmousemoveイベントをブロックする必要があります。下記の例を参照してください。
jQuery
$("#my_image").mousemove( function(e) { return false } ); // fix for IE
$("#my_image").attr("draggable", false); // disable dragging from attribute
jQueryなしで
var my_image = document.getElementById("my_image");
my_image.setAttribute("draggable", false);
if (my_image.addEventListener) {
my_image.addEventListener("mousemove", function(e) { return false });
} else if (my_image.attachEvent) {
my_image.attachEvent("onmousemove", function(e) { return false });
}
iE8でもテスト済み
document.getElementById('#yourImageId').addEventListener('dragstart', function(e) {
e.preventDefault();
});
このPlunkerで動作します http://plnkr.co/edit/HbAbJkF0PVLIMjTmEZml
答えは簡単です:
<body oncontextmenu="return false"/>
-右クリックを無効にする<body ondragstart="return false"/>
-マウスのドラッグを無効にする<body ondrop="return false"/>
-マウスのドロップを無効にする