!!JavaScriptで選択したファイルを背景画像にする
[HTMLのinputで選択した画像ファイルをJavaScriptでページの背景画像に設定したい|https://teratail.com/questions/359665?rss=all]より
[サンプル|https://qweer.info/example/selectedFileBackground.html] [GitHub|https://github.com/john-smith-7701/mmt/commit/85ed185909681a63e3b72cc0d179427bcad5dac2]
JavaScriptで選択したファイルを背景画像にする
!!入力できるプルダウンボックス(セレクトボックス)
[入力できるプルダウンボックス(セレクトボックス)|https://xiyuan.jp/html/334/]
$('.free_dropdown').on('click focus', function () {
//「input」要素の「data-options」をカンマで分割し、配列にする。
var options = $(this).data("options").split(',');
$(this).autocomplete({
source: options,
minLength: 0, // 「0」を設定したら、全ての項目を表示する。
delay : 1,
autoFocus: false,
scroll:true,
position:{ my : "right top", at: "right bottom", collision: "flip" } //不具合対応
});
$(this).autocomplete("search", "");//この行を入れないと、初回にプルダウンボックス(セレクトボックス)が効かないという不具合がある
});
!実装してみる
[サンプル|https://qweer.info/autocomplete.html]
入力できるプルダウンボックス
入力できるプルダウンボックス
全表示:
検 索:
!!ローカルファイルを読み込む
![ローカルファイルの読込|https://kurage.ready.jp/jhp_g/html5/localF.html]より
[デモ|https://qweer.info/example/afileread.html]
File 読み込み
![JavaScript プログラミング講座|https://hakuhin.jp/js/file_reader.html] より
ファイル読み込み
JavaScript プログラミング講座 https://hakuhin.jp/js/file_reader.html
結果:
!!クリップボードにコピーする
クリップボードにコピーするするスクリプト[デモ|https://qweer.info/example/clicboardCopy.html]
// クリップボードにコピー
function clipboardCopy(text){
// テキストエリアを作成
let $textarea = $('');
// テキストエリアに文章を挿入
$textarea.text(text);
// テキストエリアを挿入
$('body').append($textarea);
// テキストエリアを選択
$textarea.select();
// コピー
document.execCommand('copy');
// テキストエリアの削除
$textarea.remove();
}
!!jquery $.each()
$.each() は配列やハッシュに対して繰り返し処理を行う。
$.each() は以下のように記述します。
$.each(対象のオブジェクト, function(index, val) {
繰り返し実行する処理
});)
!each() を途中で終了させる
each() を途中で終了させる(いわゆる break 文を実行する(perl:last))場合は、終了を行いたい箇所で return false を記述します。
!each() の処理を次へジャンプさせる
each() の処理を次へジャンプさせる(いわゆる continue 文を実行する(perl:next)場合は、ジャンプを行いたい箇所で return true を記述します。
!!window.close() でタブが閉じない時の解決法
*https://qiita.com/heppokofrontend/items/2aaf2c0ca1ce37aa4c45
JavaScriptで閉じることができるウィンドウは、JavaScriptで開かれたウィンドウのみ
!!ヒストリーバックで戻ってきたらもう1つヒストリーバックする
*0:通常アクセス
*1:再読み込み
*2:履歴よりアクセス
window.addEventListener('pageshow',()=>{
var flg=window.performance.navigation.type;
if(flg == 2){
history.back();
}else{
$("#cmdDecide").click();
}
});
window.performance.navigation.typeは非推奨になったのでPerformanceNavigationTimingから取得する。
ただし PerformanceNavigationTiming というオブジェクトがあるわけではありません。実際に使用する場合は performanceオブジェクトからプロパティにアクセスする必要があります。
window.onload = function() {
var perfEntries = performance.getEntriesByType("navigation");
perfEntries.forEach(function(pe){
switch( pe.type ){
case 'back_forward':
history.back();
break;
default:
$("#cmdDecide").click();
}
});
}
!![上][下]ボタンで行を入れ替え
!!HTML要素の位置までスクロールさせたい時
!element.scrollIntoView() [参照|https://qiita.com/amamamaou/items/728d571d508347b2bc82]
scrollIntoView() メソッドは、要素が(ブラウザのウィンドウ上の)表示範囲に入るまでページをスクロールします。
*引数を省略または true とすることで上端に来るようにスクロールし、false ならば下端に来るようにスクロールします。
*オプション設定もできる
element.scrollIntoView({
behavior: 'auto',
block: 'center',
inline: 'nearest',
});
無駄にスクロール位置の計算をしなくても済みそうですね。
!!webStorage
webPageの状態を保持するのにはセッションストレージを使うと簡単に状態を維持できます。
[sessionStorageを使いパネルの状態を復元する|https://github.com/john-smith-7701/mmt/commit/64da84b012284cc6f7b89e06cc55bf0e7999a7dc]
!sessionStorage
*sessionStorage.setItem(key,value)
*sessionStorage.getItem(key)
*sessionStorage.removeItem(key)
!!QRコード
[サンプル|https://qweer.info/qrcode.html]
!QRコードをダウンロード
let canvas = $('#qrcode canvas');
let link = document.createElement("a");
link.href = canvas[0].toDataURL("image/png");
link.download = "qrcode.png";
link.click();