[Rails] 이미지 미리 보기 기능의 실현
7579 단어 JavaScript이미지RubyRails
목표
개발 환경
・Rubby:2.5.7
・Rails:5.2.4
・Vagrant:2.2.7
・VirtualBox:6.1
・OS:macOS Catallina
전제 조건
다음은 이미 실현되었다.
・슬림 가져오기
・Bootstrap3 가져오기
・Font Awesome 가져오기
・로그인 기능 설치
・발언 기능 설치
이루어지다
1. 뷰 편집
users/edit.html.slim/ 追記
= f.file_field :profile_image, class: 'img_field', style: 'display:none;'
= attachment_image_tag @user, :profile_image, fallback: 'no-image.png', onClick: "$('.img_field').click()", class: 'center-block img-thumbnail img-responsive img_prev'
br
[해설]
① file_디스플레이:none에 필드를 숨기고 클래스를 부여합니다.
= f.file_field :profile_image, class: 'img_field', style: 'display:none;'
②①에서 부여한 클래스의 HTML(file field)을 클릭한 후 JavaScript 처리를 수행합니다.
onClick: "$('.img_field').click()"
2. appliacation.scss 편집
appliacation.scss// 追記
.img_prev:hover {
cursor: pointer;
opacity: 0.7;
transform: scale(1.01, 1.01);
}
[해설]
① 마우스가 이미지에 있을 때 CSS를 반영합니다.
.img_prev:hover {}
② 마우스 커서를 포인터로 변경합니다.
cursor: pointer;
③ 불투명도를 낮춰 이미지를 약간 하얗게 만든다.
opacity: 0.7;
④ 이미지를 약간 확대합니다.
transform: scale(1.01, 1.01);
3. JavaScript 파일 작성, 편집
단말기$ touch app/assets/javascripts/image_preview.js
image_preview.js$(function () {
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('.img_prev').attr('src', e.target.result);
}
reader.readAsDataURL(input.files[0]);
}
}
$('.img_field').change(function () {
readURL(this);
});
});
[해설]
① 1.② 편집에서 뷰 처리를 수행합니다.
$('.img_field').change(function () {
readURL(this);
});
Reference
이 문제에 관하여([Rails] 이미지 미리 보기 기능의 실현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/matsubishi5/items/34276fce924aded4061a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
・Rubby:2.5.7
・Rails:5.2.4
・Vagrant:2.2.7
・VirtualBox:6.1
・OS:macOS Catallina
전제 조건
다음은 이미 실현되었다.
・슬림 가져오기
・Bootstrap3 가져오기
・Font Awesome 가져오기
・로그인 기능 설치
・발언 기능 설치
이루어지다
1. 뷰 편집
users/edit.html.slim/ 追記
= f.file_field :profile_image, class: 'img_field', style: 'display:none;'
= attachment_image_tag @user, :profile_image, fallback: 'no-image.png', onClick: "$('.img_field').click()", class: 'center-block img-thumbnail img-responsive img_prev'
br
[해설]
① file_디스플레이:none에 필드를 숨기고 클래스를 부여합니다.
= f.file_field :profile_image, class: 'img_field', style: 'display:none;'
②①에서 부여한 클래스의 HTML(file field)을 클릭한 후 JavaScript 처리를 수행합니다.
onClick: "$('.img_field').click()"
2. appliacation.scss 편집
appliacation.scss// 追記
.img_prev:hover {
cursor: pointer;
opacity: 0.7;
transform: scale(1.01, 1.01);
}
[해설]
① 마우스가 이미지에 있을 때 CSS를 반영합니다.
.img_prev:hover {}
② 마우스 커서를 포인터로 변경합니다.
cursor: pointer;
③ 불투명도를 낮춰 이미지를 약간 하얗게 만든다.
opacity: 0.7;
④ 이미지를 약간 확대합니다.
transform: scale(1.01, 1.01);
3. JavaScript 파일 작성, 편집
단말기$ touch app/assets/javascripts/image_preview.js
image_preview.js$(function () {
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('.img_prev').attr('src', e.target.result);
}
reader.readAsDataURL(input.files[0]);
}
}
$('.img_field').change(function () {
readURL(this);
});
});
[해설]
① 1.② 편집에서 뷰 처리를 수행합니다.
$('.img_field').change(function () {
readURL(this);
});
Reference
이 문제에 관하여([Rails] 이미지 미리 보기 기능의 실현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/matsubishi5/items/34276fce924aded4061a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
1. 뷰 편집
users/edit.html.slim
/ 追記
= f.file_field :profile_image, class: 'img_field', style: 'display:none;'
= attachment_image_tag @user, :profile_image, fallback: 'no-image.png', onClick: "$('.img_field').click()", class: 'center-block img-thumbnail img-responsive img_prev'
br
[해설]
① file_디스플레이:none에 필드를 숨기고 클래스를 부여합니다.
= f.file_field :profile_image, class: 'img_field', style: 'display:none;'
②①에서 부여한 클래스의 HTML(file field)을 클릭한 후 JavaScript 처리를 수행합니다.
onClick: "$('.img_field').click()"
2. appliacation.scss 편집
appliacation.scss
// 追記
.img_prev:hover {
cursor: pointer;
opacity: 0.7;
transform: scale(1.01, 1.01);
}
[해설]
① 마우스가 이미지에 있을 때 CSS를 반영합니다.
.img_prev:hover {}
② 마우스 커서를 포인터로 변경합니다.
cursor: pointer;
③ 불투명도를 낮춰 이미지를 약간 하얗게 만든다.
opacity: 0.7;
④ 이미지를 약간 확대합니다.
transform: scale(1.01, 1.01);
3. JavaScript 파일 작성, 편집
단말기
$ touch app/assets/javascripts/image_preview.js
image_preview.js$(function () {
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('.img_prev').attr('src', e.target.result);
}
reader.readAsDataURL(input.files[0]);
}
}
$('.img_field').change(function () {
readURL(this);
});
});
[해설]
① 1.② 편집에서 뷰 처리를 수행합니다.
$('.img_field').change(function () {
readURL(this);
});
Reference
이 문제에 관하여([Rails] 이미지 미리 보기 기능의 실현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/matsubishi5/items/34276fce924aded4061a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)