友們,下午好!
都說一張美美的圖能為文章增色三分!
那如果是一個交互的圖片樣式 + 幾張美美圖呢?這能為文章增色多少呢?
比如這種(樣式ID:90298)
使用這種樣式,即能有效的展示圖片,還能縮小文章空間,而且還與讀者存在互動交互,想不想知道這種樣式怎么做出來呢?
上面兩種樣式都可以在樣式中心輸入ID搜索到。
但是,樣式中心的原樣式,都是四張圖片滑動的,直接進行換圖就可以使用了。
但如果要像三兒上面做的兩個樣式,一個是5張圖,一個是9張圖,就要進HTML進行修改了。
進入到“HTML”模式,找到<section .........> </section>這段代碼,先選擇Ctrl+C復制。
然后在此段代碼結尾處敲回車鍵換行,再選擇Ctrl+V粘貼。
粘貼幾次,樣式就會在原有四張的基礎上多出幾張,胖友們可以根據自己的需求進行多次粘貼。
進入到“HTML”模式,找到<img src=........./>這段代碼,先選擇Ctrl+C復制,然后在此段代碼結尾處,再Ctrl+V粘貼。
同上個樣式,粘貼幾次,樣式就會在原有四張的基礎上多出幾張,胖友們可以根據自己的需求進行多次粘貼。
為了樣式的美感,還是有三點建議給大家。
1、圖片請保持尺寸一致。否則會導致圖片層次不齊。
2、尺寸請500x500以上。否則可能會使圖片不清楚。
3、圖片大小盡可能小點。否則瀏覽時加載會不流暢。
更多好玩樣式,請進樣式中心搜索“滾動”
好了,本次教程就到這里~bye
外話:實在是鬧不明白頭條是怎么對文章進行推薦的,頭大...
好了,進入今天的主題,利用定時器設計出網站經常會使用到的效果——圖片無縫滾動展示。
圖片無縫滾動效果
1、設計圖片滾動前的樣式
//這是頁面的內容,用到的圖片大家可以去我的網盤下載
<p>圖片無縫滾動</p>
<div id="img_move">
<ul>
<li><img src="./images/dhb.jpg" alt=""></li>
<li><img src="./images/hnrb.jpg" alt=""></li>
<li><img src="./images/rmrb.jpg" alt=""></li>
<li><img src="./images/jzrb.jpg" alt=""></li>
<li><img src="./images/nmrb.jpg" alt=""></li>
</ul>
</div>
//CSS設計樣式,只是最簡單的展示,大家也可以添加自己喜歡的
<style>
*{margin:0; padding: 0;}
p{
margin:0 auto;
text-align: center;
font-size:30px;
}
#img_move{
width:400px;
height:28px;
background-color: red;
margin:30px auto;
position: relative; //相對定位
overflow: hidden; //表示溢出這個元素大小的內容全部隱藏
}
#img_move ul{
position: absolute; //相對于img_move這個元素進行絕對定位
left:0;
top:0;//距離左為0,上為0,我理解的意思是ul的左上角與img_move這個元素的左上角重合了。
}
#img_move ul li{
width: 80px;
height:28px;
list-style: none;
float:left;
}
</style>
2、讓圖片動起來。這里需要用到offsetLeft(左右滾動用的),當然還有對應的offsetTop(上下滾動用的)。
(1)首先獲取到頁面上的各個元素
var oDiv = document.getElementById("img_move");
var oUl = oDiv.getElementsByTagName("ul")[0];
var aLi = oUl.getElementsByTagName("li");
(2)選擇對oUl這個元素進行滾動(主要是考慮到li過多,如果選擇li滾動會讓問題復雜起來)
function img_move(){
oUl.style.left = oUl.offsetLeft - 2 + "px"; //表示讓oUl元素向左移動2個像素
(3)讓oUl每隔30毫秒向左移動一次。你問我為什么選擇30毫秒,等做完整個例子后你可以修改一下這個毫秒數,看看有什么效果吧^_^
setInterval(img_move, 30);
做完上邊的步驟你會發現oUl這個元素動起來了,但是問題又出現了,你會發現oUl在移動過后漏出了img_move的背景色紅色,我們先來分析一下為什么會出現這種情況,看下圖
圖1 目前的布局
這個圖片表示當時了當時的運動場景,當oUl向左移動時,因為它就這么長,往左走后邊沒有東西了自然就意味著要漏出div的紅色。怎么辦?首先想到的肯定是在它后邊繼續加一組圖片,想法是絕對正確的,但下一組也走完了怎么辦?繼續加?O(∩_∩)O哈哈~估計你的網站空間很快就被圖片給用完了。我們只加一組圖片,怎么加?其實就是加了一個oUl自身內部的所有內容。
oUl.innerHTML += oUl.innerHTML
oUl.style.width = aLi[0].offsetWidth * aLi.length + "px"; //修改oUl的寬度
這樣就得到了下面這張圖
圖2 加了一組圖片的布局
接下來怎么辦呢?大家都知道,我們肉眼看東西也是有一定的時間延誤的,小于這個時間延誤大家是看不出來變化的,思路來了。看下圖
圖3 ul左移動到超過一半時
當oUl向左移動超過一半的時候,我們立馬把oUl的left設定為0,這樣oUl就又跳回到圖2的狀態繼續左移動。
function img_move()
{
if(oUl.offsetLeft < -oUl.offsetWidth/2)
{
oUl.style.left = 0;
}
//右移動時候的判斷條件
if(oUl.offsetLeft > 0)
{
oUl.style.left = -oUl.offsetWidth/2 + "px";
}
oUl.style.left = oUl.offsetLeft - 2 + "px"; //表示讓oUl元素向左移動2個像素,向右移動變成+2
}
再看看效果吧。
4、添加鼠標移入、移出效果
oDiv.onmouseover = function()
{
clearInterval(timer);
}
oDiv.onmouseout = function()
{
timer = setInterval(img_move, 30);
}
到此為止,圖片無縫滾動的展示效果就做出來了,是不是很簡單,O(∩_∩)O哈哈~再復雜的問題,你把它拆開來看,其實都很簡單。
<script src="https://lf3-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>
不吹牛逼,不吹質量,我們開放了數10節主體課程,看過這些課程以后,如果你做過對比,我相信你心中自有答案。作者qierukou,主頁 http://www.qierukou.com
*請認真填寫需求信息,我們會在24小時內與您取得聯系。