Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Yokihito Oki
/
kanoya-univercity-prod
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
27445d63
authored
2020-10-27 17:19:08 +0900
by
TaishiTokudome
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
フォトライブラリ 画像表示の修正
1 parent
e10bf87b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
33 additions
and
43 deletions
templates/protostar/css/style_org.css
templates/protostar/js/photo_popup.js
templates/protostar/css/style_org.css
View file @
27445d6
...
...
@@ -3804,28 +3804,38 @@ body.itemid-132 table {
}
.item-page.photos-custom
#photo-popup
{
display
:
block
;
/* display: block; */
position
:
fixed
;
top
:
50%
;
left
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
z-index
:
220
;
width
:
90%
;
height
:
90%
;
max-width
:
1260px
;
max-height
:
90%
;
overflow
:
auto
;
}
.item-page.photos-custom
#photo-popup
.Vertical
{
width
:
60%
;
.item-page.photos-custom
#photo-popup
.vertical
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
}
.item-page.photos-custom
#photo-popup
.horizontal
{
width
:
90%
;
overflow
:
auto
;
}
.item-page.photos-custom
#photo-popup
#photo-popup-img
{
transition
:
opacity
0.5s
;
}
.item-page.photos-custom
#photo-popup
.vertical
#photo-popup-img
{
max-height
:
100%
;
}
.item-page.photos-custom
#photo-popup
.horizontal
#photo-popup-img
{
width
:
100%
;
transition
:
all
0.5s
;
}
.item-page.photos-custom
#photo-popup-under
{
...
...
templates/protostar/js/photo_popup.js
View file @
27445d6
...
...
@@ -23,29 +23,12 @@ jQuery(function($) {
for
(
let
i
=
0
;
i
<
$imgWrppers
.
length
;
i
++
)
{
// 子要素が空の場合削除(自動生成されたp要素は子要素が入っていない)
if
(
$imgWrppers
[
i
][
'children'
].
length
===
0
)
{
$
(
'.item-page.photos-custom > div p'
).
eq
(
i
)
.
remove
();
$
imgWrppers
[
i
]
.
remove
();
}
}
});
/**
* 画面サイズが4:3より縦長の場合は、写真を画面幅いっぱいに表示する。
*/
function
setPopup
()
{
const
winW
=
$
(
window
).
innerWidth
();
const
winH
=
$
(
window
).
innerHeight
();
// 画面表示領域のアスペクト比を取得
const
asp
=
winH
/
winW
;
if
(
asp
<
0.75
)
{
$
(
'#photo-popup'
).
removeClass
(
'horizontal'
);
$
(
'#photo-popup'
).
addClass
(
'Vertical'
);
}
else
{
$
(
'#photo-popup'
).
removeClass
(
'Vertical'
);
$
(
'#photo-popup'
).
addClass
(
'horizontal'
);
}
}
/**
* 画像のクリックをトリガーにして、ポップアップで表示する画像URLの取得と、
* popupの制御を行う関数の実行。
*/
...
...
@@ -60,19 +43,14 @@ jQuery(function($) {
const
$img
=
$
(
'#photo-popup-img'
);
// popupに画像URLをセット
$img
.
attr
(
'src'
,
src
);
setPopup
();
$
(
window
).
resize
(
function
()
{
setPopup
();
});
// 画像URLのセットから時間をあけることで、表示がなめらかになる。
setTimeout
(
function
()
{
// popupの表示
$
(
'#photo-popup-wrapper'
).
fadeIn
();
// popupのみスクロール可とする。
$
(
'body'
).
css
(
'overflow'
,
'hidden'
);
addClassToImage
(
$img
);
},
50
);
setTimeout
(
function
()
{
popupScrollSet
(
$img
);
},
100
);
});
/**
...
...
@@ -97,11 +75,12 @@ jQuery(function($) {
src
=
$
(
'.item-page.photos-custom > div p'
).
eq
(
index
).
children
(
'img'
).
attr
(
'src'
);
}
setTimeout
(
function
()
{
// transitionで透明になりき
った時点で
画像の差し替えを実行
// transitionで透明になりき
るまでまって
画像の差し替えを実行
$img
.
attr
(
'src'
,
src
);
},
400
);
setTimeout
(
function
()
{
popupScrollSet
(
$img
);
// 画像URLのセットからすこし待つことで関数で正しい数値を取得できる。
addClassToImage
(
$img
);
},
500
);
setTimeout
(
function
()
{
$
(
'#photo-popup'
).
css
(
'display'
,
''
);
...
...
@@ -126,7 +105,7 @@ jQuery(function($) {
$img
.
attr
(
'src'
,
src
);
},
400
);
setTimeout
(
function
()
{
popupScrollSet
(
$img
);
addClassToImage
(
$img
);
},
500
);
setTimeout
(
function
()
{
$
(
'#photo-popup'
).
css
(
'display'
,
''
);
...
...
@@ -146,18 +125,19 @@ jQuery(function($) {
}
/**
*
画像が縦長の場合、ポップアップ表示の際にスクロール値を画像の縦中央にセット
する。
*
表示する画像のアスペクト比に応じたクラスを付与
する。
* @param {*} $img ポップアップに表示している画像
*/
function
popupScrollSet
(
$img
)
{
function
addClassToImage
(
$img
)
{
const
imgHeight
=
$img
[
0
].
naturalHeight
;
// 画像の本来の高さ
const
imgWidth
=
$img
[
0
].
naturalWidth
;
// 画像の本来の幅
if
(
imgHeight
>
imgWidth
)
{
const
wrapperWidth
=
$
(
'#photo-popup'
).
width
();
// 画像の包括要素の幅
const
scaleW
=
wrapperWidth
/
imgWidth
;
// 画像の横幅の縮尺比率
const
scrollTop
=
imgHeight
*
scaleW
*
0.25
;
// スクロール位置(画像の縮尺後の高さ×25%)
$
(
'#photo-popup'
).
scrollTop
(
scrollTop
);
console
.
log
(
'test'
);
const
asp
=
imgHeight
/
imgWidth
;
if
(
asp
<
1
)
{
$
(
'#photo-popup'
).
removeClass
(
'horizontal'
);
$
(
'#photo-popup'
).
addClass
(
'vertical'
);
}
else
{
$
(
'#photo-popup'
).
removeClass
(
'vertical'
);
$
(
'#photo-popup'
).
addClass
(
'horizontal'
);
}
}
});
\ No newline at end of file
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment