jQuery 단일/다중 이미지 선택기 - 미디어 선택기
30544 단어 jquerymediaselector
이 게시물에서는 갤러리에서 단일 또는 여러 이미지(또는 기타 요소)를 선택할 수 있는 Media Selector jQuery 플러그인을 구현하는 방법을 보여줍니다.
단일/다중 이미지 선택기 jquery 플러그인을 사용하는 방법은 무엇입니까?
1단계: 이미지 삽입
체크 아이콘이 있는 이미지를 CSS 클래스 'image-checkbox'의 레이블에 삽입합니다. 'su-media-id' 속성을 사용하여 각 이미지 요소에 고유한 ID를 할당해야 합니다.
<label class="image-checkbox">
<img su-media-id="orange"
src="img1.jpg" />
<i class="fa fa-check"></i>
</label>
<label class="image-checkbox">
<img su-media-id="apple"
src="img2.jpg" />
<i class="fa fa-check"></i>
</label>
<label class="image-checkbox">
<img su-media-id="grapes"
src="img3.jpg" />
<i class="fa fa-check"></i>
</label>
2단계: 토글 체크박스 추가
단일 선택과 다중 선택 사이를 전환하는 확인란을 추가합니다.
<input type="checkbox" class="custom-control-input" id="allowmultiple">
<label class="custom-control-label" for="allowmultiple" style="cursor: pointer;">Select
Multiple</label>
3단계: 미디어 미리보기 설정
Media Selector가 선택한 이미지 ID를 포함하는 JSON 문자열을 표시하는 결과 컨테이너를 만듭니다.
<div id="selectedmediapreview"></div>
4단계: 스타일 로드
이미지 확인란의 스타일을 지정하려면 CSS를 로드하세요.
.image-checkbox {
cursor: pointer;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
border: 3px solid transparent;
box-shadow: 0 0 4px #ccc;
outline: 0;
margin: 4px;
border-radius: 12px;
}
.image-checkbox-checked {
border-color: #2196f3;
}
img {
border-radius: 8px;
max-height: 160px !important;
max-width: -webkit-fill-available;
}
.image-checkbox i {
display: none;
color: #2196f3;
}
.image-checkbox-checked {
position: relative;
}
.image-checkbox-checked i {
display: block;
position: absolute;
top: 10px;
right: 10px;
}
5단계: jQuery 라이브러리 자산 로드
<script src="https://code.jquery.com/jquery-3.6.0.slim.min.js" integrity="sha256-u7e5khyithlIdTpu22PHhENmPcRdFiHRjhAuHcs05RI=" crossorigin="anonymous"></script>
<script src="assets/js/scripts.js"></script>
6단계: jQuery 스크립트 로드
JavaScript를 초기화하여 이미지 선택기를 활성화합니다.
jQuery(function ($) {
var mediaArray = [];
var selectedMediasId;
var isMultipleAllowed = false;
$('#allowmultiple').click(function () {
isMultipleAllowed = $('#allowmultiple').is(':checked') ? true : false;
$('.image-checkbox-checked').each(function () {
$(this).removeClass('image-checkbox-checked');
});
mediaArray = [];
$('#selectedmediapreview').html('');
});
$(".image-checkbox").on("click", function (e) {
var selected = $(this).find('img').attr('su-media-id');
//console.log(selected);
if ($(this).hasClass('image-checkbox-checked')) {
$(this).removeClass('image-checkbox-checked');
// remove deselected item from array
mediaArray = $.grep(mediaArray, function (value) {
return value != selected;
});
}
else {
if (isMultipleAllowed == false) {
$('.image-checkbox-checked').each(function () {
$(this).removeClass('image-checkbox-checked');
});
mediaArray = [];
mediaArray.push(selected);
} else {
if (mediaArray.indexOf(selected) === -1) {
mediaArray.push(selected);
}
}
$(this).addClass('image-checkbox-checked');
}
//console.log(selected);
console.log(mediaArray);
selectedMediasId = mediaArray.join(",");
console.log(selectedMediasId);
$('#selectedmediapreview').html('<div class="alert alert-success"><pre lang="js">' + JSON.stringify(mediaArray.join(", "), null, 4) + '</pre></div>');
//console.log(isMultipleAllowed);
e.preventDefault();
});
});
7단계: 전체 소스는 다음과 같습니다.
단일/다중 이미지 선택기 코드
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Media Selector</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/4.6.0/css/bootstrap.min.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" />
<link rel="stylesheet" href="assets/css/styles.css">
</head>
<body>
<div class="container mt-4">
<div class="row">
<div class="col mb-2">
<div class="custom-control custom-checkbox mr-sm-2">
<input type="checkbox" class="custom-control-input" id="allowmultiple">
<label class="custom-control-label" for="allowmultiple" style="cursor: pointer;">Select
multiple</label>
</div>
</div>
</div>
<div class="row">
<div class="col">
<div class="mb-3 p-3" style="border-radius: 6px; border: 2px solid #cccccc42">
<label class="image-checkbox">
<img su-media-id="orange"
src="https://images.pexels.com/photos/161559/background-bitter-breakfast-bright-161559.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=100" />
<i class="fa fa-check"></i>
</label>
<label class="image-checkbox">
<img su-media-id="kiwi"
src="https://images.pexels.com/photos/51312/kiwi-fruit-vitamins-healthy-eating-51312.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=100" />
<i class="fa fa-check"></i>
</label>
<label class="image-checkbox">
<img su-media-id="strabery"
src="https://images.pexels.com/photos/934066/pexels-photo-934066.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=100" />
<i class="fa fa-check"></i>
</label>
<label class="image-checkbox">
<img su-media-id="apple"
src="https://images.pexels.com/photos/533343/pexels-photo-533343.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=100" />
<i class="fa fa-check"></i>
</label>
<label class="image-checkbox">
<img su-media-id="watermelon"
src="https://images.pexels.com/photos/1313267/pexels-photo-1313267.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=100" />
<i class="fa fa-check"></i>
</label>
<label class="image-checkbox">
<img su-media-id="papaya"
src="https://images.pexels.com/photos/1824354/pexels-photo-1824354.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=100" />
<i class="fa fa-check"></i>
</label>
<label class="image-checkbox">
<img su-media-id="lemon"
src="https://images.pexels.com/photos/952365/pexels-photo-952365.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=100" />
<i class="fa fa-check"></i>
</label>
<label class="image-checkbox">
<img su-media-id="multifruit"
src="https://images.pexels.com/photos/142520/pexels-photo-142520.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=100" />
<i class="fa fa-check"></i>
</label>
<label class="image-checkbox">
<img su-media-id="pumpking"
src="https://images.pexels.com/photos/673073/pexels-photo-673073.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=100" />
<i class="fa fa-check"></i>
</label>
<label class="image-checkbox">
<img su-media-id="tomatto"
src="https://images.pexels.com/photos/53588/tomatoes-vegetables-food-frisch-53588.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=100" />
<i class="fa fa-check"></i>
</label>
</div>
</div>
</div>
<div id="selectedmediapreview"></div>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.slim.min.js" integrity="sha256-u7e5khyithlIdTpu22PHhENmPcRdFiHRjhAuHcs05RI=" crossorigin="anonymous"></script>
<script src="assets/js/scripts.js"></script>
</body>
</html>
이 유용한 jQuery 플러그인은 devsharif.에서 개발했습니다.
이 튜토리얼이 도움이 되었으면 합니다. 이 코드를 다운로드하려면 여기https://codeanddeploy.com/blog/jquery-plugins/jquery-singlemultiple-image-selector-media-selector를 방문하십시오.
행복한 코딩 :)
Reference
이 문제에 관하여(jQuery 단일/다중 이미지 선택기 - 미디어 선택기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/codeanddeploy/jquery-singlemultiple-image-selector-media-selector-hhp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)