作了兩個PC端網站【都是公司官網,兼容主流瀏覽器】。
由於不想引入swiper,以爲不必,就本身寫了個。javascript
首先聲明這裏沒有使用transform:translate3d()
,圖片數量也沒有增長,一共6張。css
實現方式:html
點擊下一張時java
var $lastLi = $('.show-photo li').first() //獲取第一個li節點
var liHtml = '<li>' + $('.show-photo li').first().html() + '</li>'
$(".show-photo ul").append(liHtml) //將第一個li節點內容append到最後去,這裏對界面不會產生影響,
由於ul寬度很大,目的是爲了讓全部的li在同一水平上。注意這裏重複了第一張圖片
var selected = $('.show-photo li.active')
selected.removeClass('active').addClass('leaderSkrinkImg').siblings().removeClass('leaderSkrinkImg') //給正在active的img加一個縮小的動畫
selected.next().removeClass('leaderSkrinkImg').addClass('active') //給將要active的img加放大的動畫
$lastLi.animate({
marginLeft: '-160px' //讓整個ul的內容向左滑動
}, 1000,function(){
$lastLi.remove() //這裏必須動畫完了以後才能夠執行,不然會影響向左滑動。向左滑動動畫完成後,將多餘的li移除掉
})
複製代碼
點擊上一張時css3
var liHtml = '<li style="margin-left:-160px">' + $('.show-photo li').last().html() + '</li>' //這裏優先加了個margin的做用是爲了避免影響佈局
$(".show-photo ul").prepend(liHtml)
var $lastLi = $('.show-photo li').first() //獲取prepend以後的第一個li節點
var selected = $('.show-photo li.active')
selected.removeClass('active').addClass('leaderSkrinkImg').siblings().removeClass('leaderSkrinkImg')
selected.prev().removeClass('leaderSkrinkImg').addClass('active')
$lastLi.animate({
marginLeft: '0'
}, 1000)
$('.show-photo li').last().remove() //將最後一個重複的li移除
複製代碼
其實最開始是直接先remove節點,而後執行動畫的。猶豫點擊下一張時,第一張圖片會先消失而後再移動,感受怪怪的,因此改爲先執行動畫,再移除節點。segmentfault
待寫瀏覽器
待寫app
須要實現的效果是:hover龍貓的這張圖片,紅塊從左邊出來而後鼠標停留在紅塊上能夠點擊跳轉,鼠標離開紅塊,紅塊再消失wordpress
出現的問題如圖:hover龍貓這張圖片紅塊的確會出現,可是鼠標無法停留,只有鼠標離開龍貓區域 紅塊就消失了。函數
解決方案:給紅塊加個hover態,hover在紅塊上時,使得紅塊一直是出現的狀態。在這裏是使其left
值爲0。
至於其餘的動畫都是使用css3的幾個動畫屬性來操做的,這裏想對着幾個動畫屬性作個知識總結。
CSS動畫:animation、transition、transform、translate傻傻分不清
CSS3 animation屬性中的steps功能符深刻介紹
查看兩篇文章,以爲寫的很全了,就直接拿來記錄下,哈哈
幾個不足:
仍是借鑑別人的,平時沒總結,好尷尬
鼠標滾輪事件有用到
var str=`<div> <p>{{username}}</p> <p>{{pwd}}</p> </div>`
var data = { username: 'haha',pwd: 123 }
//將data中的數據替換到str字符串中
//解決方案
var render = function(str,data){
return str.replace(/{{([\w]+)}}/g,function(all,key){
return data[key]
})
}
//最終結果是:
str = `<div> <p>haha</p> <p>123</p> </div>`複製代碼