.htaccessでPHPのファイルアップロードサイズの上限値を変更
2022.02.5
PHPを使用して画像(動画・PDF等)をアップロードするフォームを作成した際に、ファイル…

ホームページ上にビフォーアフターの画像を掲載する場合に、同じ画角の画像を対比させて表示し、画像上のスライダーを動かすことで変化を表現しているものがありましたので、実装方法をメモ
<div class="ba-container">
<img src="○○.jpg" alt="Before">
<div class="ba-overlay"><img src="△△.jpg" alt="After"></div>
<div class="ba-slider"></div>
</div>
.ba-container {
position: relative;
width: 900px;
height: 600px;
margin: 0 auto;
overflow: hidden;
user-select: none;
}
.ba-container img {
width: 100%;
height: 100%;
object-fit: cover;
}
.ba-overlay {
position: absolute;
width: 50%;
height: 100%;
overflow: hidden;
top: 0;
left: 0;
}
.ba-slider {
position: absolute;
top: 0;
left: 50%;
width: 4px;
height: 100%;
background: #fff;
cursor: ew-resize;
z-index: 10;
transform: translateX(-50%);
}
@media screen and (max-width: 980px) {
.ba-container { width: 100%; height: 300px; }
}
$(function(){
var $container = $('.ba-container');
var $overlay = $('.ba-overlay');
var $slider = $('.ba-slider');
var dragging = false;
// 画像幅をコンテナに合わせる
$overlay.find('img').css({'width': $container.width() + 'px'});
// スマホ用タッチイベント
if($(window).width() < 980){
$container.on('touchstart', function(e){
dragging = true;
});
$container.on('touchend touchcancel', function(e){
dragging = false;
});
$container.on('touchmove', function(e){
if(!dragging) return;
var touch = e.originalEvent.touches[0];
moveSlider(touch.pageX);
e.preventDefault(); // 画面スクロール防止
});
}else{
$slider.on('mousedown', function(e){
if($(window).width() >= 980){
dragging = true;
}
});
$(document).on('mouseup', function(){
dragging = false;
});
$(document).on('mousemove', function(e){
if(!dragging) return;
moveSlider(e.pageX);
});
}
function moveSlider(pageX){
var offset = $container.offset();
var relativeX = pageX - offset.left;
if(relativeX < 0) relativeX = 0;
if(relativeX > $container.width()) relativeX = $container.width();
$overlay.width(relativeX);
$slider.css('left', relativeX);
}
});
ビフォーアフターの2枚の画像を重ねて配置。
上側の画像の表示領域(幅)を変化させることで、画像が切り替わっているように見せています。
サンプルでは同じ画像を使用し、元画像をグレースケールにすることで切り替わるの様子が分かるようjにしています。

2022.02.5
PHPを使用して画像(動画・PDF等)をアップロードするフォームを作成した際に、ファイル…

2020.10.3
テキストエリア等で入力した文字の中にURLを含んでいた場合に、自動で認識してリンクタグを…

2024.03.30
外部ファイル(CSVファイル等)を読み込んでサイト内に表示する際に、保存時の文字コードが…

2020.12.5
メールフォームからメールを送信する際に、画像(ファイル)を添付できるようにしてほしいとの…

2023.12.2
ワードプレスの投稿のカテゴリー機能を、目的ごとに使い分けたいというご要望があった際に、カ…

2020.08.1
動画ファイルをCMS化して保存するときに、多くの場合はファイルパスをデータベース(MyS…

2022.09.24
パソコンやスマートフォンの戻るボタンを使って画面を戻す(ブラウザバックする)時があります…

2022.02.19
画像データ等をサーバーにアップロードする際、一点づつアップロードしても良いけれど、ファイ…

2020.08.15
フォームの入力値やURLのパラメータ等、文字列や数値を受け取る際に正規表現を利用してバリ…

2019.12.29
メールフォーム等での入力値チェック(バリデーション)。PHPの「preg_match」(…

以前、飲食店サイトを制作した際に、記念写真を掲載する目的でメインビューに使っていたスクリ…

時間を指定して表示を切り替える際にPHPを使用することが多かったのだけれど、利用している…

ホームページへ動画を組み込む際に、動画が設置されているところまでスクロールして、表示され…