先放codepen原code:
https://codepen.io/dudleystorey/pen/kBrWvm
以下為我自己寫的部分
html的部份
<base href="https://s3-us-west-2.amazonaws.com/s.cdpn.io/4273/">
<div id="slider">
<figure>
<img src="austin-fireworks.jpg" alt>
<img src="taj-mahal_copy.jpg" alt>
<img src="ibiza.jpg" alt>
<img src="ankor-wat.jpg" alt>
<img src="austin-fireworks.jpg" alt> <---------超過4張圖片排版有出現問題
<img src="austin-fireworks.jpg" alt>
<img src="taj-mahal_copy.jpg" alt>
<img src="ibiza.jpg" alt>
<img src="ankor-wat.jpg" alt>
<img src="austin-fireworks.jpg" alt>
</figure>
</div>
css的部份
@keyframes slidy {
0% { left: 0%; }
20% { left: 0%; }
25% { left: -100%; }
45% { left: -100%; }
50% { left: -200%; }
70% { left: -200%; }
75% { left: -300%; }
95% { left: -300%; }
100% { left: -400%; }
}
body { margin: 0; }
div#slider { overflow: hidden; }
div#slider figure img { width: 20%; float: left; }
div#slider figure {
position: relative;
width: 500%;
margin: 0;
top: 100px;
text-align: left;
font-size: 0;
animation: 30s slidy infinite;
}
#slider{
height: 500px;
width: 500px;
left: 500px; <---- 改成margin-left
}
為何left在slider底下都不起作用,只能用margin-left,
但這屬性不是我想要的, 請問如何改寫成left 並且能夠發揮他的作用?
題外話: 如何在增加圖片時不會亂掉排版? 是修改哪一行才能與圖片數目呈正相關?
不確定這是不是你的問題
參考 MDN 這篇:https://developer.mozilla.org/zh-CN/docs/Web/CSS/left
当position设置为static时,left属性无效。
我加上position: relative
就有效果了
#slider{
position: relative;
height: 500px;
width: 500px;
left: 500px;
}
原來是這個原因,感謝,但我再多問一個問題嗎? 如果超過4張圖片時,我看他的排版就會出現問題,請問是哪一行與增加圖片數目會有關係?
應該是 div#slider figure img { width: 20%; float: left; }
5張圖剛好佔100%,超過的就跑到下面去了
把 div#slider { overflow: hidden; }
先取消看看大概可以知道
@keyframes slidy 要調整
圖片多你要想像一下要怎麼過場
應該不是淡出淡入的問題
是限制在那個區塊顯示,超過的隱藏
然後調整轉場效果,讓變動時的每張圖是顯示在區域內
因此圖多超過寬度100%,圖會跑到下面是正常的
變更圖比例也要一併調整轉場效果
這方面就要讓比較熟悉的人去調整了